0 txs
1 call
constructor
constructor()
functions
BOT
viewfunction BOT() view returns (bytes32)
convertBnbToBnbX
viewfunction convertBnbToBnbX(uint256 _amount) view returns (uint256)
convertBnbXToBnb
viewfunction convertBnbXToBnb(uint256 _amountInBnbX) view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
depositsBridgingOut
viewfunction depositsBridgingOut() view returns (uint256)
depositsDelegated
viewfunction depositsDelegated() view returns (uint256)
depositsInContract
viewfunction depositsInContract() view returns (uint256)
feeBps
viewfunction feeBps() view returns (uint256)
getBnbXWithdrawLimit
viewfunction getBnbXWithdrawLimit() view returns (uint256 _bnbXWithdrawLimit)
getBotDelegateRequest
viewfunction getBotDelegateRequest(uint256 _uuid) view returns (tuple)
getBotUndelegateRequest
viewfunction getBotUndelegateRequest(uint256 _uuid) view returns (tuple)
getContracts
viewfunction getContracts() view returns (address _manager, address _bnbX, address _tokenHub, address _bcDepositWallet)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getTokenHubRelayFee
viewfunction getTokenHubRelayFee() view returns (uint256)
getTotalPooledBnb
viewfunction getTotalPooledBnb() view returns (uint256)
getUserRequestStatus
viewfunction getUserRequestStatus(address _user, uint256 _idx) view returns (bool _isClaimable, uint256 _amount)
getUserWithdrawalRequests
viewfunction getUserWithdrawalRequests(address _address) view returns (tuple[])
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
minDelegateThreshold
viewfunction minDelegateThreshold() view returns (uint256)
minUndelegateThreshold
viewfunction minUndelegateThreshold() view returns (uint256)
nextDelegateUUID
viewfunction nextDelegateUUID() view returns (uint256)
nextUndelegateUUID
viewfunction nextUndelegateUUID() view returns (uint256)
paused
viewfunction paused() view returns (bool)
redirectAddress
viewfunction redirectAddress() view returns (address)
rewardsIdUsed
viewfunction rewardsIdUsed(uint256) view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
TEN_DECIMALS
viewfunction TEN_DECIMALS() view returns (uint256)
totalBnbXToBurn
viewfunction totalBnbXToBurn() view returns (uint256)
totalClaimableBnb
viewfunction totalClaimableBnb() view returns (uint256)
acceptNewManager
nonpayablefunction acceptNewManager()
addRestakingRewards
nonpayablefunction addRestakingRewards(uint256 _id, uint256 _amount)
claimWithdraw
nonpayablefunction claimWithdraw(uint256 _idx)
completeDelegation
nonpayablefunction completeDelegation(uint256 _uuid)
completeUndelegation
payablefunction completeUndelegation(uint256 _uuid) payable
deposit
payablefunction deposit() payable
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address _bnbX, address _admin, address _manager, address _tokenHub, address _bcDepositWallet, address _bot, uint256 _feeBps)
migrateFunds
nonpayablefunction migrateFunds()
proposeNewManager
nonpayablefunction proposeNewManager(address _address)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
requestWithdraw
nonpayablefunction requestWithdraw(uint256 _amountInBnbX)
revokeBotRole
nonpayablefunction revokeBotRole(address _address)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setBCDepositWallet
nonpayablefunction setBCDepositWallet(address _address)
setBotRole
nonpayablefunction setBotRole(address _address)
setFeeBps
nonpayablefunction setFeeBps(uint256 _feeBps)
setMinDelegateThreshold
nonpayablefunction setMinDelegateThreshold(uint256 _minDelegateThreshold)
setMinUndelegateThreshold
nonpayablefunction setMinUndelegateThreshold(uint256 _minUndelegateThreshold)
setRedirectAddress
nonpayablefunction setRedirectAddress(address _address)
startDelegation
payablefunction startDelegation() payable returns (uint256 _uuid, uint256 _amount)
startUndelegation
nonpayablefunction startUndelegation() returns (uint256 _uuid, uint256 _amount)
togglePause
nonpayablefunction togglePause()
undelegationStarted
nonpayablefunction undelegationStarted(uint256 _uuid)
events
ClaimWithdrawal
event ClaimWithdrawal(address indexed _account, uint256 _idx, uint256 _amount)
Delegate
event Delegate(uint256 _uuid, uint256 _amount)
Initialized
event Initialized(uint8 version)
Paused
event Paused(address account)
ProposeManager
event ProposeManager(address indexed _address)
Redelegate
event Redelegate(uint256 _rewardsId, uint256 _amount)
RequestWithdraw
event RequestWithdraw(address indexed _account, uint256 _amountInBnbX)
RevokeBotRole
event RevokeBotRole(address indexed _address)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
SetBCDepositWallet
event SetBCDepositWallet(address indexed _address)
SetBotRole
event SetBotRole(address indexed _address)
SetFeeBps
event SetFeeBps(uint256 _feeBps)
SetManager
event SetManager(address indexed _address)
SetMinDelegateThreshold
event SetMinDelegateThreshold(uint256 _minDelegateThreshold)
SetMinUndelegateThreshold
event SetMinUndelegateThreshold(uint256 _minUndelegateThreshold)
SetRedirectAddress
event SetRedirectAddress(address indexed _address)
TransferOut
event TransferOut(uint256 _amount)
Undelegate
event Undelegate(uint256 _uuid, uint256 _amount)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x6080604052348015600e575f80fd5b5060156019565b60d3565b5f54610100900460ff161560835760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161460d1575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b613d6f806100e05f395ff3fe60806040526004361061033d575f3560e01c80639580c4bc116101b2578063c0d5f018116100f2578063d0e30db011610092578063f57371431161006d578063f5737143146109a3578063f7c4c797146109b8578063f844e29b146109cd578063fd33cb2d146109e1575f80fd5b8063d0e30db014610968578063d547741f14610970578063e0c295991461098f575f80fd5b8063c5c53b94116100cd578063c5c53b94146108b9578063c67a92ee146108d8578063ca0506e8146108f7578063ca13fb4114610916575f80fd5b8063c0d5f01814610844578063c3a2a93a14610859578063c4ae3168146108a5575f80fd5b8063a2468f071161015d578063b3a589e411610138578063b3a589e4146107d2578063b3fcddb8146107f1578063b8a5dbd114610806578063ba2600a914610825575f80fd5b8063a2468f0714610777578063ae03ce7514610796578063b13acedd146107b3575f80fd5b8063a17a3a391161018d578063a17a3a391461073c578063a217fddf14610751578063a21cfbc114610764575f80fd5b80639580c4bc146106ff57806396f71e9814610713578063983bd3ce14610728575f80fd5b806353edafba1161027d57806372c27b62116102285780637e30aa54116102035780637e30aa5414610669578063827fd513146106885780638bfb2eb51461069c57806391d14854146106bb575f80fd5b806372c27b621461060c578063745400c91461062b57806374db45981461064a575f80fd5b80636c242148116102585780636c242148146105b65780636c930228146105cb5780636eb1177b146105f7575f80fd5b806353edafba146105685780635c975abb146105875780635d499b1b1461059e575f80fd5b806324a9d853116102e85780632f2ff15d116102c35780632f2ff15d146104e257806335ffc7301461050157806336568abe14610516578063486277f614610535575f80fd5b806324a9d853146104825780632be7fef5146104975780632d788a5b146104ab575f80fd5b80631460e390116103185780631460e3901461040857806318bc833d14610427578063248a9ca314610454575f80fd5b806301ffc9a714610370578063026e3e7b146103a4578063102b2c4e146103da575f80fd5b3661036c5760dc546001600160a01b0316331461036a5760dc5461036a906001600160a01b031634610a0d565b005b5f80fd5b34801561037b575f80fd5b5061038f61038a36600461387d565b610b2c565b60405190151581526020015b60405180910390f35b3480156103af575f80fd5b506103c36103be3660046138d7565b610bc4565b60408051921515835260208301919091520161039b565b3480156103e5575f80fd5b5061038f6103f43660046138ff565b60db6020525f908152604090205460ff1681565b348015610413575f80fd5b5061036a610422366004613916565b610cbc565b348015610432575f80fd5b506104466104413660046138ff565b611161565b60405190815260200161039b565b34801561045f575f80fd5b5061044661046e3660046138ff565b5f9081526097602052604090206001015490565b34801561048d575f80fd5b5061044660da5481565b3480156104a2575f80fd5b506104466111f8565b3480156104b6575f80fd5b5060dc546104ca906001600160a01b031681565b6040516001600160a01b03909116815260200161039b565b3480156104ed575f80fd5b5061036a6104fc366004613990565b61121b565b34801561050c575f80fd5b5061044660d05481565b348015610521575f80fd5b5061036a610530366004613990565b61123f565b348015610540575f80fd5b506104467f902cbe3a02736af9827fb6a90bada39e955c0941e08f0c63b3a662a7b17a4e2b81565b348015610573575f80fd5b5061036a6105823660046139ba565b6112cb565b348015610592575f80fd5b5060335460ff1661038f565b3480156105a9575f80fd5b506104466402540be40081565b3480156105c1575f80fd5b5061044660cb5481565b3480156105d6575f80fd5b506105ea6105e53660046139ba565b611438565b60405161039b91906139d3565b348015610602575f80fd5b5061044660cd5481565b348015610617575f80fd5b5061036a6106263660046138ff565b6114c7565b348015610636575f80fd5b5061036a6106453660046138ff565b611584565b348015610655575f80fd5b5061036a6106643660046139ba565b6116fd565b348015610674575f80fd5b5061036a610683366004613a34565b61180d565b348015610693575f80fd5b5061036a6119b3565b3480156106a7575f80fd5b5061036a6106b63660046138ff565b611a9e565b3480156106c6575f80fd5b5061038f6106d5366004613990565b5f9182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561070a575f80fd5b5061036a611b83565b34801561071e575f80fd5b5061044660cc5481565b348015610733575f80fd5b50610446611c37565b348015610747575f80fd5b5061044660d15481565b34801561075c575f80fd5b506104465f81565b61036a6107723660046138ff565b611c50565b348015610782575f80fd5b5061036a6107913660046139ba565b611da3565b61079e611eb3565b6040805192835260208301919091520161039b565b3480156107be575f80fd5b5061036a6107cd3660046138ff565b6120f5565b3480156107dd575f80fd5b5061036a6107ec3660046139ba565b612334565b3480156107fc575f80fd5b5061044660c95481565b348015610811575f80fd5b5061036a6108203660046138ff565b612453565b348015610830575f80fd5b5061036a61083f3660046138ff565b6124f7565b34801561084f575f80fd5b5061044660ca5481565b348015610864575f80fd5b5060d85460d25460d45460d354604080516001600160a01b03958616815293851660208501529184169183019190915291909116606082015260800161039b565b3480156108b0575f80fd5b5061036a612647565b3480156108c4575f80fd5b5061036a6108d33660046138ff565b61266e565b3480156108e3575f80fd5b5061036a6108f23660046139ba565b61274c565b348015610902575f80fd5b506104466109113660046138ff565b6128ba565b348015610921575f80fd5b506109356109303660046138ff565b61290f565b60405161039b91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b61036a61297a565b34801561097b575f80fd5b5061036a61098a366004613990565b612a6e565b34801561099a575f80fd5b5061079e612a92565b3480156109ae575f80fd5b5061044660cf5481565b3480156109c3575f80fd5b5061044660ce5481565b3480156109d8575f80fd5b50610446612c37565b3480156109ec575f80fd5b50610a006109fb3660046138ff565b612cbb565b60405161039b9190613a54565b80471015610a625760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610aab576040519150601f19603f3d011682016040523d82523d5f602084013e610ab0565b606091505b5050905080610b275760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a59565b505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610bbe57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6001600160a01b0382165f90815260d76020526040812080548291908410610c2e5760405162461bcd60e51b815260206004820152600d60248201527f496e76616c696420696e646578000000000000000000000000000000000000006044820152606401610a59565b5f818581548110610c4157610c41613a75565b5f918252602080832060039092029091018054600182015481855260d6909352604090932060028101549194509015610c9c576002810154600382015480610c898584613acf565b610c939190613b13565b97505050610ca8565b610ca5826128ba565b95505b600101541515989497509395505050505050565b5f54610100900460ff1615808015610cda57505f54600160ff909116105b80610cf35750303b158015610cf357505f5460ff166001145b610d655760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a59565b5f805460ff191660011790558015610da3575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610dab612d14565b610db3612d92565b6001600160a01b03881615801590610dd357506001600160a01b03871615155b8015610de757506001600160a01b03861615155b8015610dfb57506001600160a01b03851615155b8015610e0f57506001600160a01b03841615155b8015610e2357506001600160a01b03831615155b610e6f5760405162461bcd60e51b815260206004820152601560248201527f7a65726f20616464726573732070726f766964656400000000000000000000006044820152606401610a59565b612710821115610ee65760405162461bcd60e51b8152602060048201526024808201527f5f666565427073206d757374206e6f742065786365656420313030303020283160448201527f30302529000000000000000000000000000000000000000000000000000000006064820152608401610a59565b610f107f902cbe3a02736af9827fb6a90bada39e955c0941e08f0c63b3a662a7b17a4e2b5f612e16565b610f1a5f88612e60565b610f447f902cbe3a02736af9827fb6a90bada39e955c0941e08f0c63b3a662a7b17a4e2b84612e60565b60d880546001600160a01b038089167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316811790935560d280548c831690841617905560d4805489831690841617905560d3805491881691909216179055670de0b6b3a764000060d081905560d15560da8390556040517f54a6385aa0292b04e1ef8513253c17d1863f7cdfc87029d77fd55cc4c2e717e2905f90a26040516001600160a01b038416907f485961e227c5c3d5e159a34b713135d26f88db6c547af5ec5bd5aee15dd5d36f905f90a260d3546040516001600160a01b03909116907f96d53eeb8fbbb982ef654300ad6fe8ad798574b294ce11a40763db488abcc15c905f90a27f14ad418bb4e621dd3db79d68475c5cb1f52ad8da493747a4325b0c7a5e4aba9a60d05460405161107f91815260200190565b60405180910390a17f3754b6879b31a86ed122840385db904bed5275941378692c85e66448121e4d2560d1546040516110ba91815260200190565b60405180910390a16040518281527f15b86359c2a1e342ef965d15a848eda1666e575175d1907ea284dab1dcf64ffb9060200160405180910390a18015611157575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6040517f18bc833d000000000000000000000000000000000000000000000000000000008152600481018290525f90733b961e83400d51e6e1af5c450d3c7d7b80588d289081906318bc833d906024015b602060405180830381865afa1580156111cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f19190613b26565b9392505050565b5f60ca5460cb5460c95461120c9190613b3d565b6112169190613b3d565b905090565b5f8281526097602052604090206001015461123581612e6a565b610b278383612e74565b6001600160a01b03811633146112bd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610a59565b6112c78282612f14565b5050565b60d8546001600160a01b031633146113255760405162461bcd60e51b815260206004820152601a60248201527f41636365737369626c65206f6e6c79206279204d616e616765720000000000006044820152606401610a59565b60d8546001600160a01b038083169116036113825760405162461bcd60e51b815260206004820152601a60248201527f4f6c642061646472657373203d3d206e657720616464726573730000000000006044820152606401610a59565b6001600160a01b0381166113d85760405162461bcd60e51b815260206004820152601560248201527f7a65726f20616464726573732070726f766964656400000000000000000000006044820152606401610a59565b60d980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517ee90865ba774da1b7638b592f529a31eb753da0d7cd3a1396d69404b4e2e4e2905f90a250565b6001600160a01b0381165f90815260d760209081526040808320805482518185028101850190935280835260609492939192909184015b828210156114bc578382905f5260205f2090600302016040518060600160405290815f8201548152602001600182015481526020016002820154815250508152602001906001019061146f565b505050509050919050565b5f6114d181612e6a565b6127108211156115485760405162461bcd60e51b8152602060048201526024808201527f5f666565427073206d757374206e6f742065786365656420313030303020283160448201527f30302529000000000000000000000000000000000000000000000000000000006064820152608401610a59565b60da8290556040518281527f15b86359c2a1e342ef965d15a848eda1666e575175d1907ea284dab1dcf64ffb9060200160405180910390a15050565b61158c612f95565b5f81116115db5760405162461bcd60e51b815260206004820152600e60248201527f496e76616c696420416d6f756e740000000000000000000000000000000000006044820152606401610a59565b8060cc5f8282546115ec9190613b3d565b925050819055505f6115ff60cc546128ba565b905060c9548111156116535760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420656e6f75676820424e4220746f2077697468647261770000000000006044820152606401610a59565b335f81815260d760209081526040808320815160608101835260cf54815280840188815242938201938452825460018082018555938752949095209051600390940201928355925192820192909255905160029091015560d2546116c4916001600160a01b03909116903085612fe8565b60405182815233907f0afd74a2a0a78f6c15e41029f44995ee023fe49276f44a4b2b2cf674829362e69060200160405180910390a25050565b60d8546001600160a01b031633146117575760405162461bcd60e51b815260206004820152601a60248201527f41636365737369626c65206f6e6c79206279204d616e616765720000000000006044820152606401610a59565b6001600160a01b0381166117ad5760405162461bcd60e51b815260206004820152601560248201527f7a65726f20616464726573732070726f766964656400000000000000000000006044820152606401610a59565b6117d77f902cbe3a02736af9827fb6a90bada39e955c0941e08f0c63b3a662a7b17a4e2b82612e60565b6040516001600160a01b038216907f485961e227c5c3d5e159a34b713135d26f88db6c547af5ec5bd5aee15dd5d36f905f90a250565b611815612f95565b7f902cbe3a02736af9827fb6a90bada39e955c0941e08f0c63b3a662a7b17a4e2b61183f81612e6a565b5f821161188e5760405162461bcd60e51b815260206004820152600960248201527f4e6f2072657761726400000000000000000000000000000000000000000000006044820152606401610a59565b5f60c954116118df5760405162461bcd60e51b815260206004820152601260248201527f4e6f2066756e64732064656c65676174656400000000000000000000000000006044820152606401610a59565b5f83815260db602052604090205460ff161561193d5760405162461bcd60e51b815260206004820152601760248201527f5265776172647320494420616c726561647920557365640000000000000000006044820152606401610a59565b8160c95f82825461194e9190613b3d565b90915550505f83815260db602052604090819020805460ff19166001179055517f18112e7eb30e4ec7cbd0751caa279e3f69a962e8bcfddb6919087597cc473ec3906119a69085908590918252602082015260400190565b60405180910390a1505050565b60d9546001600160a01b03163314611a335760405162461bcd60e51b815260206004820152602360248201527f41636365737369626c65206f6e6c792062792050726f706f736564204d616e6160448201527f67657200000000000000000000000000000000000000000000000000000000006064820152608401610a59565b60d9805460d880546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092559091169091556040517f54a6385aa0292b04e1ef8513253c17d1863f7cdfc87029d77fd55cc4c2e717e2905f90a2565b60d8546001600160a01b03163314611af85760405162461bcd60e51b815260206004820152601a60248201527f41636365737369626c65206f6e6c79206279204d616e616765720000000000006044820152606401610a59565b5f8111611b475760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964205468726573686f6c640000000000000000000000000000006044820152606401610a59565b60d18190556040518181527f3754b6879b31a86ed122840385db904bed5275941378692c85e66448121e4d25906020015b60405180910390a150565b611b8b613076565b5f611b9581612e6a565b60d85460ca546040515f926001600160a01b031691908381818185875af1925050503d805f8114611be1576040519150601f19603f3d011682016040523d82523d5f602084013e611be6565b606091505b50509050806112c75760405162461bcd60e51b815260206004820152600f60248201527f5472616e73666572204661696c656400000000000000000000000000000000006044820152606401610a59565b5f60cc54611c4660c954611161565b6112169190613b50565b611c58612f95565b7f902cbe3a02736af9827fb6a90bada39e955c0941e08f0c63b3a662a7b17a4e2b611c8281612e6a565b5f82815260d660205260409020805415801590611ca157506001810154155b611ced5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964205555494400000000000000000000000000000000000000006044820152606401610a59565b600281015434908114611d425760405162461bcd60e51b815260206004820152601960248201527f53656e6420457861637420416d6f756e74206f662046756e64000000000000006044820152606401610a59565b426001830155600282015460cd80545f90611d5e908490613b3d565b909155505060408051858152602081018390527ffdbb8c003d20bab9656233805edff5b59deada55ab94383f586c5b781b87c38d91015b60405180910390a150505050565b60d8546001600160a01b03163314611dfd5760405162461bcd60e51b815260206004820152601a60248201527f41636365737369626c65206f6e6c79206279204d616e616765720000000000006044820152606401610a59565b6001600160a01b038116611e535760405162461bcd60e51b815260206004820152601560248201527f7a65726f20616464726573732070726f766964656400000000000000000000006044820152606401610a59565b611e7d7f902cbe3a02736af9827fb6a90bada39e955c0941e08f0c63b3a662a7b17a4e2b82612f14565b6040516001600160a01b038216907fce3a752fcf97901d8b155f6467769c045d4108ae74ea4c9b78b78c951efec693905f90a250565b5f80611ebd612f95565b7f902cbe3a02736af9827fb6a90bada39e955c0941e08f0c63b3a662a7b17a4e2b611ee781612e6a565b60d45474010000000000000000000000000000000000000000900460ff1615611f525760405162461bcd60e51b815260206004820152601b60248201527f50726576696f75732044656c65676174696f6e2050656e64696e6700000000006044820152606401610a59565b5f611f5b612c37565b60ca549091503490611f73906402540be40090613b63565b60ca54611f809190613b50565b935081811015611fd25760405162461bcd60e51b815260206004820152601560248201527f496e73756666696369656e742052656c617946656500000000000000000000006044820152606401610a59565b60d0548410156120245760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e74204465706f73697420416d6f756e7400000000006044820152606401610a59565b60ce8054905f61203383613b76565b90915550604080516060810182524281525f60208083018281528385018a815286845260d59092529382209251835592516001830155915160029091015560cb80549297508692909190612088908490613b3d565b925050819055508360ca5f8282546120a09190613b50565b909155505060d480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556120ee84826130c8565b5050509091565b335f81815260d760205260409020805483106121535760405162461bcd60e51b815260206004820152600d60248201527f496e76616c696420696e646578000000000000000000000000000000000000006044820152606401610a59565b5f81848154811061216657612166613a75565b5f91825260208083206003909202909101805460018083015482865260d690945260408520908101549295509093909190036121e45760405162461bcd60e51b815260206004820152601560248201527f4e6f742061626c6520746f20636c61696d2079657400000000000000000000006044820152606401610a59565b845485906121f490600190613b50565b8154811061220457612204613a75565b905f5260205f20906003020185888154811061222257612222613a75565b5f9182526020909120825460039092020190815560018083015490820155600291820154910155845485908061225a5761225a613bad565b5f8281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909301838102909101828155600181018390556002908101839055935591830154908301549091816122b78685613acf565b6122c19190613b13565b90508060cd5f8282546122d49190613b50565b909155506122e490508982610a0d565b604080518b8152602081018390526001600160a01b038b16917f63bfb3a58e0713d68e49dda62c223fab04fb534eeef8ac6356cec78e691c092a910160405180910390a250505050505050505050565b5f61233e81612e6a565b60dc546001600160a01b0380841691160361239b5760405162461bcd60e51b815260206004820152601a60248201527f4f6c642061646472657373203d3d206e657720616464726573730000000000006044820152606401610a59565b6001600160a01b0382166123f15760405162461bcd60e51b815260206004820152601560248201527f7a65726f20616464726573732070726f766964656400000000000000000000006044820152606401610a59565b60dc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384169081179091556040517fefe3f2a813355e81025c75f6f977355ddd6f34f1fc3a15bd53562869af27c89c905f90a25050565b61245b612f95565b7f902cbe3a02736af9827fb6a90bada39e955c0941e08f0c63b3a662a7b17a4e2b61248581612e6a565b5f82815260d6602052604090206002810154158015906124a457508054155b6124f05760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964205555494400000000000000000000000000000000000000006044820152606401610a59565b4290555050565b6124ff612f95565b7f902cbe3a02736af9827fb6a90bada39e955c0941e08f0c63b3a662a7b17a4e2b61252981612e6a565b5f82815260d560205260409020600201541580159061255657505f82815260d56020526040902060010154155b6125a25760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964205555494400000000000000000000000000000000000000006044820152606401610a59565b5f82815260d5602052604081204260018201556002015460cb8054919283926125cc908490613b50565b925050819055508060c95f8282546125e49190613b3d565b909155505060d480547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16905560408051848152602081018390527f8f0a6a275be31c643d9ad67b6710ba8b13d370aeefbaec4c1d1f2ce1f8ed055b91016119a6565b5f61265181612e6a565b60335460ff1661266657612663613214565b50565b61266361326e565b60d8546001600160a01b031633146126c85760405162461bcd60e51b815260206004820152601a60248201527f41636365737369626c65206f6e6c79206279204d616e616765720000000000006044820152606401610a59565b5f81116127175760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964205468726573686f6c640000000000000000000000000000006044820152606401610a59565b60d08190556040518181527f14ad418bb4e621dd3db79d68475c5cb1f52ad8da493747a4325b0c7a5e4aba9a90602001611b78565b60d8546001600160a01b031633146127a65760405162461bcd60e51b815260206004820152601a60248201527f41636365737369626c65206f6e6c79206279204d616e616765720000000000006044820152606401610a59565b60d3546001600160a01b038083169116036128035760405162461bcd60e51b815260206004820152601a60248201527f4f6c642061646472657373203d3d206e657720616464726573730000000000006044820152606401610a59565b6001600160a01b0381166128595760405162461bcd60e51b815260206004820152601560248201527f7a65726f20616464726573732070726f766964656400000000000000000000006044820152606401610a59565b60d380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517f96d53eeb8fbbb982ef654300ad6fe8ad798574b294ce11a40763db488abcc15c905f90a250565b6040517fca0506e8000000000000000000000000000000000000000000000000000000008152600481018290525f90733b961e83400d51e6e1af5c450d3c7d7b80588d2890819063ca0506e8906024016111b2565b61293660405180608001604052805f81526020015f81526020015f81526020015f81525090565b505f90815260d66020908152604091829020825160808101845281548152600182015492810192909252600281015492820192909252600390910154606082015290565b612982612f95565b34806129d05760405162461bcd60e51b815260206004820152600e60248201527f496e76616c696420416d6f756e740000000000000000000000000000000000006044820152606401610a59565b5f6129da82611161565b90508160ca5f8282546129ed9190613b3d565b909155505060d2546040517f40c10f19000000000000000000000000000000000000000000000000000000008152336004820152602481018390526001600160a01b03909116906340c10f19906044015f604051808303815f87803b158015612a54575f80fd5b505af1158015612a66573d5f803e3d5ffd5b505050505050565b5f82815260976020526040902060010154612a8881612e6a565b610b278383612f14565b5f80612a9c612f95565b7f902cbe3a02736af9827fb6a90bada39e955c0941e08f0c63b3a662a7b17a4e2b612ac681612e6a565b60cf8054905f612ad583613b76565b9091555060cc54909350612ae8816128ba565b9250612af96402540be40084613b63565b612b039084613b50565b925060d154831015612b575760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e7420576974686472617720416d6f756e74000000006044820152606401610a59565b604080516080810182525f8082526020808301828152838501888152606085018781528a855260d69093529483209351845551600184015592516002830155915160039091015560c98054859290612bb0908490613b50565b90915550505f60cc5560d2546040517f9dc29fac000000000000000000000000000000000000000000000000000000008152306004820152602481018390526001600160a01b0390911690639dc29fac906044015f604051808303815f87803b158015612c1b575f80fd5b505af1158015612c2d573d5f803e3d5ffd5b5050505050509091565b60d454604080517f71d3086300000000000000000000000000000000000000000000000000000000815290515f926001600160a01b0316916371d308639160048083019260209291908290030181865afa158015612c97573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112169190613b26565b612cdc60405180606001604052805f81526020015f81526020015f81525090565b505f90815260d56020908152604091829020825160608101845281548152600182015492810192909252600201549181019190915290565b5f54610100900460ff16612d905760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a59565b565b5f54610100900460ff16612e0e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a59565b612d906132a7565b5f82815260976020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6112c78282612e74565b612663813361332f565b5f8281526097602090815260408083206001600160a01b038516845290915290205460ff166112c7575f8281526097602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612ed03390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b5f8281526097602090815260408083206001600160a01b038516845290915290205460ff16156112c7575f8281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60335460ff1615612d905760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a59565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526130709085906133c1565b50505050565b60335460ff16612d905760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a59565b5f6130d542610e10613b3d565b60d4549091505f906001600160a01b031663aa7415f56130f58587613b3d565b60d35460405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681525f60048201526001600160a01b0390911660248201526044810188905267ffffffffffffffff8616606482015260840160206040518083038185885af1158015613170573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906131959190613bda565b9050806131e45760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e487562205472616e736665724f7574204661696c656400000000006044820152606401610a59565b6040518481527fd70b6c02a759efec11d337171af1905f9f88902e3ce939869591e0bbe686dc6a90602001611d95565b61321c612f95565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586132513390565b6040516001600160a01b03909116815260200160405180910390a1565b613276613076565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613251565b5f54610100900460ff166133235760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a59565b6033805460ff19169055565b5f8281526097602090815260408083206001600160a01b038516845290915290205460ff166112c757613361816134a7565b61336c8360206134b9565b60405160200161337d929190613c10565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262461bcd60e51b8252610a5991600401613c7a565b5f613415826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136dc9092919063ffffffff16565b905080515f14806134355750808060200190518101906134359190613bda565b610b275760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610a59565b6060610bbe6001600160a01b03831660145b60605f6134c7836002613acf565b6134d2906002613b3d565b67ffffffffffffffff8111156134ea576134ea613ccd565b6040519080825280601f01601f191660200182016040528015613514576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061354a5761354a613a75565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106135ac576135ac613a75565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f6135e6846002613acf565b6135f1906001613b3d565b90505b600181111561368d577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061363257613632613a75565b1a60f81b82828151811061364857613648613a75565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535060049490941c9361368681613cfa565b90506135f4565b5083156111f15760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a59565b60606136ea84845f856136f2565b949350505050565b60608247101561376a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610a59565b5f80866001600160a01b031685876040516137859190613d2e565b5f6040518083038185875af1925050503d805f81146137bf576040519150601f19603f3d011682016040523d82523d5f602084013e6137c4565b606091505b50915091506137d5878383876137e0565b979650505050505050565b6060831561384e5782515f03613847576001600160a01b0385163b6138475760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a59565b50816136ea565b6136ea83838151156138635781518083602001fd5b8060405162461bcd60e51b8152600401610a599190613c7a565b5f6020828403121561388d575f80fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146111f1575f80fd5b80356001600160a01b03811681146138d2575f80fd5b919050565b5f80604083850312156138e8575f80fd5b6138f1836138bc565b946020939093013593505050565b5f6020828403121561390f575f80fd5b5035919050565b5f805f805f805f60e0888a03121561392c575f80fd5b613935886138bc565b9650613943602089016138bc565b9550613951604089016138bc565b945061395f606089016138bc565b935061396d608089016138bc565b925061397b60a089016138bc565b915060c0880135905092959891949750929550565b5f80604083850312156139a1575f80fd5b823591506139b1602084016138bc565b90509250929050565b5f602082840312156139ca575f80fd5b6111f1826138bc565b602080825282518282018190525f9190848201906040850190845b81811015613a2857613a158385518051825260208082015190830152604090810151910152565b92840192606092909201916001016139ee565b50909695505050505050565b5f8060408385031215613a45575f80fd5b50508035926020909101359150565b81518152602080830151908201526040808301519082015260608101610bbe565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417610bbe57610bbe613aa2565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82613b2157613b21613ae6565b500490565b5f60208284031215613b36575f80fd5b5051919050565b80820180821115610bbe57610bbe613aa2565b81810381811115610bbe57610bbe613aa2565b5f82613b7157613b71613ae6565b500690565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613ba657613ba6613aa2565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f60208284031215613bea575f80fd5b815180151581146111f1575f80fd5b5f81518060208401855e5f93019283525090919050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f613c416017830185613bf9565b7f206973206d697373696e6720726f6c65200000000000000000000000000000008152613c716011820185613bf9565b95945050505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81613d0857613d08613aa2565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b5f6111f18284613bf956fea264697066735822122027c9e13fc6ec3419284a8664e2eae982cc3a37395b769cfb340e006116420f3c64736f6c63430008190033