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 541 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Rewards | 20937987 | 70 days ago | IN | 0 ETH | 0.00093965 | ||||
Un Stake | 20718545 | 101 days ago | IN | 0 ETH | 0.00024542 | ||||
Claim Rewards | 20685853 | 106 days ago | IN | 0 ETH | 0.00049434 | ||||
Stake | 20634300 | 113 days ago | IN | 0 ETH | 0.00120625 | ||||
Un Stake | 20629646 | 113 days ago | IN | 0 ETH | 0.00039415 | ||||
Claim Rewards | 20629218 | 113 days ago | IN | 0 ETH | 0.00016642 | ||||
Stake | 20574327 | 121 days ago | IN | 0 ETH | 0.00030204 | ||||
Un Stake | 20570742 | 122 days ago | IN | 0 ETH | 0.00043322 | ||||
Un Stake | 20480608 | 134 days ago | IN | 0 ETH | 0.00027444 | ||||
Un Stake | 20417170 | 143 days ago | IN | 0 ETH | 0.00022943 | ||||
Claim Rewards | 20410580 | 144 days ago | IN | 0 ETH | 0.00022221 | ||||
Un Stake | 20361319 | 151 days ago | IN | 0 ETH | 0.00063046 | ||||
Un Stake | 20361286 | 151 days ago | IN | 0 ETH | 0.00056891 | ||||
Claim Rewards | 20361283 | 151 days ago | IN | 0 ETH | 0.00075397 | ||||
Stake | 20353312 | 152 days ago | IN | 0 ETH | 0.0007009 | ||||
Un Stake | 20353281 | 152 days ago | IN | 0 ETH | 0.00058928 | ||||
Claim Rewards | 20353251 | 152 days ago | IN | 0 ETH | 0.0002181 | ||||
Un Stake | 20333899 | 155 days ago | IN | 0 ETH | 0.00158118 | ||||
Claim Rewards | 20333870 | 155 days ago | IN | 0 ETH | 0.00165643 | ||||
Stake | 20303477 | 159 days ago | IN | 0 ETH | 0.00126479 | ||||
Stake | 20303467 | 159 days ago | IN | 0 ETH | 0.00104001 | ||||
Un Stake | 20303455 | 159 days ago | IN | 0 ETH | 0.00038982 | ||||
Claim Rewards | 20303436 | 159 days ago | IN | 0 ETH | 0.00040409 | ||||
Stake | 20299140 | 160 days ago | IN | 0 ETH | 0.00054791 | ||||
Un Stake | 20299120 | 160 days ago | IN | 0 ETH | 0.00027595 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xaCFE3D5f...D6d4E2880 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
AQUAStaking
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-09 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; interface IERC20 { function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); } abstract contract Context { function _msgSender() internal view returns (address) { return msg.sender; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view returns (address) { return _owner; } function _checkOwner() private view { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() external onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) external onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); _status = _ENTERED; } function _nonReentrantAfter() private { _status = _NOT_ENTERED; } function _reentrancyGuardEntered() private view returns (bool) { return _status == _ENTERED; } } contract AQUAStaking is Ownable, ReentrancyGuard { struct PoolInfo { uint256 lockupDuration; uint256 returnPer; } struct OrderInfo { address beneficiary; uint256 amount; uint256 lockupDuration; uint256 returnPer; uint256 starttime; uint256 endtime; uint256 claimedReward; bool claimed; } uint256 private constant _1Year = 7 days ; uint256 private constant _days365 = 365 days; IERC20 public AQUA; IERC20 public sAQUA; bool private started = true; uint256 private latestOrderId = 0; uint256 public totalStakers; uint256 public totalStaked; uint256 public currentStaked; mapping(uint256 => PoolInfo) public pooldata; mapping(address => uint256) public balanceOf; mapping(address => uint256) public totalRewardEarn; mapping(uint256 => OrderInfo) public orders; mapping(address => uint256[]) private orderIds; mapping(address => mapping(uint256 => bool)) public hasStaked; mapping(uint256 => uint256) public stakeOnPool; mapping(uint256 => uint256) public rewardOnPool; mapping(uint256 => uint256) public stakersPlan; event Deposit( address indexed user, uint256 indexed lockupDuration, uint256 amount, uint256 returnPer ); event Withdraw( address indexed user, uint256 amount, uint256 reward, uint256 total ); event WithdrawAll(address indexed user, uint256 amount); event RewardClaimed(address indexed user, uint256 reward); constructor( address _aquaAddress, address _saquaAddress, uint256 _apy ) { AQUA = IERC20(_aquaAddress); sAQUA = IERC20(_saquaAddress); pooldata[1].lockupDuration = _1Year; pooldata[1].returnPer = _apy; } function stake(uint256 _amount, uint256 _lockupDuration) external { PoolInfo storage pool = pooldata[_lockupDuration]; require( pool.lockupDuration > 0, "AQUAStaking: asked pool does not exist" ); require(started, "AQUAStaking: staking not yet started"); require(_amount > 0, "AQUAStaking: stake amount must be non zero"); require( AQUA.transferFrom(_msgSender(), address(this), _amount), "AQUAStaking: AQUA transferFrom via deposit not succeeded" ); orders[++latestOrderId] = OrderInfo( _msgSender(), _amount, pool.lockupDuration, pool.returnPer, block.timestamp, block.timestamp + pool.lockupDuration, 0, false ); if (!hasStaked[msg.sender][_lockupDuration]) { stakersPlan[_lockupDuration] = stakersPlan[_lockupDuration] + 1; totalStakers = totalStakers + 1; } //updating staking status hasStaked[msg.sender][_lockupDuration] = true; stakeOnPool[_lockupDuration] = stakeOnPool[_lockupDuration] + _amount; totalStaked = totalStaked + _amount; currentStaked = currentStaked + _amount; balanceOf[_msgSender()] += _amount; orderIds[_msgSender()].push(latestOrderId); emit Deposit( _msgSender(), pool.lockupDuration, _amount, pool.returnPer ); } function unStake(uint256 orderId) external nonReentrant { require( orderId <= latestOrderId, "AQUAStaking: INVALID orderId, orderId greater than latestOrderId" ); OrderInfo storage orderInfo = orders[orderId]; require( _msgSender() == orderInfo.beneficiary, "AQUAStaking: caller is not the beneficiary" ); require(!orderInfo.claimed, "AQUAStaking: order already unstaked"); require( block.timestamp >= orderInfo.endtime, "AQUAStaking: stake locked until lock duration completion" ); uint256 total = orderInfo.amount; balanceOf[_msgSender()] -= orderInfo.amount; currentStaked = currentStaked - orderInfo.amount ; orderInfo.claimed = true; require( AQUA.transfer(address(_msgSender()), total), "AQUAStaking: AQUA transfer via withdraw not succeeded" ); emit Withdraw(_msgSender(), orderInfo.amount, total, total); } function claimRewards(uint256 orderId) external nonReentrant { require( orderId <= latestOrderId, "AQUAStaking: INVALID orderId, orderId greater than latestOrderId" ); OrderInfo storage orderInfo = orders[orderId]; require( _msgSender() == orderInfo.beneficiary, "AQUAStaking: caller is not the beneficiary" ); require(!orderInfo.claimed, "AQUAStaking: order already unstaked"); uint256 claimAvailable = pendingRewards(orderId); totalRewardEarn[_msgSender()] += claimAvailable; orderInfo.claimedReward += claimAvailable; require( sAQUA.transfer(address(_msgSender()), claimAvailable), "AQUAStaking: sAQUA transfer via claim rewards not succeeded" ); rewardOnPool[orderInfo.lockupDuration] = rewardOnPool[orderInfo.lockupDuration] + claimAvailable; emit RewardClaimed(address(_msgSender()), claimAvailable); } function pendingRewards(uint256 orderId) public view returns (uint256) { require( orderId <= latestOrderId, "AQUAStaking: INVALID orderId, orderId greater than latestOrderId" ); OrderInfo storage orderInfo = orders[orderId]; if (!orderInfo.claimed) { if (block.timestamp >= orderInfo.endtime) { uint256 APY = (orderInfo.amount * orderInfo.returnPer) / 100; uint256 reward = (APY * orderInfo.lockupDuration) / _days365; uint256 claimAvailable = reward - orderInfo.claimedReward; return claimAvailable; } else { uint256 stakeTime = block.timestamp - orderInfo.starttime; uint256 APY = (orderInfo.amount * orderInfo.returnPer) / 100; uint256 reward = (APY * stakeTime) / _days365; uint256 claimAvailableNow = reward - orderInfo.claimedReward; return claimAvailableNow; } } else { return 0; } } function setPlansApy(uint256 plan1Apy) external onlyOwner { pooldata[1].returnPer = plan1Apy; } function toggleStaking(bool _start) external onlyOwner returns (bool) { started = _start; return true; } function investorOrderIds(address investor) external view returns (uint256[] memory ids) { uint256[] memory arr = orderIds[investor]; return arr; } function withdrawERC20(address _token) external onlyOwner { IERC20 withdraw_token = IERC20(_token); uint256 balance = withdraw_token.balanceOf(address(this)); uint256 withdrawToken = balance - currentStaked ; require( withdraw_token.transfer(msg.sender, withdrawToken), "withdraw_token transfer failed" ); } function withdrawAllTokens() external nonReentrant { uint256[] storage userOrderIds = orderIds[_msgSender()]; uint256 totalStakedAmount; for (uint256 i = 0; i < userOrderIds.length; i++) { uint256 orderId = userOrderIds[i]; OrderInfo storage orderInfo = orders[orderId]; // Ensure order is not already unstaked require(!orderInfo.claimed, "AQUAStaking: order already unstaked"); totalStakedAmount += orderInfo.amount; // Mark order as claimed orderInfo.claimed = true; // Emit event for tokens withdrawn emit Withdraw(_msgSender(), orderInfo.amount, orderInfo.amount, orderInfo.amount); } // Transfer total staked amount back to user require( AQUA.transfer(_msgSender(), totalStakedAmount), "AQUAStaking: AQUA transfer via withdraw not succeeded" ); currentStaked = currentStaked - totalStakedAmount; balanceOf[_msgSender()] -= totalStakedAmount; // Emit event for successful withdrawal emit WithdrawAll(_msgSender(), totalStakedAmount); } function claimAllRemainingRewards() external nonReentrant { uint256[] storage userOrderIds = orderIds[_msgSender()]; uint256 totalRewards; for (uint256 i = 0; i < userOrderIds.length; i++) { uint256 orderId = userOrderIds[i]; OrderInfo storage orderInfo = orders[orderId]; // Ensure order is not already claimed require(!orderInfo.claimed, "AQUAStaking: order already claimed"); // Calculate and accumulate remaining rewards uint256 claimAvailable = pendingRewards(orderId); totalRewards += claimAvailable; orderInfo.claimedReward += claimAvailable; rewardOnPool[orderInfo.lockupDuration] += claimAvailable; // Emit event for reward claimed emit RewardClaimed(_msgSender(), claimAvailable); } // Transfer total rewards to user require( sAQUA.transfer(_msgSender(), totalRewards), "AQUAStaking: sAQUA transfer via claim rewards not succeeded" ); // Emit event for successful reward claim emit RewardClaimed(_msgSender(), totalRewards); } function viewTotalPendingRewards(address user) external view returns (uint256) { uint256[] storage userOrderIds = orderIds[user]; uint256 totalPendingRewards; for (uint256 i = 0; i < userOrderIds.length; i++) { uint256 orderId = userOrderIds[i]; totalPendingRewards += pendingRewards(orderId); } return totalPendingRewards; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_aquaAddress","type":"address"},{"internalType":"address","name":"_saquaAddress","type":"address"},{"internalType":"uint256","name":"_apy","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"lockupDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"returnPer","type":"uint256"}],"name":"Deposit","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":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"total","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WithdrawAll","type":"event"},{"inputs":[],"name":"AQUA","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimAllRemainingRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"hasStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"investorOrderIds","outputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"orders","outputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lockupDuration","type":"uint256"},{"internalType":"uint256","name":"returnPer","type":"uint256"},{"internalType":"uint256","name":"starttime","type":"uint256"},{"internalType":"uint256","name":"endtime","type":"uint256"},{"internalType":"uint256","name":"claimedReward","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pooldata","outputs":[{"internalType":"uint256","name":"lockupDuration","type":"uint256"},{"internalType":"uint256","name":"returnPer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardOnPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sAQUA","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"plan1Apy","type":"uint256"}],"name":"setPlansApy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_lockupDuration","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakeOnPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakersPlan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_start","type":"bool"}],"name":"toggleStaking","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalRewardEarn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"unStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"viewTotalPendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawAllTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80637b0472f0116100f9578063b9b2cf9611610097578063f2fde38b11610071578063f2fde38b146104d7578063f4f3b200146104f3578063fa1e15141461050f578063fce50f171461053f576101a9565b8063b9b2cf961461045b578063da4b2e7514610477578063e8becf02146104a7576101a9565b806386989038116100d357806386989038146103b85780638da5cb5b146103d6578063a85c38ef146103f4578063aa6049471461042b576101a9565b80637b0472f01461034e5780637dcb2abf1461036a578063817b1cd21461039a576101a9565b80635d3eea9111610166578063698059811161014057806369805981146102b457806370a08231146102e4578063715018a614610314578063799102a21461031e576101a9565b80635d3eea911461025c57806363fccba914610278578063695464e914610296576101a9565b80630962ef79146101ae5780631a6c5e7e146101ca5780631ec9d10f146101fa578063280da6fa146102045780632c26afae1461020e578063336a57f31461023e575b600080fd5b6101c860048036038101906101c3919061210c565b610570565b005b6101e460048036038101906101df919061210c565b6108ca565b6040516101f19190612148565b60405180910390f35b6102026108e2565b005b61020c610bea565b005b6102286004803603810190610223919061210c565b610f3d565b6040516102359190612148565b60405180910390f35b610246610f55565b60405161025391906121e2565b60405180910390f35b6102766004803603810190610271919061210c565b610f7b565b005b610280611300565b60405161028d91906121e2565b60405180910390f35b61029e611326565b6040516102ab9190612148565b60405180910390f35b6102ce60048036038101906102c99190612235565b61132c565b6040516102db9190612271565b60405180910390f35b6102fe60048036038101906102f991906122ca565b611359565b60405161030b9190612148565b60405180910390f35b61031c611371565b005b6103386004803603810190610333919061210c565b611385565b6040516103459190612148565b60405180910390f35b610368600480360381019061036391906122f7565b61139d565b005b610384600480360381019061037f919061210c565b61195b565b6040516103919190612148565b60405180910390f35b6103a2611ac4565b6040516103af9190612148565b60405180910390f35b6103c0611aca565b6040516103cd9190612148565b60405180910390f35b6103de611ad0565b6040516103eb9190612346565b60405180910390f35b61040e6004803603810190610409919061210c565b611af9565b604051610422989796959493929190612361565b60405180910390f35b610445600480360381019061044091906122ca565b611b6e565b604051610452919061249d565b60405180910390f35b6104756004803603810190610470919061210c565b611c0b565b005b610491600480360381019061048c91906124bf565b611c32565b60405161049e9190612271565b60405180910390f35b6104c160048036038101906104bc91906122ca565b611c61565b6040516104ce9190612148565b60405180910390f35b6104f160048036038101906104ec91906122ca565b611d10565b005b61050d600480360381019061050891906122ca565b611d93565b005b610529600480360381019061052491906122ca565b611ef3565b6040516105369190612148565b60405180910390f35b6105596004803603810190610554919061210c565b611f0b565b6040516105679291906124ff565b60405180910390f35b610578611f2f565b6004548111156105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b4906125ab565b60405180910390fd5b6000600b600083815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610617611f7e565b73ffffffffffffffffffffffffffffffffffffffff161461066d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106649061263d565b60405180910390fd5b8060070160009054906101000a900460ff16156106bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b6906126cf565b60405180910390fd5b60006106ca8361195b565b905080600a60006106d9611f7e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610722919061271e565b925050819055508082600601600082825461073d919061271e565b92505081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61078a611f7e565b836040518363ffffffff1660e01b81526004016107a8929190612752565b6020604051808303816000875af11580156107c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107eb9190612790565b61082a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108219061282f565b60405180910390fd5b80600f6000846002015481526020019081526020016000205461084d919061271e565b600f60008460020154815260200190815260200160002081905550610870611f7e565b73ffffffffffffffffffffffffffffffffffffffff167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f7241826040516108b59190612148565b60405180910390a250506108c7611f86565b50565b600f6020528060005260406000206000915090505481565b6108ea611f2f565b6000600c60006108f8611f7e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080600090505b8280549050811015610aa257600083828154811061095d5761095c61284f565b5b906000526020600020015490506000600b600083815260200190815260200160002090508060070160009054906101000a900460ff16156109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca906128f0565b60405180910390fd5b60006109de8361195b565b905080856109ec919061271e565b945080826006016000828254610a02919061271e565b9250508190555080600f6000846002015481526020019081526020016000206000828254610a30919061271e565b92505081905550610a3f611f7e565b73ffffffffffffffffffffffffffffffffffffffff167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f724182604051610a849190612148565b60405180910390a25050508080610a9a90612910565b91505061093c565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610ae9611f7e565b836040518363ffffffff1660e01b8152600401610b07929190612752565b6020604051808303816000875af1158015610b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4a9190612790565b610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b809061282f565b60405180910390fd5b610b91611f7e565b73ffffffffffffffffffffffffffffffffffffffff167f106f923f993c2149d49b4255ff723acafa1f2d94393f561d3eda32ae348f724182604051610bd69190612148565b60405180910390a25050610be8611f86565b565b610bf2611f2f565b6000600c6000610c00611f7e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080600090505b8280549050811015610d84576000838281548110610c6557610c6461284f565b5b906000526020600020015490506000600b600083815260200190815260200160002090508060070160009054906101000a900460ff1615610cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd2906126cf565b60405180910390fd5b806001015484610ceb919061271e565b935060018160070160006101000a81548160ff021916908315150217905550610d12611f7e565b73ffffffffffffffffffffffffffffffffffffffff167f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca94826001015483600101548460010154604051610d6793929190612958565b60405180910390a250508080610d7c90612910565b915050610c44565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610dcb611f7e565b836040518363ffffffff1660e01b8152600401610de9929190612752565b6020604051808303816000875af1158015610e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2c9190612790565b610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6290612a01565b60405180910390fd5b80600754610e799190612a21565b6007819055508060096000610e8c611f7e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ed59190612a21565b92505081905550610ee4611f7e565b73ffffffffffffffffffffffffffffffffffffffff167fd7a4aa9f3dca5f6606ac15d7e1850920201bbb02c38cd986793779f58ae0dfd382604051610f299190612148565b60405180910390a25050610f3b611f86565b565b60106020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f83611f2f565b600454811115610fc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbf906125ab565b60405180910390fd5b6000600b600083815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611022611f7e565b73ffffffffffffffffffffffffffffffffffffffff1614611078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106f9061263d565b60405180910390fd5b8060070160009054906101000a900460ff16156110ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c1906126cf565b60405180910390fd5b8060050154421015611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890612ac7565b60405180910390fd5b60008160010154905081600101546009600061112b611f7e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111749190612a21565b92505081905550816001015460075461118d9190612a21565b60078190555060018260070160006101000a81548160ff021916908315150217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6111f6611f7e565b836040518363ffffffff1660e01b8152600401611214929190612752565b6020604051808303816000875af1158015611233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112579190612790565b611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d90612a01565b60405180910390fd5b61129e611f7e565b73ffffffffffffffffffffffffffffffffffffffff167f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca94836001015483846040516112eb93929190612958565b60405180910390a250506112fd611f86565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6000611336611f8f565b81600360146101000a81548160ff02191690831515021790555060019050919050565b60096020528060005260406000206000915090505481565b611379611f8f565b611383600061200d565b565b600e6020528060005260406000206000915090505481565b600060086000838152602001908152602001600020905060008160000154116113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290612b59565b60405180910390fd5b600360149054906101000a900460ff1661144a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144190612beb565b60405180910390fd5b6000831161148d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148490612c7d565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd6114d3611f7e565b30866040518463ffffffff1660e01b81526004016114f393929190612c9d565b6020604051808303816000875af1158015611512573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115369190612790565b611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156c90612d46565b60405180910390fd5b604051806101000160405280611589611f7e565b73ffffffffffffffffffffffffffffffffffffffff16815260200184815260200182600001548152602001826001015481526020014281526020018260000154426115d4919061271e565b81526020016000815260200160001515815250600b60006004600081546115fa90612910565b919050819055815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff021916908315150217905550905050600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff166117635760016010600084815260200190815260200160002054611736919061271e565b6010600084815260200190815260200160002081905550600160055461175c919061271e565b6005819055505b6001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548160ff02191690831515021790555082600e6000848152602001908152602001600020546117eb919061271e565b600e60008481526020019081526020016000208190555082600654611810919061271e565b60068190555082600754611824919061271e565b6007819055508260096000611837611f7e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611880919061271e565b92505081905550600c6000611893611f7e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060045490806001815401808255809150506001900390600052602060002001600090919091909150558060000154611903611f7e565b73ffffffffffffffffffffffffffffffffffffffff167f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e85846001015460405161194e9291906124ff565b60405180910390a3505050565b60006004548211156119a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611999906125ab565b60405180910390fd5b6000600b600084815260200190815260200160002090508060070160009054906101000a900460ff16611ab95780600501544210611a415760006064826003015483600101546119f29190612d66565b6119fc9190612dd7565b905060006301e13380836002015483611a159190612d66565b611a1f9190612dd7565b90506000836006015482611a339190612a21565b905080945050505050611abf565b6000816004015442611a539190612a21565b90506000606483600301548460010154611a6d9190612d66565b611a779190612dd7565b905060006301e133808383611a8c9190612d66565b611a969190612dd7565b90506000846006015482611aaa9190612a21565b90508095505050505050611abf565b60009150505b919050565b60065481565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154908060050154908060060154908060070160009054906101000a900460ff16905088565b60606000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611bfb57602002820191906000526020600020905b815481526020019060010190808311611be7575b5050505050905080915050919050565b611c13611f8f565b8060086000600181526020019081526020016000206001018190555050565b600d6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600080600090505b8280549050811015611d05576000838281548110611cce57611ccd61284f565b5b90600052602060002001549050611ce48161195b565b83611cef919061271e565b9250508080611cfd90612910565b915050611cad565b508092505050919050565b611d18611f8f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7e90612e7a565b60405180910390fd5b611d908161200d565b50565b611d9b611f8f565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611ddb9190612346565b602060405180830381865afa158015611df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1c9190612eaf565b9050600060075482611e2e9190612a21565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611e6b929190612752565b6020604051808303816000875af1158015611e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eae9190612790565b611eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee490612f28565b60405180910390fd5b50505050565b600a6020528060005260406000206000915090505481565b60086020528060005260406000206000915090508060000154908060010154905082565b600260015403611f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6b90612f94565b60405180910390fd5b6002600181905550565b600033905090565b60018081905550565b611f97611f7e565b73ffffffffffffffffffffffffffffffffffffffff16611fb5611ad0565b73ffffffffffffffffffffffffffffffffffffffff161461200b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200290613000565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b6120e9816120d6565b81146120f457600080fd5b50565b600081359050612106816120e0565b92915050565b600060208284031215612122576121216120d1565b5b6000612130848285016120f7565b91505092915050565b612142816120d6565b82525050565b600060208201905061215d6000830184612139565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006121a86121a361219e84612163565b612183565b612163565b9050919050565b60006121ba8261218d565b9050919050565b60006121cc826121af565b9050919050565b6121dc816121c1565b82525050565b60006020820190506121f760008301846121d3565b92915050565b60008115159050919050565b612212816121fd565b811461221d57600080fd5b50565b60008135905061222f81612209565b92915050565b60006020828403121561224b5761224a6120d1565b5b600061225984828501612220565b91505092915050565b61226b816121fd565b82525050565b60006020820190506122866000830184612262565b92915050565b600061229782612163565b9050919050565b6122a78161228c565b81146122b257600080fd5b50565b6000813590506122c48161229e565b92915050565b6000602082840312156122e0576122df6120d1565b5b60006122ee848285016122b5565b91505092915050565b6000806040838503121561230e5761230d6120d1565b5b600061231c858286016120f7565b925050602061232d858286016120f7565b9150509250929050565b6123408161228c565b82525050565b600060208201905061235b6000830184612337565b92915050565b600061010082019050612377600083018b612337565b612384602083018a612139565b6123916040830189612139565b61239e6060830188612139565b6123ab6080830187612139565b6123b860a0830186612139565b6123c560c0830185612139565b6123d260e0830184612262565b9998505050505050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612414816120d6565b82525050565b6000612426838361240b565b60208301905092915050565b6000602082019050919050565b600061244a826123df565b61245481856123ea565b935061245f836123fb565b8060005b83811015612490578151612477888261241a565b975061248283612432565b925050600181019050612463565b5085935050505092915050565b600060208201905081810360008301526124b7818461243f565b905092915050565b600080604083850312156124d6576124d56120d1565b5b60006124e4858286016122b5565b92505060206124f5858286016120f7565b9150509250929050565b60006040820190506125146000830185612139565b6125216020830184612139565b9392505050565b600082825260208201905092915050565b7f415155415374616b696e673a20494e56414c4944206f7264657249642c206f7260008201527f64657249642067726561746572207468616e206c61746573744f726465724964602082015250565b6000612595604083612528565b91506125a082612539565b604082019050919050565b600060208201905081810360008301526125c481612588565b9050919050565b7f415155415374616b696e673a2063616c6c6572206973206e6f7420746865206260008201527f656e656669636961727900000000000000000000000000000000000000000000602082015250565b6000612627602a83612528565b9150612632826125cb565b604082019050919050565b600060208201905081810360008301526126568161261a565b9050919050565b7f415155415374616b696e673a206f7264657220616c726561647920756e73746160008201527f6b65640000000000000000000000000000000000000000000000000000000000602082015250565b60006126b9602383612528565b91506126c48261265d565b604082019050919050565b600060208201905081810360008301526126e8816126ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612729826120d6565b9150612734836120d6565b925082820190508082111561274c5761274b6126ef565b5b92915050565b60006040820190506127676000830185612337565b6127746020830184612139565b9392505050565b60008151905061278a81612209565b92915050565b6000602082840312156127a6576127a56120d1565b5b60006127b48482850161277b565b91505092915050565b7f415155415374616b696e673a207341515541207472616e73666572207669612060008201527f636c61696d2072657761726473206e6f74207375636365656465640000000000602082015250565b6000612819603b83612528565b9150612824826127bd565b604082019050919050565b600060208201905081810360008301526128488161280c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f415155415374616b696e673a206f7264657220616c726561647920636c61696d60008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b60006128da602283612528565b91506128e58261287e565b604082019050919050565b60006020820190508181036000830152612909816128cd565b9050919050565b600061291b826120d6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361294d5761294c6126ef565b5b600182019050919050565b600060608201905061296d6000830186612139565b61297a6020830185612139565b6129876040830184612139565b949350505050565b7f415155415374616b696e673a2041515541207472616e7366657220766961207760008201527f69746864726177206e6f74207375636365656465640000000000000000000000602082015250565b60006129eb603583612528565b91506129f68261298f565b604082019050919050565b60006020820190508181036000830152612a1a816129de565b9050919050565b6000612a2c826120d6565b9150612a37836120d6565b9250828203905081811115612a4f57612a4e6126ef565b5b92915050565b7f415155415374616b696e673a207374616b65206c6f636b656420756e74696c2060008201527f6c6f636b206475726174696f6e20636f6d706c6574696f6e0000000000000000602082015250565b6000612ab1603883612528565b9150612abc82612a55565b604082019050919050565b60006020820190508181036000830152612ae081612aa4565b9050919050565b7f415155415374616b696e673a2061736b656420706f6f6c20646f6573206e6f7460008201527f2065786973740000000000000000000000000000000000000000000000000000602082015250565b6000612b43602683612528565b9150612b4e82612ae7565b604082019050919050565b60006020820190508181036000830152612b7281612b36565b9050919050565b7f415155415374616b696e673a207374616b696e67206e6f74207965742073746160008201527f7274656400000000000000000000000000000000000000000000000000000000602082015250565b6000612bd5602483612528565b9150612be082612b79565b604082019050919050565b60006020820190508181036000830152612c0481612bc8565b9050919050565b7f415155415374616b696e673a207374616b6520616d6f756e74206d757374206260008201527f65206e6f6e207a65726f00000000000000000000000000000000000000000000602082015250565b6000612c67602a83612528565b9150612c7282612c0b565b604082019050919050565b60006020820190508181036000830152612c9681612c5a565b9050919050565b6000606082019050612cb26000830186612337565b612cbf6020830185612337565b612ccc6040830184612139565b949350505050565b7f415155415374616b696e673a2041515541207472616e7366657246726f6d207660008201527f6961206465706f736974206e6f74207375636365656465640000000000000000602082015250565b6000612d30603883612528565b9150612d3b82612cd4565b604082019050919050565b60006020820190508181036000830152612d5f81612d23565b9050919050565b6000612d71826120d6565b9150612d7c836120d6565b9250828202612d8a816120d6565b91508282048414831517612da157612da06126ef565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612de2826120d6565b9150612ded836120d6565b925082612dfd57612dfc612da8565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e64602683612528565b9150612e6f82612e08565b604082019050919050565b60006020820190508181036000830152612e9381612e57565b9050919050565b600081519050612ea9816120e0565b92915050565b600060208284031215612ec557612ec46120d1565b5b6000612ed384828501612e9a565b91505092915050565b7f77697468647261775f746f6b656e207472616e73666572206661696c65640000600082015250565b6000612f12601e83612528565b9150612f1d82612edc565b602082019050919050565b60006020820190508181036000830152612f4181612f05565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612f7e601f83612528565b9150612f8982612f48565b602082019050919050565b60006020820190508181036000830152612fad81612f71565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fea602083612528565b9150612ff582612fb4565b602082019050919050565b6000602082019050818103600083015261301981612fdd565b905091905056fea26469706673582212206e11328c02599b01311e5bb6ebf8d7501139ebc78192763343a63d61c686d59f64736f6c63430008130033
Deployed Bytecode Sourcemap
2330:10204:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6902:1042;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3449:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11039:1111;;;:::i;:::-;;9896:1137;;;:::i;:::-;;3503:46;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2860:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5832:1062;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2835:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3029:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9159:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3117:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1089:97;;;:::i;:::-;;3396:46;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4255:1569;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7952:1082;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2996:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2962:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;871:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3225:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;9294:202;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9042:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3328:61;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12154:373;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1194:232;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9504:383;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3168:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3066:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6902:1042;1888:21;:19;:21::i;:::-;7007:13:::1;;6996:7;:24;;6974:138;;;;;;;;;;;;:::i;:::-;;;;;;;;;7125:27;7155:6;:15;7162:7;7155:15;;;;;;;;;;;7125:45;;7219:9;:21;;;;;;;;;;;;7203:37;;:12;:10;:12::i;:::-;:37;;;7181:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7330:9;:17;;;;;;;;;;;;7329:18;7321:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;7400:22;7425:23;7440:7;7425:14;:23::i;:::-;7400:48;;7492:14;7459:15;:29;7475:12;:10;:12::i;:::-;7459:29;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;7546:14;7519:9;:23;;;:41;;;;;;;:::i;:::-;;;;;;;;7595:5;;;;;;;;;;;:14;;;7618:12;:10;:12::i;:::-;7633:14;7595:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7573:162;;;;;;;;;;;;:::i;:::-;;;;;;;;;7854:14;7800:12;:38;7813:9;:24;;;7800:38;;;;;;;;;;;;:68;;;;:::i;:::-;7746:12;:38;7759:9;:24;;;7746:38;;;;;;;;;;;:122;;;;7906:12;:10;:12::i;:::-;7884:52;;;7921:14;7884:52;;;;;;:::i;:::-;;;;;;;;6963:981;;1932:20:::0;:18;:20::i;:::-;6902:1042;:::o;3449:47::-;;;;;;;;;;;;;;;;;:::o;11039:1111::-;1888:21;:19;:21::i;:::-;11104:30:::1;11137:8;:22;11146:12;:10;:12::i;:::-;11137:22;;;;;;;;;;;;;;;11104:55;;11166:20;11200:9:::0;11212:1:::1;11200:13;;11195:663;11219:12;:19;;;;11215:1;:23;11195:663;;;11256:15;11274:12;11287:1;11274:15;;;;;;;;:::i;:::-;;;;;;;;;;11256:33;;11300:27;11330:6;:15;11337:7;11330:15;;;;;;;;;;;11300:45;;11415:9;:17;;;;;;;;;;;;11414:18;11406:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11539:22;11564:23;11579:7;11564:14;:23::i;:::-;11539:48;;11614:14;11598:30;;;;;:::i;:::-;;;11666:14;11639:9;:23;;;:41;;;;;;;:::i;:::-;;;;;;;;11733:14;11691:12;:38;11704:9;:24;;;11691:38;;;;;;;;;;;;:56;;;;;;;:::i;:::-;;;;;;;;11821:12;:10;:12::i;:::-;11807:43;;;11835:14;11807:43;;;;;;:::i;:::-;;;;;;;;11245:613;;;11240:3;;;;;:::i;:::-;;;;11195:663;;;;11923:5;;;;;;;;;;;:14;;;11938:12;:10;:12::i;:::-;11952;11923:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11905:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;12119:12;:10;:12::i;:::-;12105:41;;;12133:12;12105:41;;;;;;:::i;:::-;;;;;;;;11097:1053;;1932:20:::0;:18;:20::i;:::-;11039:1111::o;9896:1137::-;1888:21;:19;:21::i;:::-;9954:30:::1;9987:8;:22;9996:12;:10;:12::i;:::-;9987:22;;;;;;;;;;;;;;;9954:55;;10016:25;10055:9:::0;10067:1:::1;10055:13;;10050:564;10074:12;:19;;;;10070:1;:23;10050:564;;;10111:15;10129:12;10142:1;10129:15;;;;;;;;:::i;:::-;;;;;;;;;;10111:33;;10155:27;10185:6;:15;10192:7;10185:15;;;;;;;;;;;10155:45;;10271:9;:17;;;;;;;;;;;;10270:18;10262:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10381:9;:16;;;10360:37;;;;;:::i;:::-;;;10464:4;10444:9;:17;;;:24;;;;;;;;;;;;;;;;;;10539:12;:10;:12::i;:::-;10530:76;;;10553:9;:16;;;10571:9;:16;;;10589:9;:16;;;10530:76;;;;;;;;:::i;:::-;;;;;;;;10100:514;;10095:3;;;;;:::i;:::-;;;;10050:564;;;;10698:4;;;;;;;;;;;:13;;;10712:12;:10;:12::i;:::-;10726:17;10698:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10680:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;10858:17;10842:13;;:33;;;;:::i;:::-;10826:13;:49;;;;10909:17;10882:9;:23;10892:12;:10;:12::i;:::-;10882:23;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;10997:12;:10;:12::i;:::-;10985:44;;;11011:17;10985:44;;;;;;:::i;:::-;;;;;;;;9947:1086;;1932:20:::0;:18;:20::i;:::-;9896:1137::o;3503:46::-;;;;;;;;;;;;;;;;;:::o;2860:19::-;;;;;;;;;;;;;:::o;5832:1062::-;1888:21;:19;:21::i;:::-;5932:13:::1;;5921:7;:24;;5899:138;;;;;;;;;;;;:::i;:::-;;;;;;;;;6050:27;6080:6;:15;6087:7;6080:15;;;;;;;;;;;6050:45;;6144:9;:21;;;;;;;;;;;;6128:37;;:12;:10;:12::i;:::-;:37;;;6106:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;6255:9;:17;;;;;;;;;;;;6254:18;6246:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6364:9;:17;;;6345:15;:36;;6323:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;6476:13;6492:9;:16;;;6476:32;;6546:9;:16;;;6519:9;:23;6529:12;:10;:12::i;:::-;6519:23;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;;;;;;;;6605:9;:16;;;6589:13;;:32;;;;:::i;:::-;6573:13;:48;;;;6653:4;6633:9;:17;;;:24;;;;;;;;;;;;;;;;;;6692:4;;;;;;;;;;;:13;;;6714:12;:10;:12::i;:::-;6729:5;6692:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6670:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;6841:12;:10;:12::i;:::-;6832:54;;;6855:9;:16;;;6873:5;6880;6832:54;;;;;;;;:::i;:::-;;;;;;;;5888:1006;;1932:20:::0;:18;:20::i;:::-;5832:1062;:::o;2835:18::-;;;;;;;;;;;;;:::o;3029:28::-;;;;:::o;9159:127::-;9223:4;830:13;:11;:13::i;:::-;9250:6:::1;9240:7;;:16;;;;;;;;;;;;;;;;;;9274:4;9267:11;;9159:127:::0;;;:::o;3117:44::-;;;;;;;;;;;;;;;;;:::o;1089:97::-;830:13;:11;:13::i;:::-;1148:30:::1;1175:1;1148:18;:30::i;:::-;1089:97::o:0;3396:46::-;;;;;;;;;;;;;;;;;:::o;4255:1569::-;4332:21;4356:8;:25;4365:15;4356:25;;;;;;;;;;;4332:49;;4436:1;4414:4;:19;;;:23;4392:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;4522:7;;;;;;;;;;;4514:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4599:1;4589:7;:11;4581:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;4680:4;;;;;;;;;;;:17;;;4698:12;:10;:12::i;:::-;4720:4;4727:7;4680:55;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4658:161;;;;;;;;;;;;:::i;:::-;;;;;;;;;4858:250;;;;;;;;4882:12;:10;:12::i;:::-;4858:250;;;;;;4909:7;4858:250;;;;4931:4;:19;;;4858:250;;;;4965:4;:14;;;4858:250;;;;4994:15;4858:250;;;;5042:4;:19;;;5024:15;:37;;;;:::i;:::-;4858:250;;;;5076:1;4858:250;;;;5092:5;4858:250;;;;;4832:6;:23;4841:13;;4839:15;;;;;:::i;:::-;;;;;;;4832:23;;;;;;;;;;;:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5126:9;:21;5136:10;5126:21;;;;;;;;;;;;;;;:38;5148:15;5126:38;;;;;;;;;;;;;;;;;;;;;5121:181;;5243:1;5212:11;:28;5224:15;5212:28;;;;;;;;;;;;:32;;;;:::i;:::-;5181:11;:28;5193:15;5181:28;;;;;;;;;;;:63;;;;5289:1;5274:12;;:16;;;;:::i;:::-;5259:12;:31;;;;5121:181;5392:4;5351:9;:21;5361:10;5351:21;;;;;;;;;;;;;;;:38;5373:15;5351:38;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;5469:7;5438:11;:28;5450:15;5438:28;;;;;;;;;;;;:38;;;;:::i;:::-;5407:11;:28;5419:15;5407:28;;;;;;;;;;;:69;;;;5515:7;5501:11;;:21;;;;:::i;:::-;5487:11;:35;;;;5565:7;5549:13;;:23;;;;:::i;:::-;5533:13;:39;;;;5610:7;5583:9;:23;5593:12;:10;:12::i;:::-;5583:23;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;5628:8;:22;5637:12;:10;:12::i;:::-;5628:22;;;;;;;;;;;;;;;5656:13;;5628:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5735:4;:19;;;5708:12;:10;:12::i;:::-;5686:130;;;5769:7;5791:4;:14;;;5686:130;;;;;;;:::i;:::-;;;;;;;;4321:1503;4255:1569;;:::o;7952:1082::-;8014:7;8067:13;;8056:7;:24;;8034:138;;;;;;;;;;;;:::i;:::-;;;;;;;;;8185:27;8215:6;:15;8222:7;8215:15;;;;;;;;;;;8185:45;;8246:9;:17;;;;;;;;;;;;8241:786;;8303:9;:17;;;8284:15;:36;8280:695;;8341:11;8398:3;8375:9;:19;;;8356:9;:16;;;:38;;;;:::i;:::-;8355:46;;;;:::i;:::-;8341:60;;8420:14;2819:8;8444:9;:24;;;8438:3;:30;;;;:::i;:::-;8437:43;;;;:::i;:::-;8420:60;;8499:22;8533:9;:23;;;8524:6;:32;;;;:::i;:::-;8499:57;;8582:14;8575:21;;;;;;;;8280:695;8637:17;8675:9;:19;;;8657:15;:37;;;;:::i;:::-;8637:57;;8713:11;8770:3;8747:9;:19;;;8728:9;:16;;;:38;;;;:::i;:::-;8727:46;;;;:::i;:::-;8713:60;;8792:14;2819:8;8816:9;8810:3;:15;;;;:::i;:::-;8809:28;;;;:::i;:::-;8792:45;;8856:25;8893:9;:23;;;8884:6;:32;;;;:::i;:::-;8856:60;;8942:17;8935:24;;;;;;;;;8241:786;9014:1;9007:8;;;7952:1082;;;;:::o;2996:26::-;;;;:::o;2962:27::-;;;;:::o;871:79::-;909:7;936:6;;;;;;;;;;;929:13;;871:79;:::o;3225:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9294:202::-;9388:20;9426;9449:8;:18;9458:8;9449:18;;;;;;;;;;;;;;;9426:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9485:3;9478:10;;;9294:202;;;:::o;9042:109::-;830:13;:11;:13::i;:::-;9135:8:::1;9111;:11;9120:1;9111:11;;;;;;;;;;;:21;;:32;;;;9042:109:::0;:::o;3328:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12154:373::-;12224:7;12240:30;12273:8;:14;12282:4;12273:14;;;;;;;;;;;;;;;12240:47;;12294:27;12335:9;12347:1;12335:13;;12330:159;12354:12;:19;;;;12350:1;:23;12330:159;;;12391:15;12409:12;12422:1;12409:15;;;;;;;;:::i;:::-;;;;;;;;;;12391:33;;12458:23;12473:7;12458:14;:23::i;:::-;12435:46;;;;;:::i;:::-;;;12380:109;12375:3;;;;;:::i;:::-;;;;12330:159;;;;12504:19;12497:26;;;;12154:373;;;:::o;1194:232::-;830:13;:11;:13::i;:::-;1311:1:::1;1291:22;;:8;:22;;::::0;1269:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1390:28;1409:8;1390:18;:28::i;:::-;1194:232:::0;:::o;9504:383::-;830:13;:11;:13::i;:::-;9573:21:::1;9604:6;9573:38;;9622:15;9640:14;:24;;;9673:4;9640:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9622:57;;9690:21;9724:13;;9714:7;:23;;;;:::i;:::-;9690:47;;9771:14;:23;;;9795:10;9807:13;9771:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9749:130;;;;;;;;;;;;:::i;:::-;;;;;;;;;9562:325;;;9504:383:::0;:::o;3168:50::-;;;;;;;;;;;;;;;;;:::o;3066:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1968:152::-;1748:1;2026:7;;:19;2018:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1748:1;2094:7;:18;;;;1968:152::o;436:90::-;481:7;508:10;501:17;;436:90;:::o;2128:79::-;1704:1;2177:7;:22;;;;2128:79::o;958:123::-;1024:12;:10;:12::i;:::-;1013:23;;:7;:5;:7::i;:::-;:23;;;1005:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;958:123::o;1434:182::-;1499:16;1518:6;;;;;;;;;;;1499:25;;1544:8;1535:6;;:17;;;;;;;;;;;;;;;;;;1599:8;1568:40;;1589:8;1568:40;;;;;;;;;;;;1488:128;1434:182;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:126::-;1414:7;1454:42;1447:5;1443:54;1432:65;;1377:126;;;:::o;1509:60::-;1537:3;1558:5;1551:12;;1509:60;;;:::o;1575:142::-;1625:9;1658:53;1676:34;1685:24;1703:5;1685:24;:::i;:::-;1676:34;:::i;:::-;1658:53;:::i;:::-;1645:66;;1575:142;;;:::o;1723:126::-;1773:9;1806:37;1837:5;1806:37;:::i;:::-;1793:50;;1723:126;;;:::o;1855:139::-;1918:9;1951:37;1982:5;1951:37;:::i;:::-;1938:50;;1855:139;;;:::o;2000:157::-;2100:50;2144:5;2100:50;:::i;:::-;2095:3;2088:63;2000:157;;:::o;2163:248::-;2269:4;2307:2;2296:9;2292:18;2284:26;;2320:84;2401:1;2390:9;2386:17;2377:6;2320:84;:::i;:::-;2163:248;;;;:::o;2417:90::-;2451:7;2494:5;2487:13;2480:21;2469:32;;2417:90;;;:::o;2513:116::-;2583:21;2598:5;2583:21;:::i;:::-;2576:5;2573:32;2563:60;;2619:1;2616;2609:12;2563:60;2513:116;:::o;2635:133::-;2678:5;2716:6;2703:20;2694:29;;2732:30;2756:5;2732:30;:::i;:::-;2635:133;;;;:::o;2774:323::-;2830:6;2879:2;2867:9;2858:7;2854:23;2850:32;2847:119;;;2885:79;;:::i;:::-;2847:119;3005:1;3030:50;3072:7;3063:6;3052:9;3048:22;3030:50;:::i;:::-;3020:60;;2976:114;2774:323;;;;:::o;3103:109::-;3184:21;3199:5;3184:21;:::i;:::-;3179:3;3172:34;3103:109;;:::o;3218:210::-;3305:4;3343:2;3332:9;3328:18;3320:26;;3356:65;3418:1;3407:9;3403:17;3394:6;3356:65;:::i;:::-;3218:210;;;;:::o;3434:96::-;3471:7;3500:24;3518:5;3500:24;:::i;:::-;3489:35;;3434:96;;;:::o;3536:122::-;3609:24;3627:5;3609:24;:::i;:::-;3602:5;3599:35;3589:63;;3648:1;3645;3638:12;3589:63;3536:122;:::o;3664:139::-;3710:5;3748:6;3735:20;3726:29;;3764:33;3791:5;3764:33;:::i;:::-;3664:139;;;;:::o;3809:329::-;3868:6;3917:2;3905:9;3896:7;3892:23;3888:32;3885:119;;;3923:79;;:::i;:::-;3885:119;4043:1;4068:53;4113:7;4104:6;4093:9;4089:22;4068:53;:::i;:::-;4058:63;;4014:117;3809:329;;;;:::o;4144:474::-;4212:6;4220;4269:2;4257:9;4248:7;4244:23;4240:32;4237:119;;;4275:79;;:::i;:::-;4237:119;4395:1;4420:53;4465:7;4456:6;4445:9;4441:22;4420:53;:::i;:::-;4410:63;;4366:117;4522:2;4548:53;4593:7;4584:6;4573:9;4569:22;4548:53;:::i;:::-;4538:63;;4493:118;4144:474;;;;;:::o;4624:118::-;4711:24;4729:5;4711:24;:::i;:::-;4706:3;4699:37;4624:118;;:::o;4748:222::-;4841:4;4879:2;4868:9;4864:18;4856:26;;4892:71;4960:1;4949:9;4945:17;4936:6;4892:71;:::i;:::-;4748:222;;;;:::o;4976:985::-;5259:4;5297:3;5286:9;5282:19;5274:27;;5311:71;5379:1;5368:9;5364:17;5355:6;5311:71;:::i;:::-;5392:72;5460:2;5449:9;5445:18;5436:6;5392:72;:::i;:::-;5474;5542:2;5531:9;5527:18;5518:6;5474:72;:::i;:::-;5556;5624:2;5613:9;5609:18;5600:6;5556:72;:::i;:::-;5638:73;5706:3;5695:9;5691:19;5682:6;5638:73;:::i;:::-;5721;5789:3;5778:9;5774:19;5765:6;5721:73;:::i;:::-;5804;5872:3;5861:9;5857:19;5848:6;5804:73;:::i;:::-;5887:67;5949:3;5938:9;5934:19;5925:6;5887:67;:::i;:::-;4976:985;;;;;;;;;;;:::o;5967:114::-;6034:6;6068:5;6062:12;6052:22;;5967:114;;;:::o;6087:184::-;6186:11;6220:6;6215:3;6208:19;6260:4;6255:3;6251:14;6236:29;;6087:184;;;;:::o;6277:132::-;6344:4;6367:3;6359:11;;6397:4;6392:3;6388:14;6380:22;;6277:132;;;:::o;6415:108::-;6492:24;6510:5;6492:24;:::i;:::-;6487:3;6480:37;6415:108;;:::o;6529:179::-;6598:10;6619:46;6661:3;6653:6;6619:46;:::i;:::-;6697:4;6692:3;6688:14;6674:28;;6529:179;;;;:::o;6714:113::-;6784:4;6816;6811:3;6807:14;6799:22;;6714:113;;;:::o;6863:732::-;6982:3;7011:54;7059:5;7011:54;:::i;:::-;7081:86;7160:6;7155:3;7081:86;:::i;:::-;7074:93;;7191:56;7241:5;7191:56;:::i;:::-;7270:7;7301:1;7286:284;7311:6;7308:1;7305:13;7286:284;;;7387:6;7381:13;7414:63;7473:3;7458:13;7414:63;:::i;:::-;7407:70;;7500:60;7553:6;7500:60;:::i;:::-;7490:70;;7346:224;7333:1;7330;7326:9;7321:14;;7286:284;;;7290:14;7586:3;7579:10;;6987:608;;;6863:732;;;;:::o;7601:373::-;7744:4;7782:2;7771:9;7767:18;7759:26;;7831:9;7825:4;7821:20;7817:1;7806:9;7802:17;7795:47;7859:108;7962:4;7953:6;7859:108;:::i;:::-;7851:116;;7601:373;;;;:::o;7980:474::-;8048:6;8056;8105:2;8093:9;8084:7;8080:23;8076:32;8073:119;;;8111:79;;:::i;:::-;8073:119;8231:1;8256:53;8301:7;8292:6;8281:9;8277:22;8256:53;:::i;:::-;8246:63;;8202:117;8358:2;8384:53;8429:7;8420:6;8409:9;8405:22;8384:53;:::i;:::-;8374:63;;8329:118;7980:474;;;;;:::o;8460:332::-;8581:4;8619:2;8608:9;8604:18;8596:26;;8632:71;8700:1;8689:9;8685:17;8676:6;8632:71;:::i;:::-;8713:72;8781:2;8770:9;8766:18;8757:6;8713:72;:::i;:::-;8460:332;;;;;:::o;8798:169::-;8882:11;8916:6;8911:3;8904:19;8956:4;8951:3;8947:14;8932:29;;8798:169;;;;:::o;8973:251::-;9113:34;9109:1;9101:6;9097:14;9090:58;9182:34;9177:2;9169:6;9165:15;9158:59;8973:251;:::o;9230:366::-;9372:3;9393:67;9457:2;9452:3;9393:67;:::i;:::-;9386:74;;9469:93;9558:3;9469:93;:::i;:::-;9587:2;9582:3;9578:12;9571:19;;9230:366;;;:::o;9602:419::-;9768:4;9806:2;9795:9;9791:18;9783:26;;9855:9;9849:4;9845:20;9841:1;9830:9;9826:17;9819:47;9883:131;10009:4;9883:131;:::i;:::-;9875:139;;9602:419;;;:::o;10027:229::-;10167:34;10163:1;10155:6;10151:14;10144:58;10236:12;10231:2;10223:6;10219:15;10212:37;10027:229;:::o;10262:366::-;10404:3;10425:67;10489:2;10484:3;10425:67;:::i;:::-;10418:74;;10501:93;10590:3;10501:93;:::i;:::-;10619:2;10614:3;10610:12;10603:19;;10262:366;;;:::o;10634:419::-;10800:4;10838:2;10827:9;10823:18;10815:26;;10887:9;10881:4;10877:20;10873:1;10862:9;10858:17;10851:47;10915:131;11041:4;10915:131;:::i;:::-;10907:139;;10634:419;;;:::o;11059:222::-;11199:34;11195:1;11187:6;11183:14;11176:58;11268:5;11263:2;11255:6;11251:15;11244:30;11059:222;:::o;11287:366::-;11429:3;11450:67;11514:2;11509:3;11450:67;:::i;:::-;11443:74;;11526:93;11615:3;11526:93;:::i;:::-;11644:2;11639:3;11635:12;11628:19;;11287:366;;;:::o;11659:419::-;11825:4;11863:2;11852:9;11848:18;11840:26;;11912:9;11906:4;11902:20;11898:1;11887:9;11883:17;11876:47;11940:131;12066:4;11940:131;:::i;:::-;11932:139;;11659:419;;;:::o;12084:180::-;12132:77;12129:1;12122:88;12229:4;12226:1;12219:15;12253:4;12250:1;12243:15;12270:191;12310:3;12329:20;12347:1;12329:20;:::i;:::-;12324:25;;12363:20;12381:1;12363:20;:::i;:::-;12358:25;;12406:1;12403;12399:9;12392:16;;12427:3;12424:1;12421:10;12418:36;;;12434:18;;:::i;:::-;12418:36;12270:191;;;;:::o;12467:332::-;12588:4;12626:2;12615:9;12611:18;12603:26;;12639:71;12707:1;12696:9;12692:17;12683:6;12639:71;:::i;:::-;12720:72;12788:2;12777:9;12773:18;12764:6;12720:72;:::i;:::-;12467:332;;;;;:::o;12805:137::-;12859:5;12890:6;12884:13;12875:22;;12906:30;12930:5;12906:30;:::i;:::-;12805:137;;;;:::o;12948:345::-;13015:6;13064:2;13052:9;13043:7;13039:23;13035:32;13032:119;;;13070:79;;:::i;:::-;13032:119;13190:1;13215:61;13268:7;13259:6;13248:9;13244:22;13215:61;:::i;:::-;13205:71;;13161:125;12948:345;;;;:::o;13299:246::-;13439:34;13435:1;13427:6;13423:14;13416:58;13508:29;13503:2;13495:6;13491:15;13484:54;13299:246;:::o;13551:366::-;13693:3;13714:67;13778:2;13773:3;13714:67;:::i;:::-;13707:74;;13790:93;13879:3;13790:93;:::i;:::-;13908:2;13903:3;13899:12;13892:19;;13551:366;;;:::o;13923:419::-;14089:4;14127:2;14116:9;14112:18;14104:26;;14176:9;14170:4;14166:20;14162:1;14151:9;14147:17;14140:47;14204:131;14330:4;14204:131;:::i;:::-;14196:139;;13923:419;;;:::o;14348:180::-;14396:77;14393:1;14386:88;14493:4;14490:1;14483:15;14517:4;14514:1;14507:15;14534:221;14674:34;14670:1;14662:6;14658:14;14651:58;14743:4;14738:2;14730:6;14726:15;14719:29;14534:221;:::o;14761:366::-;14903:3;14924:67;14988:2;14983:3;14924:67;:::i;:::-;14917:74;;15000:93;15089:3;15000:93;:::i;:::-;15118:2;15113:3;15109:12;15102:19;;14761:366;;;:::o;15133:419::-;15299:4;15337:2;15326:9;15322:18;15314:26;;15386:9;15380:4;15376:20;15372:1;15361:9;15357:17;15350:47;15414:131;15540:4;15414:131;:::i;:::-;15406:139;;15133:419;;;:::o;15558:233::-;15597:3;15620:24;15638:5;15620:24;:::i;:::-;15611:33;;15666:66;15659:5;15656:77;15653:103;;15736:18;;:::i;:::-;15653:103;15783:1;15776:5;15772:13;15765:20;;15558:233;;;:::o;15797:442::-;15946:4;15984:2;15973:9;15969:18;15961:26;;15997:71;16065:1;16054:9;16050:17;16041:6;15997:71;:::i;:::-;16078:72;16146:2;16135:9;16131:18;16122:6;16078:72;:::i;:::-;16160;16228:2;16217:9;16213:18;16204:6;16160:72;:::i;:::-;15797:442;;;;;;:::o;16245:240::-;16385:34;16381:1;16373:6;16369:14;16362:58;16454:23;16449:2;16441:6;16437:15;16430:48;16245:240;:::o;16491:366::-;16633:3;16654:67;16718:2;16713:3;16654:67;:::i;:::-;16647:74;;16730:93;16819:3;16730:93;:::i;:::-;16848:2;16843:3;16839:12;16832:19;;16491:366;;;:::o;16863:419::-;17029:4;17067:2;17056:9;17052:18;17044:26;;17116:9;17110:4;17106:20;17102:1;17091:9;17087:17;17080:47;17144:131;17270:4;17144:131;:::i;:::-;17136:139;;16863:419;;;:::o;17288:194::-;17328:4;17348:20;17366:1;17348:20;:::i;:::-;17343:25;;17382:20;17400:1;17382:20;:::i;:::-;17377:25;;17426:1;17423;17419:9;17411:17;;17450:1;17444:4;17441:11;17438:37;;;17455:18;;:::i;:::-;17438:37;17288:194;;;;:::o;17488:243::-;17628:34;17624:1;17616:6;17612:14;17605:58;17697:26;17692:2;17684:6;17680:15;17673:51;17488:243;:::o;17737:366::-;17879:3;17900:67;17964:2;17959:3;17900:67;:::i;:::-;17893:74;;17976:93;18065:3;17976:93;:::i;:::-;18094:2;18089:3;18085:12;18078:19;;17737:366;;;:::o;18109:419::-;18275:4;18313:2;18302:9;18298:18;18290:26;;18362:9;18356:4;18352:20;18348:1;18337:9;18333:17;18326:47;18390:131;18516:4;18390:131;:::i;:::-;18382:139;;18109:419;;;:::o;18534:225::-;18674:34;18670:1;18662:6;18658:14;18651:58;18743:8;18738:2;18730:6;18726:15;18719:33;18534:225;:::o;18765:366::-;18907:3;18928:67;18992:2;18987:3;18928:67;:::i;:::-;18921:74;;19004:93;19093:3;19004:93;:::i;:::-;19122:2;19117:3;19113:12;19106:19;;18765:366;;;:::o;19137:419::-;19303:4;19341:2;19330:9;19326:18;19318:26;;19390:9;19384:4;19380:20;19376:1;19365:9;19361:17;19354:47;19418:131;19544:4;19418:131;:::i;:::-;19410:139;;19137:419;;;:::o;19562:223::-;19702:34;19698:1;19690:6;19686:14;19679:58;19771:6;19766:2;19758:6;19754:15;19747:31;19562:223;:::o;19791:366::-;19933:3;19954:67;20018:2;20013:3;19954:67;:::i;:::-;19947:74;;20030:93;20119:3;20030:93;:::i;:::-;20148:2;20143:3;20139:12;20132:19;;19791:366;;;:::o;20163:419::-;20329:4;20367:2;20356:9;20352:18;20344:26;;20416:9;20410:4;20406:20;20402:1;20391:9;20387:17;20380:47;20444:131;20570:4;20444:131;:::i;:::-;20436:139;;20163:419;;;:::o;20588:229::-;20728:34;20724:1;20716:6;20712:14;20705:58;20797:12;20792:2;20784:6;20780:15;20773:37;20588:229;:::o;20823:366::-;20965:3;20986:67;21050:2;21045:3;20986:67;:::i;:::-;20979:74;;21062:93;21151:3;21062:93;:::i;:::-;21180:2;21175:3;21171:12;21164:19;;20823:366;;;:::o;21195:419::-;21361:4;21399:2;21388:9;21384:18;21376:26;;21448:9;21442:4;21438:20;21434:1;21423:9;21419:17;21412:47;21476:131;21602:4;21476:131;:::i;:::-;21468:139;;21195:419;;;:::o;21620:442::-;21769:4;21807:2;21796:9;21792:18;21784:26;;21820:71;21888:1;21877:9;21873:17;21864:6;21820:71;:::i;:::-;21901:72;21969:2;21958:9;21954:18;21945:6;21901:72;:::i;:::-;21983;22051:2;22040:9;22036:18;22027:6;21983:72;:::i;:::-;21620:442;;;;;;:::o;22068:243::-;22208:34;22204:1;22196:6;22192:14;22185:58;22277:26;22272:2;22264:6;22260:15;22253:51;22068:243;:::o;22317:366::-;22459:3;22480:67;22544:2;22539:3;22480:67;:::i;:::-;22473:74;;22556:93;22645:3;22556:93;:::i;:::-;22674:2;22669:3;22665:12;22658:19;;22317:366;;;:::o;22689:419::-;22855:4;22893:2;22882:9;22878:18;22870:26;;22942:9;22936:4;22932:20;22928:1;22917:9;22913:17;22906:47;22970:131;23096:4;22970:131;:::i;:::-;22962:139;;22689:419;;;:::o;23114:410::-;23154:7;23177:20;23195:1;23177:20;:::i;:::-;23172:25;;23211:20;23229:1;23211:20;:::i;:::-;23206:25;;23266:1;23263;23259:9;23288:30;23306:11;23288:30;:::i;:::-;23277:41;;23467:1;23458:7;23454:15;23451:1;23448:22;23428:1;23421:9;23401:83;23378:139;;23497:18;;:::i;:::-;23378:139;23162:362;23114:410;;;;:::o;23530:180::-;23578:77;23575:1;23568:88;23675:4;23672:1;23665:15;23699:4;23696:1;23689:15;23716:185;23756:1;23773:20;23791:1;23773:20;:::i;:::-;23768:25;;23807:20;23825:1;23807:20;:::i;:::-;23802:25;;23846:1;23836:35;;23851:18;;:::i;:::-;23836:35;23893:1;23890;23886:9;23881:14;;23716:185;;;;:::o;23907:225::-;24047:34;24043:1;24035:6;24031:14;24024:58;24116:8;24111:2;24103:6;24099:15;24092:33;23907:225;:::o;24138:366::-;24280:3;24301:67;24365:2;24360:3;24301:67;:::i;:::-;24294:74;;24377:93;24466:3;24377:93;:::i;:::-;24495:2;24490:3;24486:12;24479:19;;24138:366;;;:::o;24510:419::-;24676:4;24714:2;24703:9;24699:18;24691:26;;24763:9;24757:4;24753:20;24749:1;24738:9;24734:17;24727:47;24791:131;24917:4;24791:131;:::i;:::-;24783:139;;24510:419;;;:::o;24935:143::-;24992:5;25023:6;25017:13;25008:22;;25039:33;25066:5;25039:33;:::i;:::-;24935:143;;;;:::o;25084:351::-;25154:6;25203:2;25191:9;25182:7;25178:23;25174:32;25171:119;;;25209:79;;:::i;:::-;25171:119;25329:1;25354:64;25410:7;25401:6;25390:9;25386:22;25354:64;:::i;:::-;25344:74;;25300:128;25084:351;;;;:::o;25441:180::-;25581:32;25577:1;25569:6;25565:14;25558:56;25441:180;:::o;25627:366::-;25769:3;25790:67;25854:2;25849:3;25790:67;:::i;:::-;25783:74;;25866:93;25955:3;25866:93;:::i;:::-;25984:2;25979:3;25975:12;25968:19;;25627:366;;;:::o;25999:419::-;26165:4;26203:2;26192:9;26188:18;26180:26;;26252:9;26246:4;26242:20;26238:1;26227:9;26223:17;26216:47;26280:131;26406:4;26280:131;:::i;:::-;26272:139;;25999:419;;;:::o;26424:181::-;26564:33;26560:1;26552:6;26548:14;26541:57;26424:181;:::o;26611:366::-;26753:3;26774:67;26838:2;26833:3;26774:67;:::i;:::-;26767:74;;26850:93;26939:3;26850:93;:::i;:::-;26968:2;26963:3;26959:12;26952:19;;26611:366;;;:::o;26983:419::-;27149:4;27187:2;27176:9;27172:18;27164:26;;27236:9;27230:4;27226:20;27222:1;27211:9;27207:17;27200:47;27264:131;27390:4;27264:131;:::i;:::-;27256:139;;26983:419;;;:::o;27408:182::-;27548:34;27544:1;27536:6;27532:14;27525:58;27408:182;:::o;27596:366::-;27738:3;27759:67;27823:2;27818:3;27759:67;:::i;:::-;27752:74;;27835:93;27924:3;27835:93;:::i;:::-;27953:2;27948:3;27944:12;27937:19;;27596:366;;;:::o;27968:419::-;28134:4;28172:2;28161:9;28157:18;28149:26;;28221:9;28215:4;28211:20;28207:1;28196:9;28192:17;28185:47;28249:131;28375:4;28249:131;:::i;:::-;28241:139;;27968:419;;;:::o
Swarm Source
ipfs://6e11328c02599b01311e5bb6ebf8d7501139ebc78192763343a63d61c686d59f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.