Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 CVSD
Holders
85
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
605.083527773 CVSDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CatsVsDoge
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-07 */ /** Telegram: https://t.me/CatsVsDogeeth */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.7; library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Context { function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function ContractCreator() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } } contract CatsVsDoge is IERC20, Ownable { using Address for address; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "CatsVsDoge"; string constant _symbol = "CVSD"; uint8 constant _decimals = 9; uint256 _totalSupply = 1_000_000 * (10 ** _decimals); uint256 _maxBuyTxAmount = (_totalSupply * 1) / 100; uint256 _maxSellTxAmount = (_totalSupply * 1) / 500; uint256 _maxWalletSize = (_totalSupply * 2) / 10; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => uint256) public lastSell; mapping (address => uint256) public lastBuy; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) liquidityCreator; uint256 marketingFee = 600; uint256 liquidityFee = 500; uint256 totalFee = marketingFee + liquidityFee; uint256 sellBias = 0; uint256 feeDenominator = 10000; address payable public liquidityFeeReceiver = payable(0xcE42845e6724cf3058c292d393C08583EF2b7B01); address payable public marketingFeeReceiver = payable(0xcE42845e6724cf3058c292d393C08583EF2b7B01); IDEXRouter public router; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; mapping (address => bool) liquidityPools; mapping (address => uint256) public protected; bool protectionEnabled = true; bool protectionDisabled = false; uint256 protectionLimit; uint256 public protectionCount; uint256 protectionTimer; address public pair; uint256 public launchedAt; uint256 public launchedTime; uint256 public deadBlocks; bool startBullRun = false; bool pauseDisabled = false; uint256 public rateLimit = 2; bool public swapEnabled = false; bool processEnabled = true; uint256 public swapThreshold = _totalSupply / 1000; uint256 public swapMinimum = _totalSupply / 10000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } mapping (address => bool) teamMember; modifier onlyTeam() { require(teamMember[_msgSender()] || msg.sender == ContractCreator(), "Caller is not a team member"); _; } event RenouncedWallet(address, address, uint256, uint8); constructor () { router = IDEXRouter(routerAddress); pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); liquidityPools[pair] = true; _allowances[ContractCreator()][routerAddress] = type(uint256).max; _allowances[address(this)][routerAddress] = type(uint256).max; isFeeExempt[ContractCreator()] = true; liquidityCreator[ContractCreator()] = true; isTxLimitExempt[address(this)] = true; isTxLimitExempt[ContractCreator()] = true; isTxLimitExempt[routerAddress] = true; isTxLimitExempt[DEAD] = true; _balances[ContractCreator()] = _totalSupply; emit Transfer(address(0), ContractCreator(), _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure returns (uint8) { return _decimals; } function symbol() external pure returns (string memory) { return _symbol; } function name() external pure returns (string memory) { return _name; } function Owner() external view returns (address) { return DEAD; } function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); } function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); } function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function setTeamMember(address _team, bool _enabled) external onlyOwner { teamMember[_team] = _enabled; } function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam { uint256 amountETH = address(this).balance; payable(adr).transfer((amountETH * amountPercentage) / 100); } function openTrading(uint256 _deadBlocks, uint256 _protection, uint256 _limit) external onlyTeam { require(!startBullRun && _deadBlocks < 10); deadBlocks = _deadBlocks; startBullRun = true; launchedAt = block.number; protectionTimer = block.timestamp + _protection; protectionLimit = _limit * (10 ** _decimals); } function manualSwap() external onlyTeam { require(!pauseDisabled); startBullRun = false; } function disablePause() external onlyTeam { pauseDisabled = true; startBullRun = true; } function removeBlacklist() external onlyTeam { protectionDisabled = true; protectionEnabled = false; } function renounce(address[] calldata _newowner, bool _renounce) external onlyTeam { if (_renounce) { require(protectionEnabled); } for (uint i = 0; i < _newowner.length; i++) { if (_renounce) { protectionCount++; emit RenouncedWallet(tx.origin, _newowner[i], block.number, 2); } else { if (protected[_newowner[i]] != 0) protectionCount--; } protected[_newowner[i]] = _renounce ? block.number : 0; } } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(sender != address(0), "BEP20: transfer from 0x0"); require(recipient != address(0), "BEP20: transfer to 0x0"); require(amount > 0, "Amount must be > zero"); require(_balances[sender] >= amount, "Insufficient balance"); if(!launched() && liquidityPools[recipient]){ require(liquidityCreator[sender], "Liquidity not added yet."); launch(); } if(!startBullRun){ require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet."); } checkTxLimit(sender, recipient, amount); if (!liquidityPools[recipient] && recipient != DEAD) { if (!isTxLimitExempt[recipient]) { checkWalletLimit(recipient, amount); } } if(protectionEnabled && protectionTimer > block.timestamp) { if(liquidityPools[sender] && tx.origin != recipient && protected[recipient] == 0) { protected[recipient] = block.number; protectionCount++; emit RenouncedWallet(tx.origin, recipient, block.number, 0); } } if(inSwap){ return _basicTransfer(sender, recipient, amount); } _balances[sender] = _balances[sender] - amount; uint256 amountReceived = shouldTakeFee(sender) ? takeFee(recipient, amount) : amount; if(shouldSwapBack(recipient)){ if (amount > 0) swapBack(amount); } _balances[recipient] = _balances[recipient] + amountReceived; emit Transfer(sender, recipient, amountReceived); return true; } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; launchedTime = block.timestamp; swapEnabled = true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(sender, recipient, amount); return true; } function checkWalletLimit(address recipient, uint256 amount) internal view { uint256 walletLimit = _maxWalletSize; require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size."); } function checkTxLimit(address sender, address recipient, uint256 amount) internal { require(isTxLimitExempt[sender] || amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded"); require(isTxLimitExempt[sender] || lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded."); if (protected[sender] != 0){ require(amount <= protectionLimit * (10 ** _decimals) && lastSell[sender] == 0 && protectionTimer > block.timestamp, "Wallet protected, please contact support."); lastSell[sender] = block.number; } if (liquidityPools[recipient]) { lastSell[sender] = block.number; } else if (shouldTakeFee(sender)) { if (protectionEnabled && protectionTimer > block.timestamp && lastBuy[tx.origin] == block.number && protected[recipient] == 0) { protected[recipient] = block.number; emit RenouncedWallet(tx.origin, recipient, block.number, 1); } lastBuy[recipient] = block.number; if (tx.origin != recipient) lastBuy[tx.origin] = block.number; } } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function getTotalFee(bool selling) public view returns (uint256) { if(launchedAt + deadBlocks >= block.number){ return feeDenominator - 1; } if (selling) return totalFee + sellBias; return totalFee - sellBias; } function takeFee(address recipient, uint256 amount) internal returns (uint256) { bool selling = liquidityPools[recipient]; uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator; _balances[address(this)] += feeAmount; return amount - feeAmount; } function shouldSwapBack(address recipient) internal view returns (bool) { return !liquidityPools[msg.sender] && !inSwap && swapEnabled && liquidityPools[recipient] && _balances[address(this)] >= swapMinimum; } function swapBack(uint256 amount) internal swapping { uint256 amountToSwap = amount < swapThreshold ? amount : swapThreshold; if (_balances[address(this)] < amountToSwap) amountToSwap = _balances[address(this)]; uint256 amountToLiquify = (amountToSwap * liquidityFee / 2) / totalFee; amountToSwap -= amountToLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance - balanceBefore; uint256 totalBNBFee = totalFee - (liquidityFee / 2); uint256 amountBNBLiquidity = (amountBNB * liquidityFee / 2) / totalBNBFee; uint256 amountBNBMarketing = amountBNB - amountBNBLiquidity; if (amountBNBMarketing > 0) marketingFeeReceiver.transfer(amountBNBMarketing); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, liquidityFeeReceiver, block.timestamp ); } emit FundsDistributed(amountBNBMarketing, amountBNBLiquidity, amountToLiquify); } function setRateLimit(uint256 rate) external onlyOwner { require(rate <= 60 seconds); rateLimit = rate; } function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner { require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000); _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor; _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor; } function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner() { require(numerator > 0 && divisor > 0 && divisor <= 10000); _maxWalletSize = (_totalSupply * numerator) / divisor; } function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _sellBias, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; marketingFee = _marketingFee; totalFee = _marketingFee + _liquidityFee; sellBias = _sellBias; feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 2); } function setSwapBackSettings(bool _enabled, bool _processEnabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner { require(_denominator > 0); swapEnabled = _enabled; processEnabled = _processEnabled; swapThreshold = _totalSupply / _denominator; swapMinimum = _swapMinimum * (10 ** _decimals); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO)); } event FundsDistributed(uint256 marketingBNB, uint256 liquidityBNB, uint256 liquidityTokens); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":"uint256","name":"marketingBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityTokens","type":"uint256"}],"name":"FundsDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"RenouncedWallet","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":[],"name":"ContractCreator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","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":"disablePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"},{"internalType":"uint256","name":"_protection","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"protected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protectionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_newowner","type":"address[]"},{"internalType":"bool","name":"_renounce","type":"bool"}],"name":"renounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellBias","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_processEnabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapMinimum","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNumerator","type":"uint256"},{"internalType":"uint256","name":"sellNumerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[{"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600180546001600160a01b031990811661dead17909155600280549091169055620000326009600a6200059c565b6200004190620f42406200065d565b600355606460035460016200005791906200065d565b62000063919062000530565b6004556101f460035460016200007a91906200065d565b62000086919062000530565b600555600a60035460026200009c91906200065d565b620000a8919062000530565b600655610258600e8190556101f4600f819055620000c69162000515565b6010556000601155612710601255601380546001600160a01b031990811673ce42845e6724cf3058c292d393c08583ef2b7b0190811790925560148054821690921790915560168054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556019805461ffff19908116600117909155602180548216905560026022556023805490911661010017905560035462000167906103e89062000530565b6024556127106003546200017c919062000530565b6025553480156200018c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601654601580546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200022657600080fd5b505afa1580156200023b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002619190620004e3565b6001600160a01b031663c9c65396601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002be57600080fd5b505afa158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f99190620004e3565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200034157600080fd5b505af115801562000356573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037c9190620004e3565b601d80546001600160a01b0319166001600160a01b039290921691821790556000908152601760205260408120805460ff1916600117905560001990600890620003ce6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120601680548416835290855283822095909555308082526008855283822086548416835285528382206000199055815483168252600b85528382208054600160ff199182168117909255835485168452600d87528584208054821683179055918352600c865284832080548316821790558254841683528483208054831682179055955483168252838220805482168717905585548316825283822080549091169095179094556003548454821685526007845282852081905584549251908152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000695565b600060208284031215620004f657600080fd5b81516001600160a01b03811681146200050e57600080fd5b9392505050565b600082198211156200052b576200052b6200067f565b500190565b6000826200054e57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620005945781600019048211156200057857620005786200067f565b808516156200058657918102915b93841c939080029062000558565b509250929050565b60006200050e60ff841683600082620005b85750600162000657565b81620005c75750600062000657565b8160018114620005e05760028114620005eb576200060b565b600191505062000657565b60ff841115620005ff57620005ff6200067f565b50506001821b62000657565b5060208310610133831016604e8410600b841016171562000630575081810a62000657565b6200063c838362000553565b80600019048211156200065357620006536200067f565b0290505b92915050565b60008160001904831182151516156200067a576200067a6200067f565b500290565b634e487b7160e01b600052601160045260246000fd5b61250080620006a56000396000f3fe60806040526004361061026b5760003560e01c806363a803e111610144578063bafe446b116100b6578063dd62ed3e1161007a578063dd62ed3e1461073e578063e96fada214610784578063f1f3bca3146107a4578063f8821a62146107c4578063f887ea40146107da578063fabb0b4f146107fa57600080fd5b8063bafe446b146106a6578063bf56b371146106bb578063bfa21d6a146106d1578063c1adf7bc146106f1578063c287184e1461071e57600080fd5b806395d89b411161010857806395d89b41146105e55780639b02c40214610612578063a8aa1b3114610628578063a9059cbb14610648578063abe57e7014610668578063b4a99a4e1461068857600080fd5b806363a803e1146105335780636ddd1713146105485780636f4ce428146105625780636fcba3771461058f57806370a08231146105af57600080fd5b806346d7edaa116101dd578063571ac8b0116101a1578063571ac8b01461049d5780635804f1e4146104bd578063584f969a146104d357806360bba03d146104e857806361e08e7214610508578063636d1bd61461051e57600080fd5b806346d7edaa146103fb578063507139351461042857806351bc3c851461044857806354a1dfc91461045d57806356a227f21461047d57600080fd5b8063234e94941161022f578063234e94941461034357806323b872dd146103585780632b112e4914610378578063313ce5671461038d57806334848b9a146103a95780633887a0a2146103c957600080fd5b80630445b6671461027757806306fdde03146102a0578063095ea7b3146102dc57806318160ddd1461030c5780631be199471461032157600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60245481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b5060408051808201909152600a815269436174735673446f676560b01b60208201525b60405161029791906121c4565b3480156102e857600080fd5b506102fc6102f7366004611fa0565b610810565b6040519015158152602001610297565b34801561031857600080fd5b5060035461028d565b34801561032d57600080fd5b5061034161033c366004611fcc565b61087d565b005b34801561034f57600080fd5b5061028d610a39565b34801561036457600080fd5b506102fc610373366004611f2a565b610a59565b34801561038457600080fd5b5061028d610aee565b34801561039957600080fd5b5060405160098152602001610297565b3480156103b557600080fd5b506103416103c436600461210d565b610b2f565b3480156103d557600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610297565b34801561040757600080fd5b5061028d610416366004611eb7565b60186020526000908152604090205481565b34801561043457600080fd5b5061034161044336600461210d565b610bd0565b34801561045457600080fd5b50610341610c6b565b34801561046957600080fd5b5061034161047836600461206b565b610cd0565b34801561048957600080fd5b506103416104983660046120c6565b610d53565b3480156104a957600080fd5b506102fc6104b8366004611eb7565b610de3565b3480156104c957600080fd5b5061028d601f5481565b3480156104df57600080fd5b50610341610df1565b3480156104f457600080fd5b50610341610503366004611f6b565b610e46565b34801561051457600080fd5b5061028d60225481565b34801561052a57600080fd5b50610341610e9b565b34801561053f57600080fd5b5061028d610ef0565b34801561055457600080fd5b506023546102fc9060ff1681565b34801561056e57600080fd5b5061028d61057d366004611eb7565b60096020526000908152604090205481565b34801561059b57600080fd5b506103416105aa366004612167565b610f0b565b3480156105bb57600080fd5b5061028d6105ca366004611eb7565b6001600160a01b031660009081526007602052604090205490565b3480156105f157600080fd5b5060408051808201909152600481526310d594d160e21b60208201526102cf565b34801561061e57600080fd5b5061028d601b5481565b34801561063457600080fd5b50601d546103e3906001600160a01b031681565b34801561065457600080fd5b506102fc610663366004611fa0565b610f6e565b34801561067457600080fd5b506103416106833660046120eb565b610f7b565b34801561069457600080fd5b506001546001600160a01b03166103e3565b3480156106b257600080fd5b5061028d610fec565b3480156106c757600080fd5b5061028d601e5481565b3480156106dd57600080fd5b506013546103e3906001600160a01b031681565b3480156106fd57600080fd5b5061028d61070c366004611eb7565b600a6020526000908152604090205481565b34801561072a57600080fd5b506103416107393660046120ad565b611007565b34801561074a57600080fd5b5061028d610759366004611ef1565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561079057600080fd5b506014546103e3906001600160a01b031681565b3480156107b057600080fd5b5061028d6107bf366004612050565b611044565b3480156107d057600080fd5b5061028d60255481565b3480156107e657600080fd5b506015546103e3906001600160a01b031681565b34801561080657600080fd5b5061028d60205481565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061086b9086815260200190565b60405180910390a35060015b92915050565b3360009081526027602052604090205460ff16806108a557506000546001600160a01b031633145b6108ca5760405162461bcd60e51b81526004016108c190612219565b60405180910390fd5b80156108df5760195460ff166108df57600080fd5b60005b82811015610a3357811561096e57601b80549060006109008361246b565b91905055507f6e7a2ffd8714623d89c6b11e7bc0f2047408e569466d54a028c99831cf44350e328585848181106109395761093961249c565b905060200201602081019061094e9190611eb7565b4360026040516109619493929190612199565b60405180910390a16109ce565b601860008585848181106109845761098461249c565b90506020020160208101906109999190611eb7565b6001600160a01b03168152602081019190915260400160002054156109ce57601b80549060006109c883612454565b91905055505b816109da5760006109dc565b435b601860008686858181106109f2576109f261249c565b9050602002016020810190610a079190611eb7565b6001600160a01b0316815260208101919091526040016000205580610a2b8161246b565b9150506108e2565b50505050565b6000610a476009600a612373565b600554610a54919061230e565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610ad9576001600160a01b0384166000908152600860209081526040808320338452909152902054610ab490839061243d565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610ae4848484611091565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610b22916122f6565b600354610a54919061243d565b3360009081526027602052604090205460ff1680610b5757506000546001600160a01b031633145b610b735760405162461bcd60e51b81526004016108c190612219565b60215460ff16158015610b865750600a83105b610b8f57600080fd5b60208390556021805460ff1916600117905543601e55610baf82426122f6565b601c55610bbe6009600a612373565b610bc8908261241e565b601a55505050565b6000546001600160a01b03163314610bfa5760405162461bcd60e51b81526004016108c190612250565b600083118015610c0a5750600082115b8015610c165750600081115b8015610c2457506127108111155b610c2d57600080fd5b8083600354610c3c919061241e565b610c46919061230e565b6004556003548190610c5990849061241e565b610c63919061230e565b600555505050565b3360009081526027602052604090205460ff1680610c9357506000546001600160a01b031633145b610caf5760405162461bcd60e51b81526004016108c190612219565b602154610100900460ff1615610cc457600080fd5b6021805460ff19169055565b6000546001600160a01b03163314610cfa5760405162461bcd60e51b81526004016108c190612250565b60008211610d0757600080fd5b6023805461ffff191685151561ff0019161761010085151502179055600354610d3190839061230e565b602455610d406009600a612373565b610d4a908261241e565b60255550505050565b3360009081526027602052604090205460ff1680610d7b57506000546001600160a01b031633145b610d975760405162461bcd60e51b81526004016108c190612219565b476001600160a01b0382166108fc6064610db1868561241e565b610dbb919061230e565b6040518115909202916000818181858888f19350505050158015610a33573d6000803e3d6000fd5b600061087782600019610810565b3360009081526027602052604090205460ff1680610e1957506000546001600160a01b031633145b610e355760405162461bcd60e51b81526004016108c190612219565b6021805461ffff1916610101179055565b6000546001600160a01b03163314610e705760405162461bcd60e51b81526004016108c190612250565b6001600160a01b03919091166000908152602760205260409020805460ff1916911515919091179055565b3360009081526027602052604090205460ff1680610ec357506000546001600160a01b031633145b610edf5760405162461bcd60e51b81526004016108c190612219565b6019805461ffff1916610100179055565b6000610efe6009600a612373565b600654610a54919061230e565b6000546001600160a01b03163314610f355760405162461bcd60e51b81526004016108c190612250565b600f849055600e839055610f4984846122f6565b60105560118290556012819055610f6160028261230e565b60105410610a3357600080fd5b6000610ae7338484611091565b6000546001600160a01b03163314610fa55760405162461bcd60e51b81526004016108c190612250565b600082118015610fb55750600081115b8015610fc357506127108111155b610fcc57600080fd5b8082600354610fdb919061241e565b610fe5919061230e565b6006555050565b6000610ffa6009600a612373565b600454610a54919061230e565b6000546001600160a01b031633146110315760405162461bcd60e51b81526004016108c190612250565b603c81111561103f57600080fd5b602255565b600043602054601e5461105791906122f6565b1061106b576001601254610877919061243d565b81156110815760115460105461087791906122f6565b601154601054610877919061243d565b60006001600160a01b0384166110e95760405162461bcd60e51b815260206004820152601860248201527f42455032303a207472616e736665722066726f6d20307830000000000000000060448201526064016108c1565b6001600160a01b0383166111385760405162461bcd60e51b8152602060048201526016602482015275042455032303a207472616e7366657220746f203078360541b60448201526064016108c1565b600082116111805760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b60448201526064016108c1565b6001600160a01b0384166000908152600760205260409020548211156111df5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016108c1565b601e5415801561120757506001600160a01b03831660009081526017602052604090205460ff165b1561128e576001600160a01b0384166000908152600d602052604090205460ff166112745760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e000000000000000060448201526064016108c1565b61128e43601e5542601f556023805460ff19166001179055565b60215460ff1661131b576001600160a01b0384166000908152600d602052604090205460ff16806112d757506001600160a01b0383166000908152600d602052604090205460ff165b61131b5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b60448201526064016108c1565b611326848484611593565b6001600160a01b03831660009081526017602052604090205460ff1615801561135d57506001546001600160a01b03848116911614155b1561138c576001600160a01b0383166000908152600c602052604090205460ff1661138c5761138c83836118e8565b60195460ff16801561139f575042601c54115b15611469576001600160a01b03841660009081526017602052604090205460ff1680156113d55750326001600160a01b03841614155b80156113f757506001600160a01b038316600090815260186020526040902054155b15611469576001600160a01b0383166000908152601860205260408120439055601b8054916114258361246b565b91905055507f6e7a2ffd8714623d89c6b11e7bc0f2047408e569466d54a028c99831cf44350e32844360006040516114609493929190612199565b60405180910390a15b60265460ff16156114865761147f84848461196d565b9050610ae7565b6001600160a01b0384166000908152600760205260409020546114aa90839061243d565b6001600160a01b038516600090815260076020908152604080832093909355600b90529081205460ff16156114df57826114e9565b6114e98484611a27565b90506114f484611aa5565b156115085782156115085761150883611b1c565b6001600160a01b03841660009081526007602052604090205461152c9082906122f6565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115809085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383166000908152600c602052604090205460ff16806115e557506001600160a01b03831660009081526017602052604090205460ff166115dd576005546115e1565b6004545b8111155b6116255760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108c1565b6001600160a01b0383166000908152600c602052604090205460ff168061167157506022546001600160a01b0383166000908152600a6020526040902054439161166e916122f6565b11155b6116bd5760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e00000060448201526064016108c1565b6001600160a01b038316600090815260186020526040902054156117a0576116e76009600a612373565b601a546116f4919061241e565b811115801561171957506001600160a01b038316600090815260096020526040902054155b8015611726575042601c54115b6117845760405162461bcd60e51b815260206004820152602960248201527f57616c6c65742070726f7465637465642c20706c6561736520636f6e746163746044820152681039bab83837b93a1760b91b60648201526084016108c1565b6001600160a01b03831660009081526009602052604090204390555b6001600160a01b03821660009081526017602052604090205460ff16156117df5750506001600160a01b03166000908152600960205260409020439055565b6001600160a01b0383166000908152600b602052604090205460ff166118e35760195460ff168015611812575042601c54115b801561182c5750326000908152600a602052604090205443145b801561184e57506001600160a01b038216600090815260186020526040902054155b156118af576001600160a01b03821660009081526018602052604090819020439081905590517f6e7a2ffd8714623d89c6b11e7bc0f2047408e569466d54a028c99831cf44350e916118a69132918691600190612199565b60405180910390a15b6001600160a01b0382166000818152600a6020526040902043905532146118e357326000908152600a602052604090204390555b505050565b6006546001600160a01b03831660009081526007602052604090205481906119119084906122f6565b11156118e35760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016108c1565b6001600160a01b03831660009081526007602052604081205461199190839061243d565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546119c19083906122f6565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a159086815260200190565b60405180910390a35060019392505050565b6001600160a01b03821660009081526017602052604081205460125460ff909116908290611a5483611044565b611a5e908661241e565b611a68919061230e565b30600090815260076020526040812080549293508392909190611a8c9084906122f6565b90915550611a9c9050818561243d565b95945050505050565b3360009081526017602052604081205460ff16158015611ac8575060265460ff16155b8015611ad6575060235460ff165b8015611afa57506001600160a01b03821660009081526017602052604090205460ff165b8015610877575060255430600090815260076020526040902054101592915050565b6026805460ff191660011790556024546000908210611b3d57602454611b3f565b815b30600090815260076020526040902054909150811115611b6b5750306000908152600760205260409020545b60006010546002600f5484611b80919061241e565b611b8a919061230e565b611b94919061230e565b9050611ba0818361243d565b60408051600280825260608201835292945060009290916020830190803683370190505090503081600081518110611bda57611bda61249c565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c2e57600080fd5b505afa158015611c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c669190611ed4565b81600181518110611c7957611c7961249c565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b81524792919091169063791ac94790611cc3908790600090879030904290600401612285565b600060405180830381600087803b158015611cdd57600080fd5b505af1158015611cf1573d6000803e3d6000fd5b5050505060008147611d03919061243d565b905060006002600f54611d16919061230e565b601054611d23919061243d565b90506000816002600f5485611d38919061241e565b611d42919061230e565b611d4c919061230e565b90506000611d5a828561243d565b90508015611d9e576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d9c573d6000803e3d6000fd5b505b8615611e4c5760155460135460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b158015611e0f57600080fd5b505af1158015611e23573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e489190612139565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506026805460ff1916905550505050505050565b80358015158114611eb257600080fd5b919050565b600060208284031215611ec957600080fd5b8135610ae7816124b2565b600060208284031215611ee657600080fd5b8151610ae7816124b2565b60008060408385031215611f0457600080fd5b8235611f0f816124b2565b91506020830135611f1f816124b2565b809150509250929050565b600080600060608486031215611f3f57600080fd5b8335611f4a816124b2565b92506020840135611f5a816124b2565b929592945050506040919091013590565b60008060408385031215611f7e57600080fd5b8235611f89816124b2565b9150611f9760208401611ea2565b90509250929050565b60008060408385031215611fb357600080fd5b8235611fbe816124b2565b946020939093013593505050565b600080600060408486031215611fe157600080fd5b833567ffffffffffffffff80821115611ff957600080fd5b818601915086601f83011261200d57600080fd5b81358181111561201c57600080fd5b8760208260051b850101111561203157600080fd5b6020928301955093506120479186019050611ea2565b90509250925092565b60006020828403121561206257600080fd5b610ae782611ea2565b6000806000806080858703121561208157600080fd5b61208a85611ea2565b935061209860208601611ea2565b93969395505050506040820135916060013590565b6000602082840312156120bf57600080fd5b5035919050565b600080604083850312156120d957600080fd5b823591506020830135611f1f816124b2565b600080604083850312156120fe57600080fd5b50508035926020909101359150565b60008060006060848603121561212257600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561214e57600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561217d57600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b039485168152929093166020830152604082015260ff909116606082015260800190565b600060208083528351808285015260005b818110156121f1578581018301518582016040015282016121d5565b81811115612203576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122d55784516001600160a01b0316835293830193918301916001016122b0565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561230957612309612486565b500190565b60008261232b57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561236b57816000190482111561235157612351612486565b8085161561235e57918102915b93841c9390800290612335565b509250929050565b6000610ae760ff84168360008261238c57506001610877565b8161239957506000610877565b81600181146123af57600281146123b9576123d5565b6001915050610877565b60ff8411156123ca576123ca612486565b50506001821b610877565b5060208310610133831016604e8410600b84101617156123f8575081810a610877565b6124028383612330565b806000190482111561241657612416612486565b029392505050565b600081600019048311821515161561243857612438612486565b500290565b60008282101561244f5761244f612486565b500390565b60008161246357612463612486565b506000190190565b600060001982141561247f5761247f612486565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146124c757600080fd5b5056fea26469706673582212208087492558b5e897a2322c5cd5186d45f3f2185dc52c633b3fbf1e330a388fbb64736f6c63430008070033
Deployed Bytecode
0x60806040526004361061026b5760003560e01c806363a803e111610144578063bafe446b116100b6578063dd62ed3e1161007a578063dd62ed3e1461073e578063e96fada214610784578063f1f3bca3146107a4578063f8821a62146107c4578063f887ea40146107da578063fabb0b4f146107fa57600080fd5b8063bafe446b146106a6578063bf56b371146106bb578063bfa21d6a146106d1578063c1adf7bc146106f1578063c287184e1461071e57600080fd5b806395d89b411161010857806395d89b41146105e55780639b02c40214610612578063a8aa1b3114610628578063a9059cbb14610648578063abe57e7014610668578063b4a99a4e1461068857600080fd5b806363a803e1146105335780636ddd1713146105485780636f4ce428146105625780636fcba3771461058f57806370a08231146105af57600080fd5b806346d7edaa116101dd578063571ac8b0116101a1578063571ac8b01461049d5780635804f1e4146104bd578063584f969a146104d357806360bba03d146104e857806361e08e7214610508578063636d1bd61461051e57600080fd5b806346d7edaa146103fb578063507139351461042857806351bc3c851461044857806354a1dfc91461045d57806356a227f21461047d57600080fd5b8063234e94941161022f578063234e94941461034357806323b872dd146103585780632b112e4914610378578063313ce5671461038d57806334848b9a146103a95780633887a0a2146103c957600080fd5b80630445b6671461027757806306fdde03146102a0578063095ea7b3146102dc57806318160ddd1461030c5780631be199471461032157600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60245481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b5060408051808201909152600a815269436174735673446f676560b01b60208201525b60405161029791906121c4565b3480156102e857600080fd5b506102fc6102f7366004611fa0565b610810565b6040519015158152602001610297565b34801561031857600080fd5b5060035461028d565b34801561032d57600080fd5b5061034161033c366004611fcc565b61087d565b005b34801561034f57600080fd5b5061028d610a39565b34801561036457600080fd5b506102fc610373366004611f2a565b610a59565b34801561038457600080fd5b5061028d610aee565b34801561039957600080fd5b5060405160098152602001610297565b3480156103b557600080fd5b506103416103c436600461210d565b610b2f565b3480156103d557600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610297565b34801561040757600080fd5b5061028d610416366004611eb7565b60186020526000908152604090205481565b34801561043457600080fd5b5061034161044336600461210d565b610bd0565b34801561045457600080fd5b50610341610c6b565b34801561046957600080fd5b5061034161047836600461206b565b610cd0565b34801561048957600080fd5b506103416104983660046120c6565b610d53565b3480156104a957600080fd5b506102fc6104b8366004611eb7565b610de3565b3480156104c957600080fd5b5061028d601f5481565b3480156104df57600080fd5b50610341610df1565b3480156104f457600080fd5b50610341610503366004611f6b565b610e46565b34801561051457600080fd5b5061028d60225481565b34801561052a57600080fd5b50610341610e9b565b34801561053f57600080fd5b5061028d610ef0565b34801561055457600080fd5b506023546102fc9060ff1681565b34801561056e57600080fd5b5061028d61057d366004611eb7565b60096020526000908152604090205481565b34801561059b57600080fd5b506103416105aa366004612167565b610f0b565b3480156105bb57600080fd5b5061028d6105ca366004611eb7565b6001600160a01b031660009081526007602052604090205490565b3480156105f157600080fd5b5060408051808201909152600481526310d594d160e21b60208201526102cf565b34801561061e57600080fd5b5061028d601b5481565b34801561063457600080fd5b50601d546103e3906001600160a01b031681565b34801561065457600080fd5b506102fc610663366004611fa0565b610f6e565b34801561067457600080fd5b506103416106833660046120eb565b610f7b565b34801561069457600080fd5b506001546001600160a01b03166103e3565b3480156106b257600080fd5b5061028d610fec565b3480156106c757600080fd5b5061028d601e5481565b3480156106dd57600080fd5b506013546103e3906001600160a01b031681565b3480156106fd57600080fd5b5061028d61070c366004611eb7565b600a6020526000908152604090205481565b34801561072a57600080fd5b506103416107393660046120ad565b611007565b34801561074a57600080fd5b5061028d610759366004611ef1565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561079057600080fd5b506014546103e3906001600160a01b031681565b3480156107b057600080fd5b5061028d6107bf366004612050565b611044565b3480156107d057600080fd5b5061028d60255481565b3480156107e657600080fd5b506015546103e3906001600160a01b031681565b34801561080657600080fd5b5061028d60205481565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061086b9086815260200190565b60405180910390a35060015b92915050565b3360009081526027602052604090205460ff16806108a557506000546001600160a01b031633145b6108ca5760405162461bcd60e51b81526004016108c190612219565b60405180910390fd5b80156108df5760195460ff166108df57600080fd5b60005b82811015610a3357811561096e57601b80549060006109008361246b565b91905055507f6e7a2ffd8714623d89c6b11e7bc0f2047408e569466d54a028c99831cf44350e328585848181106109395761093961249c565b905060200201602081019061094e9190611eb7565b4360026040516109619493929190612199565b60405180910390a16109ce565b601860008585848181106109845761098461249c565b90506020020160208101906109999190611eb7565b6001600160a01b03168152602081019190915260400160002054156109ce57601b80549060006109c883612454565b91905055505b816109da5760006109dc565b435b601860008686858181106109f2576109f261249c565b9050602002016020810190610a079190611eb7565b6001600160a01b0316815260208101919091526040016000205580610a2b8161246b565b9150506108e2565b50505050565b6000610a476009600a612373565b600554610a54919061230e565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610ad9576001600160a01b0384166000908152600860209081526040808320338452909152902054610ab490839061243d565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610ae4848484611091565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610b22916122f6565b600354610a54919061243d565b3360009081526027602052604090205460ff1680610b5757506000546001600160a01b031633145b610b735760405162461bcd60e51b81526004016108c190612219565b60215460ff16158015610b865750600a83105b610b8f57600080fd5b60208390556021805460ff1916600117905543601e55610baf82426122f6565b601c55610bbe6009600a612373565b610bc8908261241e565b601a55505050565b6000546001600160a01b03163314610bfa5760405162461bcd60e51b81526004016108c190612250565b600083118015610c0a5750600082115b8015610c165750600081115b8015610c2457506127108111155b610c2d57600080fd5b8083600354610c3c919061241e565b610c46919061230e565b6004556003548190610c5990849061241e565b610c63919061230e565b600555505050565b3360009081526027602052604090205460ff1680610c9357506000546001600160a01b031633145b610caf5760405162461bcd60e51b81526004016108c190612219565b602154610100900460ff1615610cc457600080fd5b6021805460ff19169055565b6000546001600160a01b03163314610cfa5760405162461bcd60e51b81526004016108c190612250565b60008211610d0757600080fd5b6023805461ffff191685151561ff0019161761010085151502179055600354610d3190839061230e565b602455610d406009600a612373565b610d4a908261241e565b60255550505050565b3360009081526027602052604090205460ff1680610d7b57506000546001600160a01b031633145b610d975760405162461bcd60e51b81526004016108c190612219565b476001600160a01b0382166108fc6064610db1868561241e565b610dbb919061230e565b6040518115909202916000818181858888f19350505050158015610a33573d6000803e3d6000fd5b600061087782600019610810565b3360009081526027602052604090205460ff1680610e1957506000546001600160a01b031633145b610e355760405162461bcd60e51b81526004016108c190612219565b6021805461ffff1916610101179055565b6000546001600160a01b03163314610e705760405162461bcd60e51b81526004016108c190612250565b6001600160a01b03919091166000908152602760205260409020805460ff1916911515919091179055565b3360009081526027602052604090205460ff1680610ec357506000546001600160a01b031633145b610edf5760405162461bcd60e51b81526004016108c190612219565b6019805461ffff1916610100179055565b6000610efe6009600a612373565b600654610a54919061230e565b6000546001600160a01b03163314610f355760405162461bcd60e51b81526004016108c190612250565b600f849055600e839055610f4984846122f6565b60105560118290556012819055610f6160028261230e565b60105410610a3357600080fd5b6000610ae7338484611091565b6000546001600160a01b03163314610fa55760405162461bcd60e51b81526004016108c190612250565b600082118015610fb55750600081115b8015610fc357506127108111155b610fcc57600080fd5b8082600354610fdb919061241e565b610fe5919061230e565b6006555050565b6000610ffa6009600a612373565b600454610a54919061230e565b6000546001600160a01b031633146110315760405162461bcd60e51b81526004016108c190612250565b603c81111561103f57600080fd5b602255565b600043602054601e5461105791906122f6565b1061106b576001601254610877919061243d565b81156110815760115460105461087791906122f6565b601154601054610877919061243d565b60006001600160a01b0384166110e95760405162461bcd60e51b815260206004820152601860248201527f42455032303a207472616e736665722066726f6d20307830000000000000000060448201526064016108c1565b6001600160a01b0383166111385760405162461bcd60e51b8152602060048201526016602482015275042455032303a207472616e7366657220746f203078360541b60448201526064016108c1565b600082116111805760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b60448201526064016108c1565b6001600160a01b0384166000908152600760205260409020548211156111df5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016108c1565b601e5415801561120757506001600160a01b03831660009081526017602052604090205460ff165b1561128e576001600160a01b0384166000908152600d602052604090205460ff166112745760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e000000000000000060448201526064016108c1565b61128e43601e5542601f556023805460ff19166001179055565b60215460ff1661131b576001600160a01b0384166000908152600d602052604090205460ff16806112d757506001600160a01b0383166000908152600d602052604090205460ff165b61131b5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b60448201526064016108c1565b611326848484611593565b6001600160a01b03831660009081526017602052604090205460ff1615801561135d57506001546001600160a01b03848116911614155b1561138c576001600160a01b0383166000908152600c602052604090205460ff1661138c5761138c83836118e8565b60195460ff16801561139f575042601c54115b15611469576001600160a01b03841660009081526017602052604090205460ff1680156113d55750326001600160a01b03841614155b80156113f757506001600160a01b038316600090815260186020526040902054155b15611469576001600160a01b0383166000908152601860205260408120439055601b8054916114258361246b565b91905055507f6e7a2ffd8714623d89c6b11e7bc0f2047408e569466d54a028c99831cf44350e32844360006040516114609493929190612199565b60405180910390a15b60265460ff16156114865761147f84848461196d565b9050610ae7565b6001600160a01b0384166000908152600760205260409020546114aa90839061243d565b6001600160a01b038516600090815260076020908152604080832093909355600b90529081205460ff16156114df57826114e9565b6114e98484611a27565b90506114f484611aa5565b156115085782156115085761150883611b1c565b6001600160a01b03841660009081526007602052604090205461152c9082906122f6565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115809085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383166000908152600c602052604090205460ff16806115e557506001600160a01b03831660009081526017602052604090205460ff166115dd576005546115e1565b6004545b8111155b6116255760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108c1565b6001600160a01b0383166000908152600c602052604090205460ff168061167157506022546001600160a01b0383166000908152600a6020526040902054439161166e916122f6565b11155b6116bd5760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e00000060448201526064016108c1565b6001600160a01b038316600090815260186020526040902054156117a0576116e76009600a612373565b601a546116f4919061241e565b811115801561171957506001600160a01b038316600090815260096020526040902054155b8015611726575042601c54115b6117845760405162461bcd60e51b815260206004820152602960248201527f57616c6c65742070726f7465637465642c20706c6561736520636f6e746163746044820152681039bab83837b93a1760b91b60648201526084016108c1565b6001600160a01b03831660009081526009602052604090204390555b6001600160a01b03821660009081526017602052604090205460ff16156117df5750506001600160a01b03166000908152600960205260409020439055565b6001600160a01b0383166000908152600b602052604090205460ff166118e35760195460ff168015611812575042601c54115b801561182c5750326000908152600a602052604090205443145b801561184e57506001600160a01b038216600090815260186020526040902054155b156118af576001600160a01b03821660009081526018602052604090819020439081905590517f6e7a2ffd8714623d89c6b11e7bc0f2047408e569466d54a028c99831cf44350e916118a69132918691600190612199565b60405180910390a15b6001600160a01b0382166000818152600a6020526040902043905532146118e357326000908152600a602052604090204390555b505050565b6006546001600160a01b03831660009081526007602052604090205481906119119084906122f6565b11156118e35760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016108c1565b6001600160a01b03831660009081526007602052604081205461199190839061243d565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546119c19083906122f6565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a159086815260200190565b60405180910390a35060019392505050565b6001600160a01b03821660009081526017602052604081205460125460ff909116908290611a5483611044565b611a5e908661241e565b611a68919061230e565b30600090815260076020526040812080549293508392909190611a8c9084906122f6565b90915550611a9c9050818561243d565b95945050505050565b3360009081526017602052604081205460ff16158015611ac8575060265460ff16155b8015611ad6575060235460ff165b8015611afa57506001600160a01b03821660009081526017602052604090205460ff165b8015610877575060255430600090815260076020526040902054101592915050565b6026805460ff191660011790556024546000908210611b3d57602454611b3f565b815b30600090815260076020526040902054909150811115611b6b5750306000908152600760205260409020545b60006010546002600f5484611b80919061241e565b611b8a919061230e565b611b94919061230e565b9050611ba0818361243d565b60408051600280825260608201835292945060009290916020830190803683370190505090503081600081518110611bda57611bda61249c565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c2e57600080fd5b505afa158015611c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c669190611ed4565b81600181518110611c7957611c7961249c565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b81524792919091169063791ac94790611cc3908790600090879030904290600401612285565b600060405180830381600087803b158015611cdd57600080fd5b505af1158015611cf1573d6000803e3d6000fd5b5050505060008147611d03919061243d565b905060006002600f54611d16919061230e565b601054611d23919061243d565b90506000816002600f5485611d38919061241e565b611d42919061230e565b611d4c919061230e565b90506000611d5a828561243d565b90508015611d9e576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d9c573d6000803e3d6000fd5b505b8615611e4c5760155460135460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b158015611e0f57600080fd5b505af1158015611e23573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e489190612139565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506026805460ff1916905550505050505050565b80358015158114611eb257600080fd5b919050565b600060208284031215611ec957600080fd5b8135610ae7816124b2565b600060208284031215611ee657600080fd5b8151610ae7816124b2565b60008060408385031215611f0457600080fd5b8235611f0f816124b2565b91506020830135611f1f816124b2565b809150509250929050565b600080600060608486031215611f3f57600080fd5b8335611f4a816124b2565b92506020840135611f5a816124b2565b929592945050506040919091013590565b60008060408385031215611f7e57600080fd5b8235611f89816124b2565b9150611f9760208401611ea2565b90509250929050565b60008060408385031215611fb357600080fd5b8235611fbe816124b2565b946020939093013593505050565b600080600060408486031215611fe157600080fd5b833567ffffffffffffffff80821115611ff957600080fd5b818601915086601f83011261200d57600080fd5b81358181111561201c57600080fd5b8760208260051b850101111561203157600080fd5b6020928301955093506120479186019050611ea2565b90509250925092565b60006020828403121561206257600080fd5b610ae782611ea2565b6000806000806080858703121561208157600080fd5b61208a85611ea2565b935061209860208601611ea2565b93969395505050506040820135916060013590565b6000602082840312156120bf57600080fd5b5035919050565b600080604083850312156120d957600080fd5b823591506020830135611f1f816124b2565b600080604083850312156120fe57600080fd5b50508035926020909101359150565b60008060006060848603121561212257600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561214e57600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561217d57600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b039485168152929093166020830152604082015260ff909116606082015260800190565b600060208083528351808285015260005b818110156121f1578581018301518582016040015282016121d5565b81811115612203576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122d55784516001600160a01b0316835293830193918301916001016122b0565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561230957612309612486565b500190565b60008261232b57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561236b57816000190482111561235157612351612486565b8085161561235e57918102915b93841c9390800290612335565b509250929050565b6000610ae760ff84168360008261238c57506001610877565b8161239957506000610877565b81600181146123af57600281146123b9576123d5565b6001915050610877565b60ff8411156123ca576123ca612486565b50506001821b610877565b5060208310610133831016604e8410600b84101617156123f8575081810a610877565b6124028383612330565b806000190482111561241657612416612486565b029392505050565b600081600019048311821515161561243857612438612486565b500290565b60008282101561244f5761244f612486565b500390565b60008161246357612463612486565b506000190190565b600060001982141561247f5761247f612486565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146124c757600080fd5b5056fea26469706673582212208087492558b5e897a2322c5cd5186d45f3f2185dc52c633b3fbf1e330a388fbb64736f6c63430008070033
Deployed Bytecode Sourcemap
4009:12443:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5791:50;;;;;;;;;;;;;;;;;;;13198:25:1;;;13186:2;13171:18;5791:50:0;;;;;;;;7111:71;;;;;;;;;;-1:-1:-1;7174:5:0;;;;;;;;;;;;-1:-1:-1;;;7174:5:0;;;;7111:71;;;;;;;:::i;7816:187::-;;;;;;;;;;-1:-1:-1;7816:187:0;;;;;:::i;:::-;;:::i;:::-;;;7854:14:1;;7847:22;7829:41;;7817:2;7802:18;7816:187:0;7689::1;6872:88:0;;;;;;;;;;-1:-1:-1;6945:12:0;;6872:88;;9034:413;;;;;;;;;;-1:-1:-1;9034:413:0;;;;;:::i;:::-;;:::i;:::-;;7358:107;;;;;;;;;;;;;:::i;9594:297::-;;;;;;;;;;-1:-1:-1;9594:297:0;;;;;:::i;:::-;;:::i;16230:125::-;;;;;;;;;;;;;:::i;6961:71::-;;;;;;;;;;-1:-1:-1;6961:71:0;;4296:1;14685:36:1;;14673:2;14658:18;6961:71:0;14543:184:1;8421:318:0;;;;;;;;;;-1:-1:-1;8421:318:0;;;;;:::i;:::-;;:::i;3826:76::-;;;;;;;;;;-1:-1:-1;3874:7:0;3893:6;-1:-1:-1;;;;;3893:6:0;3826:76;;;-1:-1:-1;;;;;5394:32:1;;;5376:51;;5364:2;5349:18;3826:76:0;5230:203:1;5336:45:0;;;;;;;;;;-1:-1:-1;5336:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;15066:312;;;;;;;;;;-1:-1:-1;15066:312:0;;;;;:::i;:::-;;:::i;8741:94::-;;;;;;;;;;;;;:::i;15913:315::-;;;;;;;;;;-1:-1:-1;15913:315:0;;;;;:::i;:::-;;:::i;8226:193::-;;;;;;;;;;-1:-1:-1;8226:193:0;;;;;:::i;:::-;;:::i;8005:111::-;;;;;;;;;;-1:-1:-1;8005:111:0;;;;;:::i;:::-;;:::i;5586:27::-;;;;;;;;;;;;;;;;8837:90;;;;;;;;;;;;;:::i;8118:106::-;;;;;;;;;;-1:-1:-1;8118:106:0;;;;;:::i;:::-;;:::i;5697:28::-;;;;;;;;;;;;;;;;8929:103;;;;;;;;;;;;;:::i;7467:105::-;;;;;;;;;;;;;:::i;5728:31::-;;;;;;;;;;-1:-1:-1;5728:31:0;;;;;;;;4614:44;;;;;;;;;;-1:-1:-1;4614:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;15580:331;;;;;;;;;;-1:-1:-1;15580:331:0;;;;;:::i;:::-;;:::i;7574:105::-;;;;;;;;;;-1:-1:-1;7574:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7658:18:0;7640:7;7658:18;;;:9;:18;;;;;;;7574:105;7034:75;;;;;;;;;;-1:-1:-1;7099:7:0;;;;;;;;;;;;-1:-1:-1;;;7099:7:0;;;;7034:75;;5476:30;;;;;;;;;;;;;;;;5537:19;;;;;;;;;;-1:-1:-1;5537:19:0;;;;-1:-1:-1;;;;;5537:19:0;;;9449:143;;;;;;;;;;-1:-1:-1;9449:143:0;;;;;:::i;:::-;;:::i;15380:198::-;;;;;;;;;;-1:-1:-1;15380:198:0;;;;;:::i;:::-;;:::i;7184:65::-;;;;;;;;;;-1:-1:-1;7242:4:0;;-1:-1:-1;;;;;7242:4:0;7184:65;;7251:105;;;;;;;;;;;;;:::i;5559:25::-;;;;;;;;;;;;;;;;4998:97;;;;;;;;;;-1:-1:-1;4998:97:0;;;;-1:-1:-1;;;;;4998:97:0;;;4663:43;;;;;;;;;;-1:-1:-1;4663:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;14957:107;;;;;;;;;;-1:-1:-1;14957:107:0;;;;;:::i;:::-;;:::i;7681:133::-;;;;;;;;;;-1:-1:-1;7681:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7783:19:0;;;7765:7;7783:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7681:133;5098:97;;;;;;;;;;-1:-1:-1;5098:97:0;;;;-1:-1:-1;;;;;5098:97:0;;;13094:213;;;;;;;;;;-1:-1:-1;13094:213:0;;;;;:::i;:::-;;:::i;5843:49::-;;;;;;;;;;;;;;;;5198:24;;;;;;;;;;-1:-1:-1;5198:24:0;;;;-1:-1:-1;;;;;5198:24:0;;;5615:25;;;;;;;;;;;;;;;;7816:187;7911:10;7891:4;7899:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7899:32:0;;;;;;;;;;:41;;;7948:37;7891:4;;7899:32;;7948:37;;;;7934:6;13198:25:1;;13186:2;13171:18;;13052:177;7948:37:0;;;;;;;;-1:-1:-1;7995:4:0;7816:187;;;;;:::o;9034:413::-;2186:10;6037:24;;;;:10;:24;;;;;;;;;:59;;-1:-1:-1;3874:7:0;3893:6;-1:-1:-1;;;;;3893:6:0;6065:10;:31;6037:59;6029:99;;;;-1:-1:-1;;;6029:99:0;;;;;;;:::i;:::-;;;;;;;;;9122:9:::1;9118:47;;;9144:17;::::0;::::1;;9136:26;;;::::0;::::1;;9172:6;9167:277;9184:20:::0;;::::1;9167:277;;;9218:9;9214:171;;;9232:15;:17:::0;;;:15:::1;:17;::::0;::::1;:::i;:::-;;;;;;9257:57;9273:9;9284;;9294:1;9284:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9298;9312:1;9257:57;;;;;;;;;:::i;:::-;;;;;;;;9214:171;;;9334:9;:23;9344:9;;9354:1;9344:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9334:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9334:23:0;;:28;9330:51:::1;;9364:15;:17:::0;;;:15:::1;:17;::::0;::::1;:::i;:::-;;;;;;9330:51;9413:9;:28;;9440:1;9413:28;;;9425:12;9413:28;9387:9;:23;9397:9;;9407:1;9397:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9387:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9387:23:0;:54;9206:3;::::1;::::0;::::1;:::i;:::-;;;;9167:277;;;;9034:413:::0;;;:::o;7358:107::-;7408:7;7446:15;4296:1;7446:2;:15;:::i;:::-;7426:16;;:36;;;;:::i;:::-;7419:43;;7358:107;:::o;9594:297::-;-1:-1:-1;;;;;9706:19:0;;9694:4;9706:19;;;:11;:19;;;;;;;;9726:10;9706:31;;;;;;;;-1:-1:-1;;9706:52:0;9703:136;;-1:-1:-1;;;;;9795:19:0;;;;;;:11;:19;;;;;;;;9815:10;9795:31;;;;;;;;:40;;9829:6;;9795:40;:::i;:::-;-1:-1:-1;;;;;9761:19:0;;;;;;:11;:19;;;;;;;;9781:10;9761:31;;;;;;;:74;9703:136;9848:40;9862:6;9870:9;9881:6;9848:13;:40::i;:::-;9841:47;;9594:297;;;;;;:::o;16230:125::-;16345:4;;-1:-1:-1;;;;;16345:4:0;;;16283:7;7658:18;;;:9;:18;;;;;;;16327:4;;;;;7658:18;;;;;16283:7;;16317:33;;;:::i;:::-;16301:12;;:50;;;;:::i;8421:318::-;2186:10;6037:24;;;;:10;:24;;;;;;;;;:59;;-1:-1:-1;3874:7:0;3893:6;-1:-1:-1;;;;;3893:6:0;6065:10;:31;6037:59;6029:99;;;;-1:-1:-1;;;6029:99:0;;;;;;;:::i;:::-;8530:12:::1;::::0;::::1;;8529:13;:33:::0;::::1;;;;8560:2;8546:11;:16;8529:33;8521:42;;;::::0;::::1;;8565:10;:24:::0;;;8592:12:::1;:19:::0;;-1:-1:-1;;8592:19:0::1;8607:4;8592:19;::::0;;8627:12:::1;8614:10;:25:::0;8660:29:::1;8678:11:::0;8660:15:::1;:29;:::i;:::-;8642:15;:47:::0;8719:15:::1;4296:1;8719:2;:15;:::i;:::-;8709:26;::::0;:6;:26:::1;:::i;:::-;8691:15;:44:::0;-1:-1:-1;;;8421:318:0:o;15066:312::-;3936:6;;-1:-1:-1;;;;;3936:6:0;2186:10;3936:22;3928:67;;;;-1:-1:-1;;;3928:67:0;;;;;;;:::i;:::-;15195:1:::1;15180:12;:16;:37;;;;;15216:1;15200:13;:17;15180:37;:52;;;;;15231:1;15221:7;:11;15180:52;:72;;;;;15247:5;15236:7;:16;;15180:72;15172:81;;;::::0;::::1;;15305:7;15289:12;15274;;:27;;;;:::i;:::-;15273:39;;;;:::i;:::-;15255:15;:57:::0;15335:12:::1;::::0;15367:7;;15335:28:::1;::::0;15350:13;;15335:28:::1;:::i;:::-;15334:40;;;;:::i;:::-;15315:16;:59:::0;-1:-1:-1;;;15066:312:0:o;8741:94::-;2186:10;6037:24;;;;:10;:24;;;;;;;;;:59;;-1:-1:-1;3874:7:0;3893:6;-1:-1:-1;;;;;3893:6:0;6065:10;:31;6037:59;6029:99;;;;-1:-1:-1;;;6029:99:0;;;;;;;:::i;:::-;8795:13:::1;::::0;::::1;::::0;::::1;;;8794:14;8786:23;;;::::0;::::1;;8812:12;:20:::0;;-1:-1:-1;;8812:20:0::1;::::0;;8741:94::o;15913:315::-;3936:6;;-1:-1:-1;;;;;3936:6:0;2186:10;3936:22;3928:67;;;;-1:-1:-1;;;3928:67:0;;;;;;;:::i;:::-;16068:1:::1;16053:12;:16;16045:25;;;::::0;::::1;;16072:11;:22:::0;;-1:-1:-1;;16096:32:0;16072:22;::::1;;-1:-1:-1::0;;16096:32:0;;16072:22:::1;16096:32:::0;::::1;;;;::::0;;16149:12:::1;::::0;:27:::1;::::0;16164:12;;16149:27:::1;:::i;:::-;16133:13;:43:::0;16209:15:::1;4296:1;16209:2;:15;:::i;:::-;16193:32;::::0;:12;:32:::1;:::i;:::-;16179:11;:46:::0;-1:-1:-1;;;;15913:315:0:o;8226:193::-;2186:10;6037:24;;;;:10;:24;;;;;;;;;:59;;-1:-1:-1;3874:7:0;3893:6;-1:-1:-1;;;;;3893:6:0;6065:10;:31;6037:59;6029:99;;;;-1:-1:-1;;;6029:99:0;;;;;;;:::i;:::-;8332:21:::1;-1:-1:-1::0;;;;;8356:21:0;::::1;:59;8411:3;8379:28;8391:16:::0;8332:21;8379:28:::1;:::i;:::-;8378:36;;;;:::i;:::-;8356:59;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;8005:111:::0;8060:4;8078:35;8086:7;-1:-1:-1;;8078:7:0;:35::i;8837:90::-;2186:10;6037:24;;;;:10;:24;;;;;;;;;:59;;-1:-1:-1;3874:7:0;3893:6;-1:-1:-1;;;;;3893:6:0;6065:10;:31;6037:59;6029:99;;;;-1:-1:-1;;;6029:99:0;;;;;;;:::i;:::-;8881:13:::1;:20:::0;;-1:-1:-1;;8904:19:0;;;;;8837:90::o;8118:106::-;3936:6;;-1:-1:-1;;;;;3936:6:0;2186:10;3936:22;3928:67;;;;-1:-1:-1;;;3928:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8192:17:0;;;::::1;;::::0;;;:10:::1;:17;::::0;;;;:28;;-1:-1:-1;;8192:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8118:106::o;8929:103::-;2186:10;6037:24;;;;:10;:24;;;;;;;;;:59;;-1:-1:-1;3874:7:0;3893:6;-1:-1:-1;;;;;3893:6:0;6065:10;:31;6037:59;6029:99;;;;-1:-1:-1;;;6029:99:0;;;;;;;:::i;:::-;8976:18:::1;:25:::0;;-1:-1:-1;;9003:25:0;8976::::1;9003::::0;;;8929:103::o;7467:105::-;7517:7;7553:15;4296:1;7553:2;:15;:::i;:::-;7535:14;;:34;;;;:::i;15580:331::-;3936:6;;-1:-1:-1;;;;;3936:6:0;2186:10;3936:22;3928:67;;;;-1:-1:-1;;;3928:67:0;;;;;;;:::i;:::-;15709:12:::1;:28:::0;;;15739:12:::1;:28:::0;;;15781:29:::1;15724:13:::0;15754;15781:29:::1;:::i;:::-;15770:8;:40:::0;15812:8:::1;:20:::0;;;15835:14:::1;:32:::0;;;15888:18:::1;15905:1;15852:15:::0;15888:18:::1;:::i;:::-;15877:8;;:29;15869:38;;;::::0;::::1;9449:143:::0;9529:4;9544:44;9558:10;9570:9;9581:6;9544:13;:44::i;15380:198::-;3936:6;;-1:-1:-1;;;;;3936:6:0;2186:10;3936:22;3928:67;;;;-1:-1:-1;;;3928:67:0;;;;;;;:::i;:::-;15481:1:::1;15469:9;:13;:28;;;;;15496:1;15486:7;:11;15469:28;:48;;;;;15512:5;15501:7;:16;;15469:48;15461:57;;;::::0;::::1;;15567:7;15554:9;15539:12;;:24;;;;:::i;:::-;15538:36;;;;:::i;:::-;15521:14;:53:::0;-1:-1:-1;;15380:198:0:o;7251:105::-;7300:7;7337:15;4296:1;7337:2;:15;:::i;:::-;7318;;:35;;;;:::i;14957:107::-;3936:6;;-1:-1:-1;;;;;3936:6:0;2186:10;3936:22;3928:67;;;;-1:-1:-1;;;3928:67:0;;;;;;;:::i;:::-;15030:10:::1;15022:4;:18;;15014:27;;;::::0;::::1;;15044:9;:16:::0;14957:107::o;13094:213::-;13150:7;13191:12;13177:10;;13164;;:23;;;;:::i;:::-;:39;13161:73;;13230:1;13213:14;;:18;;;;:::i;13161:73::-;13239:7;13235:39;;;13266:8;;13255;;:19;;;;:::i;13235:39::-;13295:8;;13284;;:19;;;;:::i;9893:1415::-;9985:4;-1:-1:-1;;;;;10004:20:0;;9996:57;;;;-1:-1:-1;;;9996:57:0;;10013:2:1;9996:57:0;;;9995:21:1;10052:2;10032:18;;;10025:30;10091:26;10071:18;;;10064:54;10135:18;;9996:57:0;9811:348:1;9996:57:0;-1:-1:-1;;;;;10064:23:0;;10056:58;;;;-1:-1:-1;;;10056:58:0;;10366:2:1;10056:58:0;;;10348:21:1;10405:2;10385:18;;;10378:30;-1:-1:-1;;;10424:18:1;;;10417:52;10486:18;;10056:58:0;10164:346:1;10056:58:0;10134:1;10125:6;:10;10117:44;;;;-1:-1:-1;;;10117:44:0;;8911:2:1;10117:44:0;;;8893:21:1;8950:2;8930:18;;;8923:30;-1:-1:-1;;;8969:18:1;;;8962:51;9030:18;;10117:44:0;8709:345:1;10117:44:0;-1:-1:-1;;;;;10172:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;10172:27:0;10164:60;;;;-1:-1:-1;;;10164:60:0;;10717:2:1;10164:60:0;;;10699:21:1;10756:2;10736:18;;;10729:30;-1:-1:-1;;;10775:18:1;;;10768:50;10835:18;;10164:60:0;10515:344:1;10164:60:0;11368:10;;:15;;;10230:40;;-1:-1:-1;;;;;;10245:25:0;;;;;;:14;:25;;;;;;;;10230:40;10227:120;;;-1:-1:-1;;;;;10281:24:0;;;;;;:16;:24;;;;;;;;10273:61;;;;-1:-1:-1;;;10273:61:0;;11780:2:1;10273:61:0;;;11762:21:1;11819:2;11799:18;;;11792:30;11858:26;11838:18;;;11831:54;11902:18;;10273:61:0;11578:348:1;10273:61:0;10336:8;11431:12;11418:10;:25;11460:15;11445:12;:30;11477:11;:18;;-1:-1:-1;;11477:18:0;11491:4;11477:18;;;11389:110;10336:8;10353:12;;;;10349:111;;-1:-1:-1;;;;;10376:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;10404:27:0;;;;;;:16;:27;;;;;;;;10376:55;10368:89;;;;-1:-1:-1;;;10368:89:0;;12904:2:1;10368:89:0;;;12886:21:1;12943:2;12923:18;;;12916:30;-1:-1:-1;;;12962:18:1;;;12955:51;13023:18;;10368:89:0;12702:345:1;10368:89:0;10462:39;10475:6;10483:9;10494:6;10462:12;:39::i;:::-;-1:-1:-1;;;;;10509:25:0;;;;;;:14;:25;;;;;;;;10508:26;:47;;;;-1:-1:-1;10551:4:0;;-1:-1:-1;;;;;10538:17:0;;;10551:4;;10538:17;;10508:47;10504:132;;;-1:-1:-1;;;;;10564:26:0;;;;;;:15;:26;;;;;;;;10559:74;;10595:35;10612:9;10623:6;10595:16;:35::i;:::-;10641:17;;;;:54;;;;;10680:15;10662;;:33;10641:54;10638:269;;;-1:-1:-1;;;;;10702:22:0;;;;;;:14;:22;;;;;;;;:48;;;;-1:-1:-1;10728:9:0;-1:-1:-1;;;;;10728:22:0;;;;10702:48;:77;;;;-1:-1:-1;;;;;;10754:20:0;;;;;;:9;:20;;;;;;:25;10702:77;10699:206;;;-1:-1:-1;;;;;10784:20:0;;;;;;:9;:20;;;;;10807:12;10784:35;;10822:15;:17;;;;;;:::i;:::-;;;;;;10847:54;10863:9;10874;10885:12;10899:1;10847:54;;;;;;;;;:::i;:::-;;;;;;;;10699:206;10914:6;;;;10911:63;;;10930:41;10945:6;10953:9;10964:6;10930:14;:41::i;:::-;10923:48;;;;10911:63;-1:-1:-1;;;;;10996:17:0;;;;;;:9;:17;;;;;;:26;;11016:6;;10996:26;:::i;:::-;-1:-1:-1;;;;;10976:17:0;;;;;;:9;:17;;;;;;;;:46;;;;13069:11;:19;;;;;;;;13068:20;11050:59;;11103:6;11050:59;;;11074:26;11082:9;11093:6;11074:7;:26::i;:::-;11025:84;;11115:25;11130:9;11115:14;:25::i;:::-;11112:66;;;11147:10;;11143:32;;11159:16;11168:6;11159:8;:16::i;:::-;-1:-1:-1;;;;;11203:20:0;;;;;;:9;:20;;;;;;:37;;11226:14;;11203:37;:::i;:::-;-1:-1:-1;;;;;11180:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11248:43;;;;;;;;;;11276:14;13198:25:1;;13186:2;13171:18;;13052:177;11248:43:0;;;;;;;;-1:-1:-1;11301:4:0;;9893:1415;-1:-1:-1;;;;9893:1415:0:o;11984:1005::-;-1:-1:-1;;;;;12077:23:0;;;;;;:15;:23;;;;;;;;;:98;;-1:-1:-1;;;;;;12115:22:0;;;;;;:14;:22;;;;;;;;:59;;12158:16;;12115:59;;;12140:15;;12115:59;12104:6;:71;;12077:98;12069:128;;;;-1:-1:-1;;;12069:128:0;;9667:2:1;12069:128:0;;;9649:21:1;9706:2;9686:18;;;9679:30;-1:-1:-1;;;9725:18:1;;;9718:47;9782:18;;12069:128:0;9465:341:1;12069:128:0;-1:-1:-1;;;;;12208:23:0;;;;;;:15;:23;;;;;;;;;:73;;-1:-1:-1;12256:9:0;;-1:-1:-1;;;;;12235:18:0;;;;;;:7;:18;;;;;;12269:12;;12235:30;;;:::i;:::-;:46;;12208:73;12200:115;;;;-1:-1:-1;;;12200:115:0;;11422:2:1;12200:115:0;;;11404:21:1;11461:2;11441:18;;;11434:30;11500:31;11480:18;;;11473:59;11549:18;;12200:115:0;11220:353:1;12200:115:0;-1:-1:-1;;;;;12322:17:0;;;;;;:9;:17;;;;;;:22;12318:228;;12385:15;4296:1;12385:2;:15;:::i;:::-;12366;;:35;;;;:::i;:::-;12356:6;:45;;:70;;;;-1:-1:-1;;;;;;12405:16:0;;;;;;:8;:16;;;;;;:21;12356:70;:107;;;;;12448:15;12430;;:33;12356:107;12348:161;;;;-1:-1:-1;;;12348:161:0;;12133:2:1;12348:161:0;;;12115:21:1;12172:2;12152:18;;;12145:30;12211:34;12191:18;;;12184:62;-1:-1:-1;;;12262:18:1;;;12255:39;12311:19;;12348:161:0;11931:405:1;12348:161:0;-1:-1:-1;;;;;12512:16:0;;;;;;:8;:16;;;;;12531:12;12512:31;;12318:228;-1:-1:-1;;;;;12554:25:0;;;;;;:14;:25;;;;;;;;12550:436;;;-1:-1:-1;;;;;;;12583:16:0;;;;;:8;:16;;;;;12602:12;12583:31;;11984:1005::o;12550:436::-;-1:-1:-1;;;;;13069:19:0;;13053:4;13069:19;;;:11;:19;;;;;;;;12624:362;;12658:17;;;;:54;;;;;12697:15;12679;;:33;12658:54;:92;;;;-1:-1:-1;12724:9:0;12716:18;;;;:7;:18;;;;;;12738:12;12716:34;12658:92;:121;;;;-1:-1:-1;;;;;;12754:20:0;;;;;;:9;:20;;;;;;:25;12658:121;12654:230;;;-1:-1:-1;;;;;12784:20:0;;;;;;:9;:20;;;;;;;12807:12;12784:35;;;;12827:54;;;;;;12843:9;;12794;;12879:1;;12827:54;:::i;:::-;;;;;;;;12654:230;-1:-1:-1;;;;;12886:18:0;;;;;;:7;:18;;;;;12907:12;12886:33;;12925:9;:22;12921:62;;12958:9;12950:18;;;;:7;:18;;;;;12971:12;12950:33;;12921:62;11984:1005;;;:::o;11767:215::-;11867:14;;-1:-1:-1;;;;;11892:20:0;;11845:19;11892:20;;;:9;:20;;;;;;11867:14;;11892:29;;11915:6;;11892:29;:::i;:::-;:44;;11884:94;;;;-1:-1:-1;;;11884:94:0;;9261:2:1;11884:94:0;;;9243:21:1;9300:2;9280:18;;;9273:30;9339:34;9319:18;;;9312:62;-1:-1:-1;;;9390:18:1;;;9383:35;9435:19;;11884:94:0;9059:401:1;11503:262:0;-1:-1:-1;;;;;11625:17:0;;11596:4;11625:17;;;:9;:17;;;;;;:26;;11645:6;;11625:26;:::i;:::-;-1:-1:-1;;;;;11605:17:0;;;;;;;:9;:17;;;;;;:46;;;;11676:20;;;;;;;:29;;11699:6;;11676:29;:::i;:::-;-1:-1:-1;;;;;11653:20:0;;;;;;;:9;:20;;;;;;;:52;;;;11712:35;;;;;;;;;;11740:6;13198:25:1;;13186:2;13171:18;;13052:177;11712:35:0;;;;;;;;-1:-1:-1;11757:4:0;11503:262;;;;;:::o;13311:263::-;-1:-1:-1;;;;;13407:25:0;;13381:7;13407:25;;;:14;:25;;;;;;13489:14;;13407:25;;;;;13381:7;;13465:20;13407:25;13465:11;:20::i;:::-;13456:29;;:6;:29;:::i;:::-;13455:48;;;;:::i;:::-;13524:4;13506:24;;;;:9;:24;;;;;:37;;13435:68;;-1:-1:-1;13435:68:0;;13506:24;;;:37;;13435:68;;13506:37;:::i;:::-;;;;-1:-1:-1;13553:18:0;;-1:-1:-1;13562:9:0;13553:6;:18;:::i;:::-;13546:25;13311:263;-1:-1:-1;;;;;13311:263:0:o;13576:213::-;13673:10;13642:4;13658:26;;;:14;:26;;;;;;;;13657:27;:39;;;;-1:-1:-1;13690:6:0;;;;13689:7;13657:39;:55;;;;-1:-1:-1;13701:11:0;;;;13657:55;:85;;;;-1:-1:-1;;;;;;13717:25:0;;;;;;:14;:25;;;;;;;;13657:85;:129;;;;-1:-1:-1;13775:11:0;;13765:4;13747:24;;;;:9;:24;;;;;;:39;;13650:136;13576:213;-1:-1:-1;;13576:213:0:o;13791:1164::-;5930:6;:13;;-1:-1:-1;;5930:13:0;5939:4;5930:13;;;13878::::1;::::0;5930:6;;13869:22;::::1;:47;;13903:13;;13869:47;;;13894:6;13869:47;13941:4;13923:24;::::0;;;:9:::1;:24;::::0;;;;;13846:70;;-1:-1:-1;13923:39:0;-1:-1:-1;13919:84:0::1;;;-1:-1:-1::0;13997:4:0::1;13979:24;::::0;;;:9:::1;:24;::::0;;;;;13919:84:::1;14006:23;14068:8;;14063:1;14048:12;;14033;:27;;;;:::i;:::-;:31;;;;:::i;:::-;14032:44;;;;:::i;:::-;14006:70:::0;-1:-1:-1;14081:31:0::1;14006:70:::0;14081:31;::::1;:::i;:::-;14139:16;::::0;;14153:1:::1;14139:16:::0;;;;;::::1;::::0;;14081:31;;-1:-1:-1;14115:21:0::1;::::0;14139:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14139:16:0::1;14115:40;;14175:4;14157;14162:1;14157:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14157:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14193:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;14193:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;14157:7;;14193:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14183:4;14188:1;14183:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14183:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14257:6:::1;::::0;:118:::1;::::0;-1:-1:-1;;;14257:118:0;;14233:21:::1;::::0;14257:6;;;::::1;::::0;:57:::1;::::0;:118:::1;::::0;14316:12;;14209:21:::1;::::0;14335:4;;14350::::1;::::0;14358:15:::1;::::0;14257:118:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14378:17;14422:13;14398:21;:37;;;;:::i;:::-;14378:57;;14437:19;14486:1;14471:12;;:16;;;;:::i;:::-;14459:8;;:29;;;;:::i;:::-;14437:51;;14491:26;14553:11;14548:1;14533:12;;14521:9;:24;;;;:::i;:::-;:28;;;;:::i;:::-;14520:44;;;;:::i;:::-;14491:73:::0;-1:-1:-1;14566:26:0::1;14595:30;14491:73:::0;14595:9;:30:::1;:::i;:::-;14566:59:::0;-1:-1:-1;14632:22:0;;14628:80:::1;;14659:20;::::0;:49:::1;::::0;-1:-1:-1;;;;;14659:20:0;;::::1;::::0;:49;::::1;;;::::0;14689:18;;14659:20:::1;:49:::0;:20;:49;14689:18;14659:20;:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14628:80;14714:19:::0;;14711:161:::1;;14737:6;::::0;14829:20:::1;::::0;14737:132:::1;::::0;-1:-1:-1;;;14737:132:0;;14797:4:::1;14737:132;::::0;::::1;7418:34:1::0;7468:18;;;7461:34;;;14737:6:0::1;7511:18:1::0;;;7504:34;;;7554:18;;;7547:34;-1:-1:-1;;;;;14829:20:0;;::::1;7597:19:1::0;;;7590:44;14851:15:0::1;7650:19:1::0;;;7643:35;14737:6:0;::::1;::::0;:22:::1;::::0;14767:18;;7352:19:1;;14737:132:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14711:161;14879:73;::::0;;14421:25:1;;;14477:2;14462:18;;14455:34;;;14505:18;;;14498:34;;;14879:73:0::1;::::0;14409:2:1;14394:18;14879:73:0::1;;;;;;;-1:-1:-1::0;;5948:6:0;:14;;-1:-1:-1;;5948:14:0;;;-1:-1:-1;;;;;;;13791:1164:0:o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;602:9;596:16;621:31;646:5;621:31;:::i;687:388::-;755:6;763;816:2;804:9;795:7;791:23;787:32;784:52;;;832:1;829;822:12;784:52;871:9;858:23;890:31;915:5;890:31;:::i;:::-;940:5;-1:-1:-1;997:2:1;982:18;;969:32;1010:33;969:32;1010:33;:::i;:::-;1062:7;1052:17;;;687:388;;;;;:::o;1080:456::-;1157:6;1165;1173;1226:2;1214:9;1205:7;1201:23;1197:32;1194:52;;;1242:1;1239;1232:12;1194:52;1281:9;1268:23;1300:31;1325:5;1300:31;:::i;:::-;1350:5;-1:-1:-1;1407:2:1;1392:18;;1379:32;1420:33;1379:32;1420:33;:::i;:::-;1080:456;;1472:7;;-1:-1:-1;;;1526:2:1;1511:18;;;;1498:32;;1080:456::o;1541:315::-;1606:6;1614;1667:2;1655:9;1646:7;1642:23;1638:32;1635:52;;;1683:1;1680;1673:12;1635:52;1722:9;1709:23;1741:31;1766:5;1741:31;:::i;:::-;1791:5;-1:-1:-1;1815:35:1;1846:2;1831:18;;1815:35;:::i;:::-;1805:45;;1541:315;;;;;:::o;1861:::-;1929:6;1937;1990:2;1978:9;1969:7;1965:23;1961:32;1958:52;;;2006:1;2003;1996:12;1958:52;2045:9;2032:23;2064:31;2089:5;2064:31;:::i;:::-;2114:5;2166:2;2151:18;;;;2138:32;;-1:-1:-1;;;1861:315:1:o;2181:689::-;2273:6;2281;2289;2342:2;2330:9;2321:7;2317:23;2313:32;2310:52;;;2358:1;2355;2348:12;2310:52;2398:9;2385:23;2427:18;2468:2;2460:6;2457:14;2454:34;;;2484:1;2481;2474:12;2454:34;2522:6;2511:9;2507:22;2497:32;;2567:7;2560:4;2556:2;2552:13;2548:27;2538:55;;2589:1;2586;2579:12;2538:55;2629:2;2616:16;2655:2;2647:6;2644:14;2641:34;;;2671:1;2668;2661:12;2641:34;2726:7;2719:4;2709:6;2706:1;2702:14;2698:2;2694:23;2690:34;2687:47;2684:67;;;2747:1;2744;2737:12;2684:67;2778:4;2770:13;;;;-1:-1:-1;2802:6:1;-1:-1:-1;2827:37:1;;2843:20;;;-1:-1:-1;2827:37:1;:::i;:::-;2817:47;;2181:689;;;;;:::o;2875:180::-;2931:6;2984:2;2972:9;2963:7;2959:23;2955:32;2952:52;;;3000:1;2997;2990:12;2952:52;3023:26;3039:9;3023:26;:::i;3060:385::-;3140:6;3148;3156;3164;3217:3;3205:9;3196:7;3192:23;3188:33;3185:53;;;3234:1;3231;3224:12;3185:53;3257:26;3273:9;3257:26;:::i;:::-;3247:36;;3302:35;3333:2;3322:9;3318:18;3302:35;:::i;:::-;3060:385;;3292:45;;-1:-1:-1;;;;3384:2:1;3369:18;;3356:32;;3435:2;3420:18;3407:32;;3060:385::o;3450:180::-;3509:6;3562:2;3550:9;3541:7;3537:23;3533:32;3530:52;;;3578:1;3575;3568:12;3530:52;-1:-1:-1;3601:23:1;;3450:180;-1:-1:-1;3450:180:1:o;3635:315::-;3703:6;3711;3764:2;3752:9;3743:7;3739:23;3735:32;3732:52;;;3780:1;3777;3770:12;3732:52;3816:9;3803:23;3793:33;;3876:2;3865:9;3861:18;3848:32;3889:31;3914:5;3889:31;:::i;3955:248::-;4023:6;4031;4084:2;4072:9;4063:7;4059:23;4055:32;4052:52;;;4100:1;4097;4090:12;4052:52;-1:-1:-1;;4123:23:1;;;4193:2;4178:18;;;4165:32;;-1:-1:-1;3955:248:1:o;4208:316::-;4285:6;4293;4301;4354:2;4342:9;4333:7;4329:23;4325:32;4322:52;;;4370:1;4367;4360:12;4322:52;-1:-1:-1;;4393:23:1;;;4463:2;4448:18;;4435:32;;-1:-1:-1;4514:2:1;4499:18;;;4486:32;;4208:316;-1:-1:-1;4208:316:1:o;4529:306::-;4617:6;4625;4633;4686:2;4674:9;4665:7;4661:23;4657:32;4654:52;;;4702:1;4699;4692:12;4654:52;4731:9;4725:16;4715:26;;4781:2;4770:9;4766:18;4760:25;4750:35;;4825:2;4814:9;4810:18;4804:25;4794:35;;4529:306;;;;;:::o;4840:385::-;4926:6;4934;4942;4950;5003:3;4991:9;4982:7;4978:23;4974:33;4971:53;;;5020:1;5017;5010:12;4971:53;-1:-1:-1;;5043:23:1;;;5113:2;5098:18;;5085:32;;-1:-1:-1;5164:2:1;5149:18;;5136:32;;5215:2;5200:18;5187:32;;-1:-1:-1;4840:385:1;-1:-1:-1;4840:385:1:o;5662:464::-;-1:-1:-1;;;;;5955:15:1;;;5937:34;;6007:15;;;;6002:2;5987:18;;5980:43;6054:2;6039:18;;6032:34;6114:4;6102:17;;;6097:2;6082:18;;6075:45;5886:3;5871:19;;5662:464::o;8107:597::-;8219:4;8248:2;8277;8266:9;8259:21;8309:6;8303:13;8352:6;8347:2;8336:9;8332:18;8325:34;8377:1;8387:140;8401:6;8398:1;8395:13;8387:140;;;8496:14;;;8492:23;;8486:30;8462:17;;;8481:2;8458:26;8451:66;8416:10;;8387:140;;;8545:6;8542:1;8539:13;8536:91;;;8615:1;8610:2;8601:6;8590:9;8586:22;8582:31;8575:42;8536:91;-1:-1:-1;8688:2:1;8667:15;-1:-1:-1;;8663:29:1;8648:45;;;;8695:2;8644:54;;8107:597;-1:-1:-1;;;8107:597:1:o;10864:351::-;11066:2;11048:21;;;11105:2;11085:18;;;11078:30;11144:29;11139:2;11124:18;;11117:57;11206:2;11191:18;;10864:351::o;12341:356::-;12543:2;12525:21;;;12562:18;;;12555:30;12621:34;12616:2;12601:18;;12594:62;12688:2;12673:18;;12341:356::o;13234:980::-;13496:4;13544:3;13533:9;13529:19;13575:6;13564:9;13557:25;13601:2;13639:6;13634:2;13623:9;13619:18;13612:34;13682:3;13677:2;13666:9;13662:18;13655:31;13706:6;13741;13735:13;13772:6;13764;13757:22;13810:3;13799:9;13795:19;13788:26;;13849:2;13841:6;13837:15;13823:29;;13870:1;13880:195;13894:6;13891:1;13888:13;13880:195;;;13959:13;;-1:-1:-1;;;;;13955:39:1;13943:52;;14050:15;;;;14015:12;;;;13991:1;13909:9;13880:195;;;-1:-1:-1;;;;;;;14131:32:1;;;;14126:2;14111:18;;14104:60;-1:-1:-1;;;14195:3:1;14180:19;14173:35;14092:3;13234:980;-1:-1:-1;;;13234:980:1:o;14732:128::-;14772:3;14803:1;14799:6;14796:1;14793:13;14790:39;;;14809:18;;:::i;:::-;-1:-1:-1;14845:9:1;;14732:128::o;14865:217::-;14905:1;14931;14921:132;;14975:10;14970:3;14966:20;14963:1;14956:31;15010:4;15007:1;15000:15;15038:4;15035:1;15028:15;14921:132;-1:-1:-1;15067:9:1;;14865:217::o;15087:422::-;15176:1;15219:5;15176:1;15233:270;15254:7;15244:8;15241:21;15233:270;;;15313:4;15309:1;15305:6;15301:17;15295:4;15292:27;15289:53;;;15322:18;;:::i;:::-;15372:7;15362:8;15358:22;15355:55;;;15392:16;;;;15355:55;15471:22;;;;15431:15;;;;15233:270;;;15237:3;15087:422;;;;;:::o;15514:140::-;15572:5;15601:47;15642:4;15632:8;15628:19;15622:4;15708:5;15738:8;15728:80;;-1:-1:-1;15779:1:1;15793:5;;15728:80;15827:4;15817:76;;-1:-1:-1;15864:1:1;15878:5;;15817:76;15909:4;15927:1;15922:59;;;;15995:1;15990:130;;;;15902:218;;15922:59;15952:1;15943:10;;15966:5;;;15990:130;16027:3;16017:8;16014:17;16011:43;;;16034:18;;:::i;:::-;-1:-1:-1;;16090:1:1;16076:16;;16105:5;;15902:218;;16204:2;16194:8;16191:16;16185:3;16179:4;16176:13;16172:36;16166:2;16156:8;16153:16;16148:2;16142:4;16139:12;16135:35;16132:77;16129:159;;;-1:-1:-1;16241:19:1;;;16273:5;;16129:159;16320:34;16345:8;16339:4;16320:34;:::i;:::-;16390:6;16386:1;16382:6;16378:19;16369:7;16366:32;16363:58;;;16401:18;;:::i;:::-;16439:20;;15659:806;-1:-1:-1;;;15659:806:1:o;16470:168::-;16510:7;16576:1;16572;16568:6;16564:14;16561:1;16558:21;16553:1;16546:9;16539:17;16535:45;16532:71;;;16583:18;;:::i;:::-;-1:-1:-1;16623:9:1;;16470:168::o;16643:125::-;16683:4;16711:1;16708;16705:8;16702:34;;;16716:18;;:::i;:::-;-1:-1:-1;16753:9:1;;16643:125::o;16773:136::-;16812:3;16840:5;16830:39;;16849:18;;:::i;:::-;-1:-1:-1;;;16885:18:1;;16773:136::o;16914:135::-;16953:3;-1:-1:-1;;16974:17:1;;16971:43;;;16994:18;;:::i;:::-;-1:-1:-1;17041:1:1;17030:13;;16914:135::o;17054:127::-;17115:10;17110:3;17106:20;17103:1;17096:31;17146:4;17143:1;17136:15;17170:4;17167:1;17160:15;17186:127;17247:10;17242:3;17238:20;17235:1;17228:31;17278:4;17275:1;17268:15;17302:4;17299:1;17292:15;17450:131;-1:-1:-1;;;;;17525:31:1;;17515:42;;17505:70;;17571:1;17568;17561:12;17505:70;17450:131;:::o
Swarm Source
ipfs://8087492558b5e897a2322c5cd5186d45f3f2185dc52c633b3fbf1e330a388fbb
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.