0 txs
0 calls
constructor
constructor()
functions
allowedBots
viewfunction allowedBots(address) view returns (bool)
getAllRewardTokens
viewfunction getAllRewardTokens() view returns (address[])
getTokenDestinations
viewfunction getTokenDestinations(address _token) view returns (uint64[])
isTokenConfigured
viewfunction isTokenConfigured(address _token) view returns (bool)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
rewardConfigs
viewfunction rewardConfigs(address) view returns (uint256 lastQueueTime, uint256 coolDownPeriod, uint256 amount, uint256 endTime)
rewarder
viewfunction rewarder() view returns (address)
rewardTokens
viewfunction rewardTokens(uint256) view returns (address)
tokenCrossChainConfigs
viewfunction tokenCrossChainConfigs(address, uint64) view returns (uint8 bridgeType, uint256 amountForBridge, address bridgeAddress, uint64 destinationChainId, address destinationContract, bool isConfigured)
tokenDestinations
viewfunction tokenDestinations(address, uint256) view returns (uint64)
whitelistedOwners
viewfunction whitelistedOwners(address) view returns (bool)
bridgeTokens
payablefunction bridgeTokens(address _token, uint256 _amount, uint64 _destinationChainId) payable
configureCrossChain
nonpayablefunction configureCrossChain(address _token, uint8 _bridgeType, uint256 _amountForBridge, address _bridgeAddress, uint64 _destinationChainId, address _destinationContract)
configureTokenQueue
nonpayablefunction configureTokenQueue(address _token, uint256 _coolDownPeriod, uint256 _amount, uint256 _endTime)
initialize
nonpayablefunction initialize(address _rewarder)
pause
nonpayablefunction pause()
queueOrDonateReward
nonpayablefunction queueOrDonateReward(address _token, bool _isNewToken)
removeCrossChainDestination
nonpayablefunction removeCrossChainDestination(address _token, uint64 _destinationChainId)
removeRewardToken
nonpayablefunction removeRewardToken(address _token)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateBotStatus
nonpayablefunction updateBotStatus(address _bot, bool _status)
updateRewardEndTime
nonpayablefunction updateRewardEndTime(address _token, uint256 _endTime)
updateWhitelistedOwnerStatus
nonpayablefunction updateWhitelistedOwnerStatus(address _owner, bool _status)
withdrawTokens
nonpayablefunction withdrawTokens(address _token, address _to, uint256 _amount)
events
BotStatusUpdated
event BotStatusUpdated(address indexed bot, bool status)
CrossChainConfigUpdated
event CrossChainConfigUpdated(address indexed token, uint8 bridgeType, uint256 amountForBridge, uint64 destinationChainId, address bridgeAddress, address destinationContract)
CrossChainDestinationRemoved
event CrossChainDestinationRemoved(address indexed token, uint64 destinationChainId)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
RewardConfigUpdated
event RewardConfigUpdated(address indexed token, uint256 coolDownPeriod, uint256 amount, uint256 endTime)
RewardQueued
event RewardQueued(address indexed token, uint256 amount, uint256 timestamp)
RewardTokenRemoved
event RewardTokenRemoved(address indexed token)
RewardTokenStatusUpdated
event RewardTokenStatusUpdated(address indexed token, uint256 endTime)
TokenBridged
event TokenBridged(address indexed token, uint256 amount, uint64 destinationChainId, address destinationContract, uint8 bridgeType)
TokensWithdrawn
event TokensWithdrawn(address indexed token, address indexed to, uint256 amount)
Unpaused
event Unpaused(address account)
WhitelistedOwnerStatusUpdated
event WhitelistedOwnerStatusUpdated(address indexed owner, bool status)
errors
BridgeTransactionFailed
error BridgeTransactionFailed()
CrossChainNotConfigured
error CrossChainNotConfigured()
InsufficientAmount
error InsufficientAmount()
InsufficientBalance
error InsufficientBalance()
InsufficientGasFee
error InsufficientGasFee()
InsufficientNativeToken
error InsufficientNativeToken()
InvalidAmount
error InvalidAmount()
InvalidBridgeType
error InvalidBridgeType()
InvalidEndTime
error InvalidEndTime()
InvalidInputLength
error InvalidInputLength()
InvalidPeriod
error InvalidPeriod()
RewardPeriodEnded
error RewardPeriodEnded()
TokenNotConfigured
error TokenNotConfigured()
TooEarlyToQueue
error TooEarlyToQueue()
UnauthorizedBot
error UnauthorizedBot()
UnauthorizedOwner
error UnauthorizedOwner()
ZeroAddressNotAllowed
error ZeroAddressNotAllowed()
creation bytecode
0x608060405234801562000010575f80fd5b506200001b62000021565b620000df565b5f54610100900460ff16156200008d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614620000dd575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6134a780620000ed5f395ff3fe6080604052600436106101a4575f3560e01c80637bb7bed1116100e7578063cd470c0011610087578063dba0eaf611610062578063dba0eaf614610594578063dcc3e06e146105a7578063e4199422146105c6578063f2fde38b146105e5575f80fd5b8063cd470c001461050e578063d3d368c01461052d578063d81e56dd1461055b575f80fd5b80639c9ff363116100c25780639c9ff36314610444578063c4d66de8146104a4578063cb766b3f146104c3578063cbc302ae146104e2575f80fd5b80637bb7bed1146103dc5780638456cb59146104135780638da5cb5b14610427575f80fd5b80635c0eed4911610152578063699a92061161012d578063699a920614610352578063715018a61461037157806372177f2e146103855780637302b905146103bd575f80fd5b80635c0eed49146102835780635c975abb1461031c5780635e35359e14610333575f80fd5b80633d509c97116101825780633d509c97146102125780633f4ba83a1461023157806349e5486514610245575f80fd5b8063062ff02d146101a857806306667270146101c957806312edb24c146101e8575b5f80fd5b3480156101b3575f80fd5b506101c76101c2366004612eae565b610604565b005b3480156101d4575f80fd5b506101c76101e3366004612f1c565b610904565b3480156101f3575f80fd5b506101fc610c1e565b6040516102099190612f4d565b60405180910390f35b34801561021d575f80fd5b506101c761022c366004612f99565b610c7e565b34801561023c575f80fd5b506101c7611045565b348015610250575f80fd5b5061027361025f366004612f99565b60cd6020525f908152604090205460ff1681565b6040519015158152602001610209565b34801561028e575f80fd5b5061030a61029d366004612f1c565b60ce60209081525f9283526040808420909152908252902080546001820154600283015460039093015460ff9283169391926001600160a01b038084169367ffffffffffffffff740100000000000000000000000000000000000000009182900416939182169291041686565b6040516102099695949392919061301f565b348015610327575f80fd5b5060335460ff16610273565b34801561033e575f80fd5b506101c761034d36600461306c565b611057565b34801561035d575f80fd5b506101c761036c3660046130b2565b611195565b34801561037c575f80fd5b506101c761151a565b348015610390575f80fd5b506103a461039f3660046130e7565b61152b565b60405167ffffffffffffffff9091168152602001610209565b3480156103c8575f80fd5b506101c76103d736600461310f565b611573565b3480156103e7575f80fd5b506103fb6103f6366004613145565b61174b565b6040516001600160a01b039091168152602001610209565b34801561041e575f80fd5b506101c7611773565b348015610432575f80fd5b506097546001600160a01b03166103fb565b34801561044f575f80fd5b5061048461045e366004612f99565b60ca6020525f908152604090208054600182015460028301546003909301549192909184565b604080519485526020850193909352918301526060820152608001610209565b3480156104af575f80fd5b506101c76104be366004612f99565b6117c3565b3480156104ce575f80fd5b506101c76104dd3660046130e7565b611968565b3480156104ed575f80fd5b506105016104fc366004612f99565b611a95565b604051610209919061315c565b348015610519575f80fd5b506101c76105283660046130b2565b611b31565b348015610538575f80fd5b50610273610547366004612f99565b60cb6020525f908152604090205460ff1681565b348015610566575f80fd5b50610273610575366004612f99565b6001600160a01b03165f90815260ca6020526040902060010154151590565b6101c76105a236600461319d565b611b90565b3480156105b2575f80fd5b5060c9546103fb906001600160a01b031681565b3480156105d1575f80fd5b506101c76105e03660046130b2565b611edc565b3480156105f0575f80fd5b506101c76105ff366004612f99565b611f3b565b335f90815260cd602052604090205460ff1661064c576040517fde271cf500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f85600281111561065f5761065f612fb9565b03610696576040517f511b184900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61069f86611fcb565b6106a883611fcb565b6106b181611fcb565b6001600160a01b0386165f90815260ce6020908152604080832067ffffffffffffffff861684529091529081902060030154815160c0810190925274010000000000000000000000000000000000000000900460ff1615908087600281111561071c5761071c612fb9565b815260208082018890526001600160a01b0380881660408085019190915267ffffffffffffffff8816606085018190528783166080860152600160a0909501859052918c165f90815260ce845281812092815291909252208251815491929091839160ff199091169083600281111561079757610797612fb9565b021790555060208201516001820155604082015160028201805460608501516001600160a01b039384167fffffffff00000000000000000000000000000000000000000000000000000000909216919091177401000000000000000000000000000000000000000067ffffffffffffffff90921682021790915560808401516003909301805460a090950151939092167fffffffffffffffffffffff0000000000000000000000000000000000000000009094169390931791151590920217905580156108b2576001600160a01b0387165f90815260cf602090815260408220805460018101825590835291206004820401805460039092166008026101000a67ffffffffffffffff81810219909316928616029190911790555b866001600160a01b03167f6f48deef358654e43e83e9ed92b99d227b6831e434d7c6d93286a1f00a7e668c87878688876040516108f39594939291906131d6565b60405180910390a250505050505050565b335f90815260cd602052604090205460ff1661094c576040517fde271cf500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382165f90815260ce6020908152604080832067ffffffffffffffff8516845290915290206003015474010000000000000000000000000000000000000000900460ff166109cd576040517f4a6684a400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382165f90815260cf60205260408120905b8154811015610b56578267ffffffffffffffff16828281548110610a0c57610a0c61321a565b5f918252602090912060048204015460039091166008026101000a900467ffffffffffffffff1603610b44578154610a4690600190613274565b8114610ae05781548290610a5c90600190613274565b81548110610a6c57610a6c61321a565b905f5260205f2090600491828204019190066008029054906101000a900467ffffffffffffffff16828281548110610aa657610aa661321a565b905f5260205f2090600491828204019190066008026101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b81805480610af057610af061328d565b5f8281526020902060047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191820401805467ffffffffffffffff600860038516026101000a02191690559055610b56565b80610b4e816132ba565b9150506109e6565b506001600160a01b0383165f81815260ce6020908152604080832067ffffffffffffffff8716808552908352818420805460ff1916815560018101949094556002840180547fffffffff00000000000000000000000000000000000000000000000000000000169055600390930180547fffffffffffffffffffffff000000000000000000000000000000000000000000169055519182527f9415798d0461ac83c353639fe21104a7a8e6f4060ce12262bd4e452b9a31db13910160405180910390a2505050565b606060cc805480602002602001604051908101604052809291908181526020018280548015610c7457602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610c56575b5050505050905090565b335f90815260cd602052604090205460ff16610cc6576040517fde271cf500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381165f90815260ca6020526040902060010154610d17576040517fec39868800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b60cc54811015610e6457816001600160a01b031660cc8281548110610d4057610d4061321a565b5f918252602090912001546001600160a01b031603610e525760cc54610d6890600190613274565b8114610de55760cc8054610d7e90600190613274565b81548110610d8e57610d8e61321a565b5f9182526020909120015460cc80546001600160a01b039092169183908110610db957610db961321a565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505b60cc805480610df657610df661328d565b5f8281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055610e64565b80610e5c816132ba565b915050610d19565b506001600160a01b0381165f90815260ca60209081526040808320838155600181018490556002810184905560030183905560cf825280832080548251818502810185019093528083529192909190830182828015610f1357602002820191905f5260205f20905f905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020019060080190602082600701049283019260010382029150808411610ece5790505b505050505090505f5b8151811015610fed576001600160a01b0383165f90815260ce602052604081208351909190849084908110610f5357610f5361321a565b60209081029190910181015167ffffffffffffffff1682528101919091526040015f908120805460ff1916815560018101919091556002810180547fffffffff0000000000000000000000000000000000000000000000000000000016905560030180547fffffffffffffffffffffff00000000000000000000000000000000000000000016905580610fe5816132ba565b915050610f1c565b506001600160a01b0382165f90815260cf6020526040812061100e91612e47565b6040516001600160a01b038316907f66257bcef574219c04f7c05f7a1c78d599da10491294c92a5805c48b4cdf5009905f90a25050565b61104d61200b565b611055612065565b565b61105f61200b565b6110676120b7565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa1580156110c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e891906132f1565b905080821115611124576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111386001600160a01b0385168484612110565b826001600160a01b0316846001600160a01b03167f6337ed398c0e8467698c581374fdce4db14922df487b5a39483079f5f59b60a48460405161117d91815260200190565b60405180910390a3506111906001606555565b505050565b61119d6120b7565b335f90815260cb602052604090205460ff166111e5576040517f56a02da800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111ed6121de565b6001600160a01b0382165f90815260ca60205260409020600181015461123f576040517fec39868800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181015481546112509190613308565b421015611289576040517f5efdfddd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600301544211156112c7576040517f216038b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028101545f81900361138e576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa15801561132f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061135391906132f1565b9050805f0361138e576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c9546113a8906001600160a01b03868116911683612231565b82156114415760c9546040517f8fcf4822000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b03868116602483015290911690638fcf4822906044016020604051808303815f875af1158015611417573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143b919061331b565b506114bc565b60c9546040517f34a887bc0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201849052909116906334a887bc906044015f604051808303815f87803b1580156114a5575f80fd5b505af11580156114b7573d5f803e3d5ffd5b505050505b428083556040516001600160a01b038616917f09a4f557033a56cbe70db5ccef9534cbb73cbfe724512852e36e86e36d7a93b49161150291858252602082015260400190565b60405180910390a250506115166001606555565b5050565b61152261200b565b6110555f612313565b60cf602052815f5260405f208181548110611544575f80fd5b905f5260205f209060049182820401919006600802915091509054906101000a900467ffffffffffffffff1681565b335f90815260cd602052604090205460ff166115bb576040517fde271cf500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f036115f4576040517f17479ac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42811161162d576040517f38af65f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384165f81815260ca6020818152604080842060018101805483516080810185528781528086018c81529481018b8152606082018b815299909852959094529351815590519092559151600282015591516003909201919091551580156116f85760cc80546001810182555f919091527f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0387161790555b60408051858152602081018590529081018390526001600160a01b038616907f8a407e8756f0a037c5e4da614e1e29ec6abb811a12c15b6d703d08a8a11712199060600160405180910390a25050505050565b60cc818154811061175a575f80fd5b5f918252602090912001546001600160a01b0316905081565b335f90815260cb602052604090205460ff166117bb576040517f56a02da800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61105561237c565b5f54610100900460ff16158080156117e157505f54600160ff909116105b806117fa5750303b1580156117fa57505f5460ff166001145b6118715760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b5f805460ff1916600117905580156118af575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6118b76123b9565b6118bf61243d565b6118c76124c1565b6118d082611fcb565b60c980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384161790558015611516575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b335f90815260cd602052604090205460ff166119b0576040517fde271cf500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382165f90815260ca6020526040902060010154611a01576040517fec39868800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b428111611a3a576040517f38af65f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382165f81815260ca602052604090819020600301839055517fc927b2469ca4209313cc79be2f78ebf5e9af2b5910bca76e09378d3b644ff6f290611a899084815260200190565b60405180910390a25050565b6001600160a01b0381165f90815260cf6020908152604091829020805483518184028101840190945280845260609392830182828015611b2557602002820191905f5260205f20905f905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020019060080190602082600701049283019260010382029150808411611ae05790505b50505050509050919050565b611b3961200b565b6001600160a01b0382165f81815260cd6020908152604091829020805460ff191685151590811790915591519182527fcbf701b87604ad03e5bca96291930917af54c023fa4628308aea6bf7723ac8129101611a89565b335f90815260cb602052604090205460ff16611bd8576040517f56a02da800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611be06120b7565b611be86121de565b6001600160a01b0383165f90815260ce6020908152604080832067ffffffffffffffff85168452909152808220815160c081019092528054829060ff166002811115611c3657611c36612fb9565b6002811115611c4757611c47612fb9565b81526001820154602082015260028201546001600160a01b038082166040840152740100000000000000000000000000000000000000009182900467ffffffffffffffff166060840152600390930154928316608083015290910460ff16151560a091820152810151909150611ce9576040517f4a6684a400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060200151831180611d7857506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015611d51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7591906132f1565b83115b15611daf576040517f5945ea5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f03611de8576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040810151611e02906001600160a01b0386169085612545565b600181516002811115611e1757611e17612fb9565b03611e2b57611e268382612691565b611e82565b600281516002811115611e4057611e40612fb9565b03611e5057611e26848483612851565b6040517f511b184900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060810151608082015182516040516001600160a01b038816937f1c1bcc3e24d644d1453ccd801f5839ee9e588697be626e0bcc3885514773930f93611ec9938993613336565b60405180910390a2506111906001606555565b611ee461200b565b6001600160a01b0382165f81815260cb6020908152604091829020805460ff191685151590811790915591519182527f066e0c23b9ae0bb92a88e9b0985bb7d85fce062730057312b99a9e243fde5ee19101611a89565b611f4361200b565b6001600160a01b038116611fbf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401611868565b611fc881612313565b50565b6001600160a01b038116611fc8576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097546001600160a01b031633146110555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611868565b61206d6129e5565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6002606554036121095760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611868565b6002606555565b6040516001600160a01b0383166024820152604481018290526111909084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612a37565b6001606555565b60335460ff16156110555760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401611868565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0383811660248301525f919085169063dd62ed3e90604401602060405180830381865afa158015612297573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122bb91906132f1565b905061230d847f095ea7b300000000000000000000000000000000000000000000000000000000856122ed8686613308565b6040516001600160a01b0390921660248301526044820152606401612155565b50505050565b609780546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6123846121de565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861209a3390565b5f54610100900460ff166124355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611868565b611055612b1d565b5f54610100900460ff166124b95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611868565b611055612ba5565b5f54610100900460ff1661253d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611868565b611055612c21565b8015806125d657506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156125b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125d491906132f1565b155b6126485760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401611868565b6040516001600160a01b0383166024820152604481018290526111909084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401612155565b60608101516040805180820182525f8082526020820181905282850151608086015193517f170d3c5d00000000000000000000000000000000000000000000000000000000815263ffffffff861660048201526024810183905260448101889052606481018890526001600160a01b039485166084820152919493169063170d3c5d9060a4016040805180830381865afa158015612731573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127559190613372565b8051909150341015612793576040517fe6b6589300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040848101518251608087015192517f33ca418600000000000000000000000000000000000000000000000000000000815263ffffffff861660048201526fffffffffffffffffffffffffffffffff8716602482015260448101899052606481018990526001600160a01b0393841660848201523060a482015292909116916333ca4186919060c4015f604051808303818588803b158015612833575f80fd5b505af1158015612845573d5f803e3d5ffd5b50505050505050505050565b6040808201516060830151608084015192517fcc0468130000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015267ffffffffffffffff90921660248201529281166044840152606483018590525f9291169063cc04681390608401602060405180830381865afa1580156128df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061290391906132f1565b90508034101561293f576040517fe6b6589300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040808301516060840151608085015192517f2ccf50500000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015267ffffffffffffffff90921660248201529281166044840152606483018690521690632ccf50509083906084015f604051808303818588803b1580156129c8575f80fd5b505af11580156129da573d5f803e3d5ffd5b505050505050505050565b60335460ff166110555760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401611868565b5f612a8b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612ca69092919063ffffffff16565b905080515f1480612aab575080806020019051810190612aab919061331b565b6111905760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611868565b5f54610100900460ff16612b995760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611868565b6033805460ff19169055565b5f54610100900460ff166121d75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611868565b5f54610100900460ff16612c9d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611868565b61105533612313565b6060612cb484845f85612cbc565b949350505050565b606082471015612d345760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401611868565b5f80866001600160a01b03168587604051612d4f9190613406565b5f6040518083038185875af1925050503d805f8114612d89576040519150601f19603f3d011682016040523d82523d5f602084013e612d8e565b606091505b5091509150612d9f87838387612daa565b979650505050505050565b60608315612e185782515f03612e11576001600160a01b0385163b612e115760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611868565b5081612cb4565b612cb48383815115612e2d5781518083602001fd5b8060405162461bcd60e51b81526004016118689190613421565b5080545f825560030160049004905f5260205f2090810190611fc891905b80821115612e78575f8155600101612e65565b5090565b80356001600160a01b0381168114612e92575f80fd5b919050565b803567ffffffffffffffff81168114612e92575f80fd5b5f805f805f8060c08789031215612ec3575f80fd5b612ecc87612e7c565b9550602087013560038110612edf575f80fd5b945060408701359350612ef460608801612e7c565b9250612f0260808801612e97565b9150612f1060a08801612e7c565b90509295509295509295565b5f8060408385031215612f2d575f80fd5b612f3683612e7c565b9150612f4460208401612e97565b90509250929050565b602080825282518282018190525f9190848201906040850190845b81811015612f8d5783516001600160a01b031683529284019291840191600101612f68565b50909695505050505050565b5f60208284031215612fa9575f80fd5b612fb282612e7c565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061301b577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b60c0810161302d8289612fe6565b60208201969096526001600160a01b03948516604082015267ffffffffffffffff9390931660608401529216608082015290151560a090910152919050565b5f805f6060848603121561307e575f80fd5b61308784612e7c565b925061309560208501612e7c565b9150604084013590509250925092565b8015158114611fc8575f80fd5b5f80604083850312156130c3575f80fd5b6130cc83612e7c565b915060208301356130dc816130a5565b809150509250929050565b5f80604083850312156130f8575f80fd5b61310183612e7c565b946020939093013593505050565b5f805f8060808587031215613122575f80fd5b61312b85612e7c565b966020860135965060408601359560600135945092505050565b5f60208284031215613155575f80fd5b5035919050565b602080825282518282018190525f9190848201906040850190845b81811015612f8d57835167ffffffffffffffff1683529284019291840191600101613177565b5f805f606084860312156131af575f80fd5b6131b884612e7c565b9250602084013591506131cd60408501612e97565b90509250925092565b60a081016131e48288612fe6565b602082019590955267ffffffffffffffff9390931660408401526001600160a01b03918216606084015216608090910152919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561328757613287613247565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132ea576132ea613247565b5060010190565b5f60208284031215613301575f80fd5b5051919050565b8082018082111561328757613287613247565b5f6020828403121561332b575f80fd5b8151612fb2816130a5565b84815267ffffffffffffffff841660208201526001600160a01b0383166040820152608081016133696060830184612fe6565b95945050505050565b5f60408284031215613382575f80fd5b6040516040810181811067ffffffffffffffff821117156133ca577f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604052825181526020928301519281019290925250919050565b5f5b838110156133fe5781810151838201526020016133e6565b50505f910152565b5f82516134178184602087016133e4565b9190910192915050565b602081525f825180602084015261343f8160408501602087016133e4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122004b93161f94a1ae49fb08f7a4d413c70229c0f1b5752f3b90fd1b7247f85fe6c64736f6c63430008150033