Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 79 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Reward | 18431635 | 271 days ago | IN | 0 ETH | 0.0099721 | ||||
Withdraw | 18363052 | 281 days ago | IN | 0 ETH | 0.00116896 | ||||
Withdraw | 18327135 | 286 days ago | IN | 0 ETH | 0.00084168 | ||||
Claim Reward | 18327119 | 286 days ago | IN | 0 ETH | 0.00101307 | ||||
Withdraw | 18053053 | 324 days ago | IN | 0 ETH | 0.00285941 | ||||
Withdraw | 17991113 | 333 days ago | IN | 0 ETH | 0.00199788 | ||||
Withdraw | 17953898 | 338 days ago | IN | 0 ETH | 0.00312513 | ||||
Stake | 17899828 | 346 days ago | IN | 0 ETH | 0.00163097 | ||||
Stake | 17899824 | 346 days ago | IN | 0 ETH | 0.00186482 | ||||
Claim Reward | 17899821 | 346 days ago | IN | 0 ETH | 0.00168688 | ||||
Stake | 17899682 | 346 days ago | IN | 0 ETH | 0.00205955 | ||||
Stake | 17897948 | 346 days ago | IN | 0 ETH | 0.00201877 | ||||
Stake | 17883985 | 348 days ago | IN | 0 ETH | 0.00230974 | ||||
Withdraw | 17861830 | 351 days ago | IN | 0 ETH | 0.00205912 | ||||
Withdraw | 17856116 | 352 days ago | IN | 0 ETH | 0.00174372 | ||||
Withdraw | 17855812 | 352 days ago | IN | 0 ETH | 0.00035148 | ||||
Withdraw | 17855797 | 352 days ago | IN | 0 ETH | 0.00175995 | ||||
Claim Reward | 17855774 | 352 days ago | IN | 0 ETH | 0.0033246 | ||||
Stake | 17852771 | 352 days ago | IN | 0 ETH | 0.00131001 | ||||
Stake | 17852765 | 352 days ago | IN | 0 ETH | 0.00369061 | ||||
Stake | 17846396 | 353 days ago | IN | 0 ETH | 0.00398388 | ||||
Stake | 17838773 | 354 days ago | IN | 0 ETH | 0.00405217 | ||||
Withdraw | 17837649 | 354 days ago | IN | 0 ETH | 0.00169504 | ||||
Stake | 17834245 | 355 days ago | IN | 0 ETH | 0.00269149 | ||||
Stake | 17833899 | 355 days ago | IN | 0 ETH | 0.00220027 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
AlienStaking
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-29 */ //SPDX-License-Identifier: No pragma solidity ^0.8.17; //--- Context ---// abstract contract Context { constructor() { } function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } //--- Pausable ---// abstract contract Pausable is Context { event Paused(address account); event Unpaused(address account); bool private _paused; constructor() { _paused = false; } modifier whenNotPaused() { _requireNotPaused(); _; } modifier whenPaused() { _requirePaused(); _; } function paused() public view virtual returns (bool) { return _paused; } function _requireNotPaused() internal view virtual { require(!paused(), "Pausable: paused"); } function _requirePaused() internal view virtual { require(paused(), "Pausable: not paused"); } function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } //--- Ownable ---// abstract contract Ownable is Context { address private _owner; address private _multiSig; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event MultiSigTransferred(address indexed oldMultiSig, address indexed newMultiSig); constructor() { _setOwner(_msgSender()); _setMultiSig(_msgSender()); } function multisig() public view virtual returns (address) { return _multiSig; } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender() || multisig() == _msgSender(), "Ownable: caller is not the owner"); _; } modifier onlyMultiSignature() { require(multisig() == _msgSender(), "Ownable: caller is not the multisig"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function transferMultiSig(address newMultiSig) public virtual onlyMultiSignature { require(newMultiSig != address(0), "Ownable: new owner is the zero address"); _setMultiSig(newMultiSig); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function _setMultiSig(address newMultiSig) private { address oldMultiSig = _multiSig; _multiSig = newMultiSig; emit MultiSigTransferred(oldMultiSig, newMultiSig); } } //--- Interface for ERC20 ---// interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract AlienStaking is Context, Pausable, Ownable { event staking(uint256 amount); event WithdrawFromStaking(uint256 amount); event ClaimRewards(uint256 amount); mapping (address => uint) public stakeTimestamps; uint256 public TokenDedicatiAlloStaking; // Modalità 1: Fixed amount of tokens staked. uint256 public safeSeconds = 15; uint256 public totalSupply; // amount of all token staked bool public isStakingLive = false; uint256 private dayzero; uint256 private preApproval; bool public Initalized = false; mapping(address => uint256) private rewardsGiaPagati; mapping(address => uint256) public rewards; mapping(address => uint256) private quandoStake; mapping(address => uint256) private quandoWithdraw; mapping(address => uint256) private lastTimeStaked; mapping(address => uint256) private holdingXstaking; mapping(address => uint256) private lastClaimRewards; mapping(address => bool) private AlreadyStaked; mapping(address => bool) private FeesExcluded; uint256 private interestperDay = 13698630133; uint256 public withdrawalLockDuration = 30 days; uint256 public taxPercentage = 10; constructor ( ) { FeesExcluded[msg.sender] = true; } IERC20 public Token; function setToken(address _token) external onlyMultiSignature { require(!Initalized); Token = IERC20(_token); Initalized = true; } function unPause() external onlyMultiSignature { _unpause(); } function ExcludeFromFees(address holder, bool yesno) external onlyOwner { FeesExcluded[holder] = yesno; } function setTokenDedicatiAlloStaking(uint256 amount) external onlyOwner { uint256 tempBalance = Token.balanceOf(msg.sender); // require(tempBalance >= amount,"Not enough tokens"); // Token.transferFrom(msg.sender, address(this), amount); // make sure to give enough allowance TokenDedicatiAlloStaking += amount; } function setStakingLive() external onlyOwner { require(!isStakingLive,"Staking is already live"); isStakingLive = true; } function reset() external onlyMultiSignature { uint256 tempBalance = Token.balanceOf(address(this)); if(tempBalance > 0) { Token.transfer(msg.sender, tempBalance); } interestperDay = 0; TokenDedicatiAlloStaking = 0; isStakingLive = false; _pause(); } function stakeprivate(uint256 amount) private { uint256 tempBalance = Token.balanceOf(msg.sender); require(isStakingLive,"Staking is not live"); require(tempBalance >= amount,"Not enough tokens"); Token.transferFrom(msg.sender, address(this), amount); holdingXstaking[msg.sender] += amount; totalSupply += amount; quandoStake[msg.sender] = block.timestamp; // Quando stake in secondi. https://www.site24x7.com/tools/time-stamp-converter.html AlreadyStaked[msg.sender] = true; } function stake(uint256 amount) external whenNotPaused { require(msg.sender != address(0)); require(isStakingLive,"Staking is not live yet."); bool YesNoStaked = AlreadyStaked[msg.sender] == true; if(YesNoStaked) { if(pend(msg.sender) >= holdingXstaking[msg.sender] / 1000) { revert("Claim Rewards, you have at least 0.1% rewards to claim"); } } else { } stakeprivate(amount); stakeTimestamps[msg.sender] = block.timestamp; emit staking(amount); } function feesNo() internal view returns(bool) { bool FeesNo = FeesExcluded[msg.sender] == true; return FeesNo; } function withdraw(uint256 amount) external whenNotPaused { require(msg.sender != address(0)); require(amount > 0, "Amount should be greater than 0"); require(holdingXstaking[msg.sender] >= amount, "Not enough tokens"); uint256 lockDuration = block.timestamp - stakeTimestamps[msg.sender]; if (lockDuration < withdrawalLockDuration) { // Apply tax if withdrawn before 3 days uint256 taxAmount = (amount * taxPercentage) / 100; uint256 netAmount = amount - taxAmount; holdingXstaking[msg.sender] -= amount; totalSupply -= amount; // Transfer the net amount (amount after tax) to the user's wallet Token.transfer(msg.sender, netAmount); // Transfer the tax amount to the contract's wallet Token.transfer(address(0xFF27b3b352853ccf039E4a33A89EDe072759E675), taxAmount); } else { // No tax if withdrawn after 3 days holdingXstaking[msg.sender] -= amount; totalSupply -= amount; // Transfer the full amount to the user's wallet Token.transfer(msg.sender, amount); } quandoWithdraw[msg.sender] = block.timestamp; bool goingToZero = holdingXstaking[msg.sender] == 0; if (goingToZero) { resetUser(); } emit WithdrawFromStaking(amount); } function resetUser() private { AlreadyStaked[msg.sender] = false; rewards[msg.sender] = 0; rewardsGiaPagati[msg.sender] = 0; lastClaimRewards[msg.sender] = 0; quandoStake[msg.sender] = 0; holdingXstaking[msg.sender] = 0; stakeTimestamps[msg.sender] = 0; } function calculateRewards() private { uint256 interestPerSecond = interestperDay / 86400; uint256 interest = (block.timestamp - quandoStake[msg.sender]) * interestPerSecond; rewards[msg.sender] = (holdingXstaking[msg.sender] * interest); rewards[msg.sender] = checkZeroMath(msg.sender, rewards[msg.sender]); } function safe() private view whenNotPaused { require(block.timestamp > lastClaimRewards[msg.sender] + safeSeconds, "Cannot claim in the sameblock"); } function staked() private view { bool YesNoStaked = AlreadyStaked[msg.sender] == true; if(YesNoStaked) { } else { safe(); } } function claimReward() public whenNotPaused { require(msg.sender != address(0)); calculateRewards(); staked(); require(rewards[msg.sender] > 0, "Can't claim less than zero tokens"); uint256 yourrewards = rewards[msg.sender]; Token.transfer(msg.sender, yourrewards); rewardsGiaPagati[msg.sender] += yourrewards; lastClaimRewards[msg.sender] = block.timestamp; require(TokenDedicatiAlloStaking > yourrewards,"Token Holders need to be able to get back 100% of the tokens allocated"); TokenDedicatiAlloStaking -= yourrewards; emit ClaimRewards(yourrewards); } function amountStaked(address holder) external view returns (uint256) { return holdingXstaking[holder]; } function rewardsPaid(address holder) external view returns (uint256) { return rewardsGiaPagati[holder]; } function whenStaking(address holder) external view returns (uint256) { return quandoStake[holder]; } function lastTimeClaim(address holder) external view returns (uint256) { return lastClaimRewards[holder]; } function isFeeExcluded(address holder) external view returns (bool) { return FeesExcluded[holder]; } function _alreadyStaked(address holder) external view returns (bool) { return AlreadyStaked[holder]; } function pend(address account) private view returns (uint256) { uint256 interestPerSecond = interestperDay / 86400; uint256 interest = (block.timestamp - quandoStake[account]) * interestPerSecond; uint256 preRewards; preRewards = (holdingXstaking[account] * interest); preRewards = checkZeroMath(account, preRewards); return preRewards; } function checkZeroMath(address account, uint256 a) internal view returns(uint256) { uint256 _return; if(((a / 100000000000)) / 100 >= rewardsGiaPagati[account]) { _return = ((a / 100000000000)) / 100 - rewardsGiaPagati[account]; } else { _return = 0; } return _return; } function pendingRewards(address account) external view returns(uint256) { return pend(account); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldMultiSig","type":"address"},{"indexed":true,"internalType":"address","name":"newMultiSig","type":"address"}],"name":"MultiSigTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WithdrawFromStaking","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"staking","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"yesno","type":"bool"}],"name":"ExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Initalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TokenDedicatiAlloStaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"_alreadyStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"amountStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"isFeeExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isStakingLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"lastTimeClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"multisig","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"rewardsPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safeSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setStakingLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTokenDedicatiAlloStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakeTimestamps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newMultiSig","type":"address"}],"name":"transferMultiSig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"whenStaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawalLockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052600f6004556006805460ff199081169091556009805490911690556403308081f560135562278d00601455600a60155534801561003f575f80fd5b505f805460ff1916905561005233610079565b61005b336100d1565b335f908152601260205260409020805460ff19166001179055610122565b5f80546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fd4f90286c853b31e785ae85d08354a790ca9eba6e6eac5152d619cb54766e120905f90a35050565b6118fa8061012f5f395ff3fe608060405234801561000f575f80fd5b50600436106101e7575f3560e01c806384201bd911610109578063b88a802f1161009e578063d826f88f1161006e578063d826f88f14610457578063ef40a6701461045f578063f2fde38b14610487578063f7b188a51461049a575f80fd5b8063b88a802f14610404578063bca238aa1461040c578063c241267614610437578063c33ac9b71461044a575f80fd5b8063a2df2ba7116100d9578063a2df2ba7146103b7578063a694fc3a146103df578063ae7b6d16146103f2578063afb838e7146103fb575f80fd5b806384201bd91461035d5780638da5cb5b1461037057806399f853a5146103855780639d8f7706146103a4575f80fd5b806338700bfe1161017f57806360c251c11161014f57806360c251c1146102fc5780636c03932f14610305578063700a4a741461032d578063715018a614610355575f80fd5b806338700bfe1461029a5780634783c35b146102a25780634f726a3d146102c75780635c975abb146102f2575f80fd5b80632790eb53116101ba5780632790eb531461024e5780632e1a7d4d1461025757806331d7a2621461026a578063341e7dcc1461027d575f80fd5b80630700037d146101eb578063144fa6d71461021d57806318160ddd146102325780632138b7c11461023b575b5f80fd5b61020a6101f93660046116c7565b600b6020525f908152604090205481565b6040519081526020015b60405180910390f35b61023061022b3660046116c7565b6104a2565b005b61020a60055481565b6102306102493660046116c7565b610513565b61020a60045481565b6102306102653660046116e0565b61056f565b61020a6102783660046116c7565b6108ed565b60065461028a9060ff1681565b6040519015158152602001610214565b6102306108fd565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610214565b61028a6102d53660046116c7565b6001600160a01b03165f9081526011602052604090205460ff1690565b5f5460ff1661028a565b61020a60145481565b61020a6103133660046116c7565b6001600160a01b03165f908152600c602052604090205490565b61020a61033b3660046116c7565b6001600160a01b03165f908152600a602052604090205490565b6102306109a3565b61023061036b3660046116e0565b6109f2565b5f5461010090046001600160a01b03166102af565b61020a6103933660046116c7565b60026020525f908152604090205481565b6102306103b2366004611704565b610b55565b61020a6103c53660046116c7565b6001600160a01b03165f9081526010602052604090205490565b6102306103ed3660046116e0565b610bc3565b61020a60155481565b61020a60035481565b610230610d2c565b61028a61041a3660046116c7565b6001600160a01b03165f9081526012602052604090205460ff1690565b6016546102af906001600160a01b031681565b60095461028a9060ff1681565b610230610f3e565b61020a61046d3660046116c7565b6001600160a01b03165f908152600f602052604090205490565b6102306104953660046116c7565b611069565b6102306110dc565b6001546001600160a01b031633146104d55760405162461bcd60e51b81526004016104cc90611739565b60405180910390fd5b60095460ff16156104e4575f80fd5b601680546001600160a01b0319166001600160a01b03929092169190911790556009805460ff19166001179055565b6001546001600160a01b0316331461053d5760405162461bcd60e51b81526004016104cc90611739565b6001600160a01b0381166105635760405162461bcd60e51b81526004016104cc9061177c565b61056c8161110e565b50565b61057761115f565b33610580575f80fd5b5f81116105cf5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742073686f756c642062652067726561746572207468616e20300060448201526064016104cc565b335f908152600f60205260409020548111156105fd5760405162461bcd60e51b81526004016104cc906117c2565b335f908152600260205260408120546106169042611801565b905060145481101561078b575f6064601554846106339190611814565b61063d919061182b565b90505f61064a8285611801565b335f908152600f602052604081208054929350869290919061066d908490611801565b925050819055508360055f8282546106859190611801565b909155505060165460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303815f875af11580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc919061184a565b5060165460405163a9059cbb60e01b815273ff27b3b352853ccf039e4a33a89ede072759e6756004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af115801561075f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610783919061184a565b50505061083a565b335f908152600f6020526040812080548492906107a9908490611801565b925050819055508160055f8282546107c19190611801565b909155505060165460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610814573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610838919061184a565b505b335f908152600d60209081526040808320429055600f9091529020541580156108b5576108b5335f908152601160209081526040808320805460ff19169055600b8252808320839055600a825280832083905560108252808320839055600c8252808320839055600f82528083208390556002909152812055565b6040518381527fc483bf0af3b237d0e8f42091db468219edf0d51b24995513b57b9857be7871549060200160405180910390a1505050565b5f6108f7826111a4565b92915050565b5f546001600160a01b036101009091041633148061092557506001546001600160a01b031633145b6109415760405162461bcd60e51b81526004016104cc90611865565b60065460ff16156109945760405162461bcd60e51b815260206004820152601760248201527f5374616b696e6720697320616c7265616479206c69766500000000000000000060448201526064016104cc565b6006805460ff19166001179055565b5f546001600160a01b03610100909104163314806109cb57506001546001600160a01b031633145b6109e75760405162461bcd60e51b81526004016104cc90611865565b6109f05f611225565b565b5f546001600160a01b0361010090910416331480610a1a57506001546001600160a01b031633145b610a365760405162461bcd60e51b81526004016104cc90611865565b6016546040516370a0823160e01b81523360048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610a7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa0919061189a565b905081811015610ac25760405162461bcd60e51b81526004016104cc906117c2565b6016546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af1158015610b16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3a919061184a565b508160035f828254610b4c91906118b1565b90915550505050565b5f546001600160a01b0361010090910416331480610b7d57506001546001600160a01b031633145b610b995760405162461bcd60e51b81526004016104cc90611865565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b610bcb61115f565b33610bd4575f80fd5b60065460ff16610c265760405162461bcd60e51b815260206004820152601860248201527f5374616b696e67206973206e6f74206c697665207965742e000000000000000060448201526064016104cc565b335f9081526011602052604090205460ff1615156001148015610cd457335f908152600f6020526040902054610c5f906103e89061182b565b610c68336111a4565b10610cd45760405162461bcd60e51b815260206004820152603660248201527f436c61696d20526577617264732c20796f752068617665206174206c6561737460448201527520302e3125207265776172647320746f20636c61696d60501b60648201526084016104cc565b610cdd8261127d565b335f9081526002602052604090819020429055517f1dbb2a223bf10b333097931146bfc57c2b39e7c0615d1b275c61bb2eb417f65890610d209084815260200190565b60405180910390a15050565b610d3461115f565b33610d3d575f80fd5b610d45611430565b610d4d6114b5565b335f908152600b6020526040902054610db25760405162461bcd60e51b815260206004820152602160248201527f43616e277420636c61696d206c657373207468616e207a65726f20746f6b656e6044820152607360f81b60648201526084016104cc565b335f818152600b60205260409081902054601654915163a9059cbb60e01b8152600481019390935260248301819052916001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610e13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e37919061184a565b50335f908152600a602052604081208054839290610e569084906118b1565b9091555050335f9081526010602052604090204290556003548110610ef25760405162461bcd60e51b815260206004820152604660248201527f546f6b656e20486f6c64657273206e65656420746f2062652061626c6520746f60448201527f20676574206261636b2031303025206f662074686520746f6b656e7320616c6c6064820152651bd8d85d195960d21b608482015260a4016104cc565b8060035f828254610f039190611801565b90915550506040518181527fbacfa9662d479c707dae707c358323f0c7711ef382007957dc9935e629da36b29060200160405180910390a150565b6001546001600160a01b03163314610f685760405162461bcd60e51b81526004016104cc90611739565b6016546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610fae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd2919061189a565b9050801561104e5760165460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015611028573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104c919061184a565b505b5f60138190556003556006805460ff1916905561056c6114d9565b5f546001600160a01b036101009091041633148061109157506001546001600160a01b031633145b6110ad5760405162461bcd60e51b81526004016104cc90611865565b6001600160a01b0381166110d35760405162461bcd60e51b81526004016104cc9061177c565b61056c81611225565b6001546001600160a01b031633146111065760405162461bcd60e51b81526004016104cc90611739565b6109f0611532565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fd4f90286c853b31e785ae85d08354a790ca9eba6e6eac5152d619cb54766e120905f90a35050565b5f5460ff16156109f05760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104cc565b5f80620151806013546111b7919061182b565b6001600160a01b0384165f908152600c60205260408120549192509082906111df9042611801565b6111e99190611814565b6001600160a01b0385165f908152600f602052604081205491925090611210908390611814565b905061121c858261156a565b95945050505050565b5f80546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6016546040516370a0823160e01b81523360048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e7919061189a565b60065490915060ff166113325760405162461bcd60e51b81526020600482015260136024820152725374616b696e67206973206e6f74206c69766560681b60448201526064016104cc565b818110156113525760405162461bcd60e51b81526004016104cc906117c2565b6016546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af11580156113a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ca919061184a565b50335f908152600f6020526040812080548492906113e99084906118b1565b925050819055508160055f82825461140191906118b1565b9091555050335f908152600c6020908152604080832042905560119091529020805460ff191660011790555050565b5f62015180601354611442919061182b565b335f908152600c60205260408120549192509082906114619042611801565b61146b9190611814565b335f908152600f6020526040902054909150611488908290611814565b335f818152600b602052604090208290556114a29161156a565b335f908152600b60205260409020555050565b335f9081526011602052604090205460ff1615156001148061056c5761056c6115f2565b6114e161115f565b5f805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115153390565b6040516001600160a01b03909116815260200160405180910390a1565b61153a611664565b5f805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611515565b6001600160a01b0382165f908152600a60205260408120548190606461159564174876e8008661182b565b61159f919061182b565b106115e8576001600160a01b0384165f908152600a602052604090205460646115cd64174876e8008661182b565b6115d7919061182b565b6115e19190611801565b90506115eb565b505f5b9392505050565b6115fa61115f565b600454335f9081526010602052604090205461161691906118b1565b42116109f05760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f7420636c61696d20696e207468652073616d65626c6f636b00000060448201526064016104cc565b5f5460ff166109f05760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104cc565b80356001600160a01b03811681146116c2575f80fd5b919050565b5f602082840312156116d7575f80fd5b6115eb826116ac565b5f602082840312156116f0575f80fd5b5035919050565b801515811461056c575f80fd5b5f8060408385031215611715575f80fd5b61171e836116ac565b9150602083013561172e816116f7565b809150509250929050565b60208082526023908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206d756c746960408201526273696760e81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601190820152704e6f7420656e6f75676820746f6b656e7360781b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108f7576108f76117ed565b80820281158282048414176108f7576108f76117ed565b5f8261184557634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561185a575f80fd5b81516115eb816116f7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118aa575f80fd5b5051919050565b808201808211156108f7576108f76117ed56fea2646970667358221220d4b42bc3f884f894048413ca5176b3560cf98a7bacc55474ef53cf278053c60464736f6c63430008150033
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106101e7575f3560e01c806384201bd911610109578063b88a802f1161009e578063d826f88f1161006e578063d826f88f14610457578063ef40a6701461045f578063f2fde38b14610487578063f7b188a51461049a575f80fd5b8063b88a802f14610404578063bca238aa1461040c578063c241267614610437578063c33ac9b71461044a575f80fd5b8063a2df2ba7116100d9578063a2df2ba7146103b7578063a694fc3a146103df578063ae7b6d16146103f2578063afb838e7146103fb575f80fd5b806384201bd91461035d5780638da5cb5b1461037057806399f853a5146103855780639d8f7706146103a4575f80fd5b806338700bfe1161017f57806360c251c11161014f57806360c251c1146102fc5780636c03932f14610305578063700a4a741461032d578063715018a614610355575f80fd5b806338700bfe1461029a5780634783c35b146102a25780634f726a3d146102c75780635c975abb146102f2575f80fd5b80632790eb53116101ba5780632790eb531461024e5780632e1a7d4d1461025757806331d7a2621461026a578063341e7dcc1461027d575f80fd5b80630700037d146101eb578063144fa6d71461021d57806318160ddd146102325780632138b7c11461023b575b5f80fd5b61020a6101f93660046116c7565b600b6020525f908152604090205481565b6040519081526020015b60405180910390f35b61023061022b3660046116c7565b6104a2565b005b61020a60055481565b6102306102493660046116c7565b610513565b61020a60045481565b6102306102653660046116e0565b61056f565b61020a6102783660046116c7565b6108ed565b60065461028a9060ff1681565b6040519015158152602001610214565b6102306108fd565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610214565b61028a6102d53660046116c7565b6001600160a01b03165f9081526011602052604090205460ff1690565b5f5460ff1661028a565b61020a60145481565b61020a6103133660046116c7565b6001600160a01b03165f908152600c602052604090205490565b61020a61033b3660046116c7565b6001600160a01b03165f908152600a602052604090205490565b6102306109a3565b61023061036b3660046116e0565b6109f2565b5f5461010090046001600160a01b03166102af565b61020a6103933660046116c7565b60026020525f908152604090205481565b6102306103b2366004611704565b610b55565b61020a6103c53660046116c7565b6001600160a01b03165f9081526010602052604090205490565b6102306103ed3660046116e0565b610bc3565b61020a60155481565b61020a60035481565b610230610d2c565b61028a61041a3660046116c7565b6001600160a01b03165f9081526012602052604090205460ff1690565b6016546102af906001600160a01b031681565b60095461028a9060ff1681565b610230610f3e565b61020a61046d3660046116c7565b6001600160a01b03165f908152600f602052604090205490565b6102306104953660046116c7565b611069565b6102306110dc565b6001546001600160a01b031633146104d55760405162461bcd60e51b81526004016104cc90611739565b60405180910390fd5b60095460ff16156104e4575f80fd5b601680546001600160a01b0319166001600160a01b03929092169190911790556009805460ff19166001179055565b6001546001600160a01b0316331461053d5760405162461bcd60e51b81526004016104cc90611739565b6001600160a01b0381166105635760405162461bcd60e51b81526004016104cc9061177c565b61056c8161110e565b50565b61057761115f565b33610580575f80fd5b5f81116105cf5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742073686f756c642062652067726561746572207468616e20300060448201526064016104cc565b335f908152600f60205260409020548111156105fd5760405162461bcd60e51b81526004016104cc906117c2565b335f908152600260205260408120546106169042611801565b905060145481101561078b575f6064601554846106339190611814565b61063d919061182b565b90505f61064a8285611801565b335f908152600f602052604081208054929350869290919061066d908490611801565b925050819055508360055f8282546106859190611801565b909155505060165460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303815f875af11580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc919061184a565b5060165460405163a9059cbb60e01b815273ff27b3b352853ccf039e4a33a89ede072759e6756004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af115801561075f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610783919061184a565b50505061083a565b335f908152600f6020526040812080548492906107a9908490611801565b925050819055508160055f8282546107c19190611801565b909155505060165460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610814573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610838919061184a565b505b335f908152600d60209081526040808320429055600f9091529020541580156108b5576108b5335f908152601160209081526040808320805460ff19169055600b8252808320839055600a825280832083905560108252808320839055600c8252808320839055600f82528083208390556002909152812055565b6040518381527fc483bf0af3b237d0e8f42091db468219edf0d51b24995513b57b9857be7871549060200160405180910390a1505050565b5f6108f7826111a4565b92915050565b5f546001600160a01b036101009091041633148061092557506001546001600160a01b031633145b6109415760405162461bcd60e51b81526004016104cc90611865565b60065460ff16156109945760405162461bcd60e51b815260206004820152601760248201527f5374616b696e6720697320616c7265616479206c69766500000000000000000060448201526064016104cc565b6006805460ff19166001179055565b5f546001600160a01b03610100909104163314806109cb57506001546001600160a01b031633145b6109e75760405162461bcd60e51b81526004016104cc90611865565b6109f05f611225565b565b5f546001600160a01b0361010090910416331480610a1a57506001546001600160a01b031633145b610a365760405162461bcd60e51b81526004016104cc90611865565b6016546040516370a0823160e01b81523360048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610a7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa0919061189a565b905081811015610ac25760405162461bcd60e51b81526004016104cc906117c2565b6016546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af1158015610b16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3a919061184a565b508160035f828254610b4c91906118b1565b90915550505050565b5f546001600160a01b0361010090910416331480610b7d57506001546001600160a01b031633145b610b995760405162461bcd60e51b81526004016104cc90611865565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b610bcb61115f565b33610bd4575f80fd5b60065460ff16610c265760405162461bcd60e51b815260206004820152601860248201527f5374616b696e67206973206e6f74206c697665207965742e000000000000000060448201526064016104cc565b335f9081526011602052604090205460ff1615156001148015610cd457335f908152600f6020526040902054610c5f906103e89061182b565b610c68336111a4565b10610cd45760405162461bcd60e51b815260206004820152603660248201527f436c61696d20526577617264732c20796f752068617665206174206c6561737460448201527520302e3125207265776172647320746f20636c61696d60501b60648201526084016104cc565b610cdd8261127d565b335f9081526002602052604090819020429055517f1dbb2a223bf10b333097931146bfc57c2b39e7c0615d1b275c61bb2eb417f65890610d209084815260200190565b60405180910390a15050565b610d3461115f565b33610d3d575f80fd5b610d45611430565b610d4d6114b5565b335f908152600b6020526040902054610db25760405162461bcd60e51b815260206004820152602160248201527f43616e277420636c61696d206c657373207468616e207a65726f20746f6b656e6044820152607360f81b60648201526084016104cc565b335f818152600b60205260409081902054601654915163a9059cbb60e01b8152600481019390935260248301819052916001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610e13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e37919061184a565b50335f908152600a602052604081208054839290610e569084906118b1565b9091555050335f9081526010602052604090204290556003548110610ef25760405162461bcd60e51b815260206004820152604660248201527f546f6b656e20486f6c64657273206e65656420746f2062652061626c6520746f60448201527f20676574206261636b2031303025206f662074686520746f6b656e7320616c6c6064820152651bd8d85d195960d21b608482015260a4016104cc565b8060035f828254610f039190611801565b90915550506040518181527fbacfa9662d479c707dae707c358323f0c7711ef382007957dc9935e629da36b29060200160405180910390a150565b6001546001600160a01b03163314610f685760405162461bcd60e51b81526004016104cc90611739565b6016546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610fae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd2919061189a565b9050801561104e5760165460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015611028573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104c919061184a565b505b5f60138190556003556006805460ff1916905561056c6114d9565b5f546001600160a01b036101009091041633148061109157506001546001600160a01b031633145b6110ad5760405162461bcd60e51b81526004016104cc90611865565b6001600160a01b0381166110d35760405162461bcd60e51b81526004016104cc9061177c565b61056c81611225565b6001546001600160a01b031633146111065760405162461bcd60e51b81526004016104cc90611739565b6109f0611532565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fd4f90286c853b31e785ae85d08354a790ca9eba6e6eac5152d619cb54766e120905f90a35050565b5f5460ff16156109f05760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104cc565b5f80620151806013546111b7919061182b565b6001600160a01b0384165f908152600c60205260408120549192509082906111df9042611801565b6111e99190611814565b6001600160a01b0385165f908152600f602052604081205491925090611210908390611814565b905061121c858261156a565b95945050505050565b5f80546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6016546040516370a0823160e01b81523360048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e7919061189a565b60065490915060ff166113325760405162461bcd60e51b81526020600482015260136024820152725374616b696e67206973206e6f74206c69766560681b60448201526064016104cc565b818110156113525760405162461bcd60e51b81526004016104cc906117c2565b6016546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af11580156113a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ca919061184a565b50335f908152600f6020526040812080548492906113e99084906118b1565b925050819055508160055f82825461140191906118b1565b9091555050335f908152600c6020908152604080832042905560119091529020805460ff191660011790555050565b5f62015180601354611442919061182b565b335f908152600c60205260408120549192509082906114619042611801565b61146b9190611814565b335f908152600f6020526040902054909150611488908290611814565b335f818152600b602052604090208290556114a29161156a565b335f908152600b60205260409020555050565b335f9081526011602052604090205460ff1615156001148061056c5761056c6115f2565b6114e161115f565b5f805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115153390565b6040516001600160a01b03909116815260200160405180910390a1565b61153a611664565b5f805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611515565b6001600160a01b0382165f908152600a60205260408120548190606461159564174876e8008661182b565b61159f919061182b565b106115e8576001600160a01b0384165f908152600a602052604090205460646115cd64174876e8008661182b565b6115d7919061182b565b6115e19190611801565b90506115eb565b505f5b9392505050565b6115fa61115f565b600454335f9081526010602052604090205461161691906118b1565b42116109f05760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f7420636c61696d20696e207468652073616d65626c6f636b00000060448201526064016104cc565b5f5460ff166109f05760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104cc565b80356001600160a01b03811681146116c2575f80fd5b919050565b5f602082840312156116d7575f80fd5b6115eb826116ac565b5f602082840312156116f0575f80fd5b5035919050565b801515811461056c575f80fd5b5f8060408385031215611715575f80fd5b61171e836116ac565b9150602083013561172e816116f7565b809150509250929050565b60208082526023908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206d756c746960408201526273696760e81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601190820152704e6f7420656e6f75676820746f6b656e7360781b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108f7576108f76117ed565b80820281158282048414176108f7576108f76117ed565b5f8261184557634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561185a575f80fd5b81516115eb816116f7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118aa575f80fd5b5051919050565b808201808211156108f7576108f76117ed56fea2646970667358221220d4b42bc3f884f894048413ca5176b3560cf98a7bacc55474ef53cf278053c60464736f6c63430008150033
Deployed Bytecode Sourcemap
3878:8739:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4514:42;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;529:25:1;;;517:2;502:18;4514:42:0;;;;;;;;5215:162;;;;;;:::i;:::-;;:::i;:::-;;4251:26;;;;;;2560:212;;;;;;:::i;:::-;;:::i;4213:31::-;;;;;;7719:1450;;;;;;:::i;:::-;;:::i;12499:111::-;;;;;;:::i;:::-;;:::i;4314:33::-;;;;;;;;;;;;915:14:1;;908:22;890:41;;878:2;863:18;4314:33:0;750:187:1;5960:144:0;;;:::i;1761:93::-;1837:9;;-1:-1:-1;;;;;1837:9:0;1761:93;;;-1:-1:-1;;;;;1106:32:1;;;1088:51;;1076:2;1061:18;1761:93:0;942:203:1;11601:116:0;;;;;;:::i;:::-;-1:-1:-1;;;;;11688:21:0;11664:4;11688:21;;;:13;:21;;;;;;;;;11601:116;769:86;816:4;840:7;;;769:86;;5006:47;;;;;;11228:114;;;;;;:::i;:::-;-1:-1:-1;;;;;11315:19:0;11288:7;11315:19;;;:11;:19;;;;;;;11228:114;11101:119;;;;;;:::i;:::-;-1:-1:-1;;;;;11188:24:0;11161:7;11188:24;;;:16;:24;;;;;;;11101:119;2258:94;;;:::i;5596:356::-;;;;;;:::i;:::-;;:::i;1862:87::-;1908:7;1935:6;;;;-1:-1:-1;;;;;1935:6:0;1862:87;;4065:48;;;;;;:::i;:::-;;;;;;;;;;;;;;5469:119;;;;;;:::i;:::-;;:::i;11350:121::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11439:24:0;11412:7;11439:24;;;:16;:24;;;;;;;11350:121;7017:549;;;;;;:::i;:::-;;:::i;5060:33::-;;;;;;4120:39;;;;;;10290:676;;;:::i;11479:114::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11565:20:0;11541:4;11565:20;;;:12;:20;;;;;;;;;11479:114;5187:19;;;;;-1:-1:-1;;;;;5187:19:0;;;4418:30;;;;;;;;;6116:331;;;:::i;10974:119::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11062:23:0;11035:7;11062:23;;;:15;:23;;;;;;;10974:119;2360:192;;;;;;:::i;:::-;;:::i;5385:76::-;;;:::i;5215:162::-;1837:9;;-1:-1:-1;;;;;1837:9:0;235:10;2164:26;2156:74;;;;-1:-1:-1;;;2156:74:0;;;;;;;:::i;:::-;;;;;;;;;5297:10:::1;::::0;::::1;;5296:11;5288:20;;;::::0;::::1;;5319:5;:22:::0;;-1:-1:-1;;;;;;5319:22:0::1;-1:-1:-1::0;;;;;5319:22:0;;;::::1;::::0;;;::::1;::::0;;5352:10:::1;:17:::0;;-1:-1:-1;;5352:17:0::1;-1:-1:-1::0;5352:17:0::1;::::0;;5215:162::o;2560:212::-;1837:9;;-1:-1:-1;;;;;1837:9:0;235:10;2164:26;2156:74;;;;-1:-1:-1;;;2156:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2660:25:0;::::1;2652:76;;;;-1:-1:-1::0;;;2652:76:0::1;;;;;;;:::i;:::-;2739:25;2752:11;2739:12;:25::i;:::-;2560:212:::0;:::o;7719:1450::-;645:19;:17;:19::i;:::-;7795:10:::1;7787:33;;;::::0;::::1;;7848:1;7839:6;:10;7831:54;;;::::0;-1:-1:-1;;;7831:54:0;;2828:2:1;7831:54:0::1;::::0;::::1;2810:21:1::0;2867:2;2847:18;;;2840:30;2906:33;2886:18;;;2879:61;2957:18;;7831:54:0::1;2626:355:1::0;7831:54:0::1;7920:10;7904:27;::::0;;;:15:::1;:27;::::0;;;;;:37;-1:-1:-1;7904:37:0::1;7896:67;;;;-1:-1:-1::0;;;7896:67:0::1;;;;;;;:::i;:::-;8033:10;7976:20;8017:27:::0;;;:15:::1;:27;::::0;;;;;7999:45:::1;::::0;:15:::1;:45;:::i;:::-;7976:68;;8074:22;;8059:12;:37;8055:878;;;8166:17;8213:3;8196:13;;8187:6;:22;;;;:::i;:::-;8186:30;;;;:::i;:::-;8166:50:::0;-1:-1:-1;8231:17:0::1;8251:18;8166:50:::0;8251:6;:18:::1;:::i;:::-;8302:10;8286:27;::::0;;;:15:::1;:27;::::0;;;;:37;;8231:38;;-1:-1:-1;8317:6:0;;8286:27;;;:37:::1;::::0;8317:6;;8286:37:::1;:::i;:::-;;;;;;;;8353:6;8338:11;;:21;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;8456:5:0::1;::::0;:37:::1;::::0;-1:-1:-1;;;8456:37:0;;8471:10:::1;8456:37;::::0;::::1;4166:51:1::0;4233:18;;;4226:34;;;-1:-1:-1;;;;;8456:5:0;;::::1;::::0;:14:::1;::::0;4139:18:1;;8456:37:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;8575:5:0::1;::::0;:78:::1;::::0;-1:-1:-1;;;8575:78:0;;8598:42:::1;8575:78;::::0;::::1;4166:51:1::0;4233:18;;;4226:34;;;-1:-1:-1;;;;;8575:5:0;;::::1;::::0;:14:::1;::::0;4139:18:1;;8575:78:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8098:567;;8055:878;;;8751:10;8735:27;::::0;;;:15:::1;:27;::::0;;;;:37;;8766:6;;8735:27;:37:::1;::::0;8766:6;;8735:37:::1;:::i;:::-;;;;;;;;8802:6;8787:11;;:21;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;8887:5:0::1;::::0;:34:::1;::::0;-1:-1:-1;;;8887:34:0;;8902:10:::1;8887:34;::::0;::::1;4166:51:1::0;4233:18;;;4226:34;;;-1:-1:-1;;;;;8887:5:0;;::::1;::::0;:14:::1;::::0;4139:18:1;;8887:34:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8055:878;8960:10;8945:26;::::0;;;:14:::1;:26;::::0;;;;;;;8974:15:::1;8945:44:::0;;9019:15:::1;:27:::0;;;;;;:32;9062:55;::::1;;;9094:11;9241:10:::0;9255:5;9227:25;;;:13;:25;;;;;;;;:33;;-1:-1:-1;;9227:33:0;;;9275:7;:19;;;;;:23;;;9313:16;:28;;;;;:32;;;9360:16;:28;;;;;:32;;;9407:11;:23;;;;;:27;;;9449:15;:27;;;;;:31;;;9495:15;:27;;;;;:31;9183:351;9094:11:::1;9134:27;::::0;529:25:1;;;9134:27:0::1;::::0;517:2:1;502:18;9134:27:0::1;;;;;;;7776:1393;;7719:1450:::0;:::o;12499:111::-;12562:7;12589:13;12594:7;12589:4;:13::i;:::-;12582:20;12499:111;-1:-1:-1;;12499:111:0:o;5960:144::-;1908:7;1935:6;-1:-1:-1;;;;;1935:6:0;;;;;235:10;1997:23;;:53;;-1:-1:-1;1837:9:0;;-1:-1:-1;;;;;1837:9:0;235:10;2024:26;1997:53;1989:98;;;;-1:-1:-1;;;1989:98:0;;;;;;;:::i;:::-;6025:13:::1;::::0;::::1;;6024:14;6016:49;;;::::0;-1:-1:-1;;;6016:49:0;;5084:2:1;6016:49:0::1;::::0;::::1;5066:21:1::0;5123:2;5103:18;;;5096:30;5162:25;5142:18;;;5135:53;5205:18;;6016:49:0::1;4882:347:1::0;6016:49:0::1;6076:13;:20:::0;;-1:-1:-1;;6076:20:0::1;6092:4;6076:20;::::0;;5960:144::o;2258:94::-;1908:7;1935:6;-1:-1:-1;;;;;1935:6:0;;;;;235:10;1997:23;;:53;;-1:-1:-1;1837:9:0;;-1:-1:-1;;;;;1837:9:0;235:10;2024:26;1997:53;1989:98;;;;-1:-1:-1;;;1989:98:0;;;;;;;:::i;:::-;2323:21:::1;2341:1;2323:9;:21::i;:::-;2258:94::o:0;5596:356::-;1908:7;1935:6;-1:-1:-1;;;;;1935:6:0;;;;;235:10;1997:23;;:53;;-1:-1:-1;1837:9:0;;-1:-1:-1;;;;;1837:9:0;235:10;2024:26;1997:53;1989:98;;;;-1:-1:-1;;;1989:98:0;;;;;;;:::i;:::-;5701:5:::1;::::0;:27:::1;::::0;-1:-1:-1;;;5701:27:0;;5717:10:::1;5701:27;::::0;::::1;1088:51:1::0;5679:19:0::1;::::0;-1:-1:-1;;;;;5701:5:0::1;::::0;:15:::1;::::0;1061:18:1;;5701:27:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5679:49;;5766:6;5751:11;:21;;5743:50;;;;-1:-1:-1::0;;;5743:50:0::1;;;;;;;:::i;:::-;5808:5;::::0;:53:::1;::::0;-1:-1:-1;;;5808:53:0;;5827:10:::1;5808:53;::::0;::::1;5663:34:1::0;5847:4:0::1;5713:18:1::0;;;5706:43;5765:18;;;5758:34;;;-1:-1:-1;;;;;5808:5:0;;::::1;::::0;:18:::1;::::0;5598::1;;5808:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5938:6;5910:24;;:34;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;5596:356:0:o;5469:119::-;1908:7;1935:6;-1:-1:-1;;;;;1935:6:0;;;;;235:10;1997:23;;:53;;-1:-1:-1;1837:9:0;;-1:-1:-1;;;;;1837:9:0;235:10;2024:26;1997:53;1989:98;;;;-1:-1:-1;;;1989:98:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5552:20:0;;;::::1;;::::0;;;:12:::1;:20;::::0;;;;:28;;-1:-1:-1;;5552:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;5469:119::o;7017:549::-;645:19;:17;:19::i;:::-;7090:10:::1;7082:33;;;::::0;::::1;;7134:13;::::0;::::1;;7126:49;;;::::0;-1:-1:-1;;;7126:49:0;;6135:2:1;7126:49:0::1;::::0;::::1;6117:21:1::0;6174:2;6154:18;;;6147:30;6213:26;6193:18;;;6186:54;6257:18;;7126:49:0::1;5933:348:1::0;7126:49:0::1;7221:10;7188:16;7207:25:::0;;;:13:::1;:25;::::0;;;;;::::1;;:33;;:25:::0;:33:::1;7251:188:::0;::::1;;;7321:10;7305:27;::::0;;;:15:::1;:27;::::0;;;;;:34:::1;::::0;7335:4:::1;::::0;7305:34:::1;:::i;:::-;7285:16;7290:10;7285:4;:16::i;:::-;:54;7282:128;;7343:64;::::0;-1:-1:-1;;;7343:64:0;;6488:2:1;7343:64:0::1;::::0;::::1;6470:21:1::0;6527:2;6507:18;;;6500:30;6566:34;6546:18;;;6539:62;-1:-1:-1;;;6617:18:1;;;6610:52;6679:19;;7343:64:0::1;6286:418:1::0;7282:128:0::1;7451:20;7464:6;7451:12;:20::i;:::-;7498:10;7482:27;::::0;;;:15:::1;:27;::::0;;;;;;7512:15:::1;7482:45:::0;;7541:15;::::1;::::0;::::1;::::0;7549:6;529:25:1;;517:2;502:18;;383:177;7541:15:0::1;;;;;;;;7071:495;7017:549:::0;:::o;10290:676::-;645:19;:17;:19::i;:::-;10353:10:::1;10345:33;;;::::0;::::1;;10389:18;:16;:18::i;:::-;10418:8;:6;:8::i;:::-;10455:10;10469:1;10447:19:::0;;;:7:::1;:19;::::0;;;;;10439:69:::1;;;::::0;-1:-1:-1;;;10439:69:0;;6911:2:1;10439:69:0::1;::::0;::::1;6893:21:1::0;6950:2;6930:18;;;6923:30;6989:34;6969:18;;;6962:62;-1:-1:-1;;;7040:18:1;;;7033:31;7081:19;;10439:69:0::1;6709:397:1::0;10439:69:0::1;10551:10;10521:19;10543::::0;;;:7:::1;:19;::::0;;;;;;;10584:5:::1;::::0;:39;;-1:-1:-1;;;10584:39:0;;::::1;::::0;::::1;4166:51:1::0;;;;4233:18;;;4226:34;;;10543:19:0;-1:-1:-1;;;;;10584:5:0;;::::1;::::0;:14:::1;::::0;4139:18:1;;10584:39:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10651:10:0::1;10634:28;::::0;;;:16:::1;:28;::::0;;;;:43;;10666:11;;10634:28;:43:::1;::::0;10666:11;;10634:43:::1;:::i;:::-;::::0;;;-1:-1:-1;;10705:10:0::1;10688:28;::::0;;;:16:::1;:28;::::0;;;;10719:15:::1;10688:46:::0;;10753:24:::1;::::0;:38;-1:-1:-1;10745:120:0::1;;;::::0;-1:-1:-1;;;10745:120:0;;7313:2:1;10745:120:0::1;::::0;::::1;7295:21:1::0;7352:2;7332:18;;;7325:30;7391:34;7371:18;;;7364:62;7462:34;7442:18;;;7435:62;-1:-1:-1;;;7513:19:1;;;7506:37;7560:19;;10745:120:0::1;7111:474:1::0;10745:120:0::1;10904:11;10876:24;;:39;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;10933:25:0::1;::::0;529::1;;;10933::0::1;::::0;517:2:1;502:18;10933:25:0::1;;;;;;;10334:632;10290:676::o:0;6116:331::-;1837:9;;-1:-1:-1;;;;;1837:9:0;235:10;2164:26;2156:74;;;;-1:-1:-1;;;2156:74:0;;;;;;;:::i;:::-;6194:5:::1;::::0;:30:::1;::::0;-1:-1:-1;;;6194:30:0;;6218:4:::1;6194:30;::::0;::::1;1088:51:1::0;6172:19:0::1;::::0;-1:-1:-1;;;;;6194:5:0::1;::::0;:15:::1;::::0;1061:18:1;;6194:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6172:52:::0;-1:-1:-1;6238:15:0;;6235:86:::1;;6270:5;::::0;:39:::1;::::0;-1:-1:-1;;;6270:39:0;;6285:10:::1;6270:39;::::0;::::1;4166:51:1::0;4233:18;;;4226:34;;;-1:-1:-1;;;;;6270:5:0;;::::1;::::0;:14:::1;::::0;4139:18:1;;6270:39:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6235:86;6348:1;6331:14;:18:::0;;;6360:24:::1;:28:::0;6399:13:::1;:21:::0;;-1:-1:-1;;6399:21:0::1;::::0;;6431:8:::1;:6;:8::i;2360:192::-:0;1908:7;1935:6;-1:-1:-1;;;;;1935:6:0;;;;;235:10;1997:23;;:53;;-1:-1:-1;1837:9:0;;-1:-1:-1;;;;;1837:9:0;235:10;2024:26;1997:53;1989:98;;;;-1:-1:-1;;;1989:98:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2449:22:0;::::1;2441:73;;;;-1:-1:-1::0;;;2441:73:0::1;;;;;;;:::i;:::-;2525:19;2535:8;2525:9;:19::i;5385:76::-:0;1837:9;;-1:-1:-1;;;;;1837:9:0;235:10;2164:26;2156:74;;;;-1:-1:-1;;;2156:74:0;;;;;;;:::i;:::-;5443:10:::1;:8;:10::i;2961:196::-:0;3045:9;;;-1:-1:-1;;;;;3065:23:0;;;-1:-1:-1;;;;;;3065:23:0;;;;;;;3104:45;;3045:9;;;3065:23;3045:9;;3104:45;;3023:19;;3104:45;3012:145;2961:196;:::o;863:108::-;816:4;840:7;;;933:9;925:38;;;;-1:-1:-1;;;925:38:0;;7792:2:1;925:38:0;;;7774:21:1;7831:2;7811:18;;;7804:30;-1:-1:-1;;;7850:18:1;;;7843:46;7906:18;;925:38:0;7590:340:1;11725:411:0;11778:7;11798:25;11843:5;11826:14;;:22;;;;:::i;:::-;-1:-1:-1;;;;;11907:20:0;;11850:16;11907:20;;;:11;:20;;;;;;11798:50;;-1:-1:-1;11850:16:0;11798:50;;11889:38;;:15;:38;:::i;:::-;11888:60;;;;:::i;:::-;-1:-1:-1;;;;;12002:24:0;;11959:18;12002:24;;;:15;:24;;;;;;11850:98;;-1:-1:-1;11959:18:0;12002:35;;11850:98;;12002:35;:::i;:::-;11988:50;;12062:34;12076:7;12085:10;12062:13;:34::i;:::-;12049:47;11725:411;-1:-1:-1;;;;;11725:411:0:o;2780:173::-;2836:16;2855:6;;-1:-1:-1;;;;;2872:17:0;;;2855:6;2872:17;;;-1:-1:-1;;;;;;2872:17:0;;;;;2905:40;;2855:6;;;;;;;2872:17;;2855:6;;2905:40;;;2825:128;2780:173;:::o;6455:554::-;6534:5;;:27;;-1:-1:-1;;;6534:27:0;;6550:10;6534:27;;;1088:51:1;6512:19:0;;-1:-1:-1;;;;;6534:5:0;;:15;;1061:18:1;;6534:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6580:13;;6512:49;;-1:-1:-1;6580:13:0;;6572:44;;;;-1:-1:-1;;;6572:44:0;;8137:2:1;6572:44:0;;;8119:21:1;8176:2;8156:18;;;8149:30;-1:-1:-1;;;8195:18:1;;;8188:49;8254:18;;6572:44:0;7935:343:1;6572:44:0;6650:6;6635:11;:21;;6627:50;;;;-1:-1:-1;;;6627:50:0;;;;;;;:::i;:::-;6688:5;;:53;;-1:-1:-1;;;6688:53:0;;6707:10;6688:53;;;5663:34:1;6727:4:0;5713:18:1;;;5706:43;5765:18;;;5758:34;;;-1:-1:-1;;;;;6688:5:0;;;;:18;;5598::1;;6688:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6768:10:0;6752:27;;;;:15;:27;;;;;:37;;6783:6;;6752:27;:37;;6783:6;;6752:37;:::i;:::-;;;;;;;;6815:6;6800:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;6844:10:0;6832:23;;;;:11;:23;;;;;;;;6858:15;6832:41;;6969:13;:25;;;;;:32;;-1:-1:-1;;6969:32:0;6997:4;6969:32;;;-1:-1:-1;;6455:554:0:o;9548:367::-;9596:25;9641:5;9624:14;;:22;;;;:::i;:::-;9707:10;9648:16;9695:23;;;:11;:23;;;;;;9596:50;;-1:-1:-1;9648:16:0;9596:50;;9677:41;;:15;:41;:::i;:::-;9676:63;;;;:::i;:::-;9789:10;9773:27;;;;:15;:27;;;;;;9648:91;;-1:-1:-1;9773:38:0;;9648:91;;9773:38;:::i;:::-;9758:10;9750:19;;;;:7;:19;;;;;:62;;;9845:46;;:13;:46::i;:::-;9831:10;9823:19;;;;:7;:19;;;;;:68;-1:-1:-1;;9548:367:0:o;10099:183::-;10176:10;10143:16;10162:25;;;:13;:25;;;;;;;;:33;;:25;:33;;10206:67;;10255:6;:4;:6::i;1095:118::-;645:19;:17;:19::i;:::-;1155:7:::1;:14:::0;;-1:-1:-1;;1155:14:0::1;1165:4;1155:14;::::0;;1185:20:::1;1192:12;235:10:::0;;147:107;1192:12:::1;1185:20;::::0;-1:-1:-1;;;;;1106:32:1;;;1088:51;;1076:2;1061:18;1185:20:0::1;;;;;;;1095:118::o:0;1221:120::-;725:16;:14;:16::i;:::-;1290:5:::1;1280:15:::0;;-1:-1:-1;;1280:15:0::1;::::0;;1311:22:::1;235:10:::0;1320:12:::1;147:107:::0;12144:346;-1:-1:-1;;;;;12296:25:0;;12217:7;12296:25;;;:16;:25;;;;;;12217:7;;12289:3;12268:16;12272:12;12268:1;:16;:::i;:::-;12266:26;;;;:::i;:::-;:55;12263:195;;-1:-1:-1;;;;;12377:25:0;;;;;;:16;:25;;;;;;12371:3;12350:16;12354:12;12350:1;:16;:::i;:::-;12348:26;;;;:::i;:::-;:54;;;;:::i;:::-;12338:64;;12263:195;;;-1:-1:-1;12445:1:0;12263:195;12475:7;12144:346;-1:-1:-1;;;12144:346:0:o;9927:164::-;645:19;:17;:19::i;:::-;10038:11:::1;::::0;10024:10:::1;10007:28;::::0;;;:16:::1;:28;::::0;;;;;:42:::1;::::0;10038:11;10007:42:::1;:::i;:::-;9989:15;:60;9981:102;;;::::0;-1:-1:-1;;;9981:102:0;;8701:2:1;9981:102:0::1;::::0;::::1;8683:21:1::0;8740:2;8720:18;;;8713:30;8779:31;8759:18;;;8752:59;8828:18;;9981:102:0::1;8499:353:1::0;979:108:0;816:4;840:7;;;1038:41;;;;-1:-1:-1;;;1038:41:0;;9059:2:1;1038:41:0;;;9041:21:1;9098:2;9078:18;;;9071:30;-1:-1:-1;;;9117:18:1;;;9110:50;9177:18;;1038:41:0;8857:344:1;14:173;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;565:180::-;624:6;677:2;665:9;656:7;652:23;648:32;645:52;;;693:1;690;683:12;645:52;-1:-1:-1;716:23:1;;565:180;-1:-1:-1;565:180:1:o;1150:118::-;1236:5;1229:13;1222:21;1215:5;1212:32;1202:60;;1258:1;1255;1248:12;1273:315;1338:6;1346;1399:2;1387:9;1378:7;1374:23;1370:32;1367:52;;;1415:1;1412;1405:12;1367:52;1438:29;1457:9;1438:29;:::i;:::-;1428:39;;1517:2;1506:9;1502:18;1489:32;1530:28;1552:5;1530:28;:::i;:::-;1577:5;1567:15;;;1273:315;;;;;:::o;1815:399::-;2017:2;1999:21;;;2056:2;2036:18;;;2029:30;2095:34;2090:2;2075:18;;2068:62;-1:-1:-1;;;2161:2:1;2146:18;;2139:33;2204:3;2189:19;;1815:399::o;2219:402::-;2421:2;2403:21;;;2460:2;2440:18;;;2433:30;2499:34;2494:2;2479:18;;2472:62;-1:-1:-1;;;2565:2:1;2550:18;;2543:36;2611:3;2596:19;;2219:402::o;2986:341::-;3188:2;3170:21;;;3227:2;3207:18;;;3200:30;-1:-1:-1;;;3261:2:1;3246:18;;3239:47;3318:2;3303:18;;2986:341::o;3332:127::-;3393:10;3388:3;3384:20;3381:1;3374:31;3424:4;3421:1;3414:15;3448:4;3445:1;3438:15;3464:128;3531:9;;;3552:11;;;3549:37;;;3566:18;;:::i;3597:168::-;3670:9;;;3701;;3718:15;;;3712:22;;3698:37;3688:71;;3739:18;;:::i;3770:217::-;3810:1;3836;3826:132;;3880:10;3875:3;3871:20;3868:1;3861:31;3915:4;3912:1;3905:15;3943:4;3940:1;3933:15;3826:132;-1:-1:-1;3972:9:1;;3770:217::o;4271:245::-;4338:6;4391:2;4379:9;4370:7;4366:23;4362:32;4359:52;;;4407:1;4404;4397:12;4359:52;4439:9;4433:16;4458:28;4480:5;4458:28;:::i;4521:356::-;4723:2;4705:21;;;4742:18;;;4735:30;4801:34;4796:2;4781:18;;4774:62;4868:2;4853:18;;4521:356::o;5234:184::-;5304:6;5357:2;5345:9;5336:7;5332:23;5328:32;5325:52;;;5373:1;5370;5363:12;5325:52;-1:-1:-1;5396:16:1;;5234:184;-1:-1:-1;5234:184:1:o;5803:125::-;5868:9;;;5889:10;;;5886:36;;;5902:18;;:::i
Swarm Source
ipfs://d4b42bc3f884f894048413ca5176b3560cf98a7bacc55474ef53cf278053c604
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.