Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 SHIBURNAI
Holders
15
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
925,819.673782558 SHIBURNAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SHIBURNIUMAI
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-13 */ /** https://t.me/ShiBurniumAI */ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;} function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;} function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;} function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;} function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;} function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}} function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b > a) return(false, 0); return(true, a - b);}} function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if (a == 0) return(true, 0); uint256 c = a * b; if(c / a != b) return(false, 0); return(true, c);}} function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b == 0) return(false, 0); return(true, a / b);}} function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b == 0) return(false, 0); return(true, a % b);}} function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b <= a, errorMessage); return a - b;}} function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b > 0, errorMessage); return a / b;}} function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b > 0, errorMessage); return a % b;}}} interface IERC20 { function totalSupply() external view returns (uint256); function circulatingSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value);} abstract contract Ownable { address internal owner; constructor(address _owner) {owner = _owner;} modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;} function isOwner(address account) public view returns (bool) {return account == owner;} function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);} event OwnershipTransferred(address owner); } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract SHIBURNIUMAI is IERC20, Ownable { using SafeMath for uint256; string private constant _name = 'SHIBURNIUM AI'; string private constant _symbol = 'SHIBURNAI'; uint8 private constant _decimals = 9; uint256 private _totalSupply = 100000000 * (10 ** _decimals); uint256 private _maxTxAmount = ( _totalSupply * 200 ) / 10000; uint256 private _maxSellAmount = ( _totalSupply * 100 ) / 10000; uint256 private _maxWalletToken = ( _totalSupply * 300 ) / 10000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isDividendExempt; mapping (address => bool) private isBot; IRouter router; address public pair; bool private tradingAllowed = false; uint256 private liquidityFee = 0; uint256 private marketingFee = 200; uint256 private rewardsFee = 0; uint256 private developmentFee = 500; uint256 private burnFee = 0; uint256 private totalFee = 1000; uint256 private sellFee = 5000; uint256 private transferFee = 0; uint256 private denominator = 10000; bool private swapEnabled = true; uint256 private swapTimes; bool private swapping; uint256 private swapThreshold = ( _totalSupply * 900 ) / 100000; uint256 private _minTokenAmount = ( _totalSupply * 10 ) / 100000; modifier lockTheSwap {swapping = true; _; swapping = false;} address public reward = 0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 internal dividendsPerShare; uint256 internal dividendsPerShareAccuracyFactor = 10 ** 36; address[] shareholders; mapping (address => uint256) shareholderIndexes; mapping (address => uint256) shareholderClaims; struct Share {uint256 amount; uint256 totalExcluded; uint256 totalRealised; } mapping (address => Share) public shares; uint256 internal currentIndex; uint256 public minPeriod = 60 minutes; uint256 public minDistribution = 1 * (10 ** 16); uint256 public distributorGas = 0; function _claimDividend() external {distributeDividend(msg.sender);} address internal constant DEAD = 0x000000000000000000000000000000000000dEaD; address internal constant development_receiver = 0xeB67474Bc32b8E6583135D45B4F288B17C1eaf79; address internal constant marketing_receiver = 0xeB67474Bc32b8E6583135D45B4F288B17C1eaf79; address internal constant liquidity_receiver = 0xeB67474Bc32b8E6583135D45B4F288B17C1eaf79; constructor() Ownable(msg.sender) { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; isFeeExempt[address(this)] = true; isFeeExempt[liquidity_receiver] = true; isFeeExempt[marketing_receiver] = true; isFeeExempt[msg.sender] = true; isDividendExempt[address(pair)] = true; isDividendExempt[address(msg.sender)] = true; isDividendExempt[address(this)] = true; isDividendExempt[address(DEAD)] = true; isDividendExempt[address(0)] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() public pure returns (string memory) {return _name;} function symbol() public pure returns (string memory) {return _symbol;} function decimals() public pure returns (uint8) {return _decimals;} function startTrading() external onlyOwner {tradingAllowed = true;} function getOwner() external view override returns (address) { return owner; } function totalSupply() public view override returns (uint256) {return _totalSupply;} function balanceOf(address account) public view override returns (uint256) {return _balances[account];} function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;} function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];} function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; } function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;} function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;} function circulatingSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));} function preTxCheck(address sender, address recipient, uint256 amount) internal view { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > uint256(0), "Transfer amount must be greater than zero"); require(amount <= balanceOf(sender),"You are trying to transfer more than your balance"); } function _transfer(address sender, address recipient, uint256 amount) private { preTxCheck(sender, recipient, amount); checkTradingAllowed(sender, recipient); checkMaxWallet(sender, recipient, amount); swapbackCounters(sender, recipient); checkTxLimit(sender, recipient, amount); swapBack(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); if(!isDividendExempt[sender]){setShare(sender, balanceOf(sender));} if(!isDividendExempt[recipient]){setShare(recipient, balanceOf(recipient));} if(shares[recipient].amount > 0){distributeDividend(recipient);} process(distributorGas); } function setStructure(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _rewards, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner { liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; rewardsFee = _rewards; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans; require(totalFee <= denominator.div(5) && sellFee <= denominator.div(5) && transferFee <= denominator.div(5), "totalFee and sellFee cannot be more than 20%"); } function setisBot(address _address, bool _enabled) external onlyOwner { require(_address != address(pair) && _address != address(router) && _address != address(this), "Ineligible Address"); isBot[_address] = _enabled; } function setParameters(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner { uint256 newTx = (totalSupply() * _buy) / 10000; uint256 newTransfer = (totalSupply() * _trans) / 10000; uint256 newWallet = (totalSupply() * _wallet) / 10000; _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet; uint256 limit = totalSupply().mul(5).div(1000); require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%"); } function checkTradingAllowed(address sender, address recipient) internal view { if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");} } function checkMaxWallet(address sender, address recipient, uint256 amount) internal view { if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){ require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");} } function swapbackCounters(address sender, address recipient) internal { if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);} } function checkTxLimit(address sender, address recipient, uint256 amount) internal view { if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");} require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); } function swapAndLiquify(uint256 tokens) private lockTheSwap { uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee).add(rewardsFee)).mul(2); uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator); uint256 toSwap = tokens.sub(tokensToAddLiquidityWith); uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance.sub(initialBalance); uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee)); uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee); if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); } uint256 marketingAmount = unitBalance.mul(2).mul(marketingFee); if(marketingAmount > 0){payable(marketing_receiver).transfer(marketingAmount);} uint256 rewardsAmount = unitBalance.mul(2).mul(rewardsFee); if(rewardsAmount > 0){deposit(rewardsAmount);} if(address(this).balance > uint256(0)){payable(development_receiver).transfer(address(this).balance);} } function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private { _approve(address(this), address(router), tokenAmount); router.addLiquidityETH{value: ETHAmount}( address(this), tokenAmount, 0, 0, liquidity_receiver, block.timestamp); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); } function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) { bool aboveMin = amount >= _minTokenAmount; bool aboveThreshold = balanceOf(address(this)) >= swapThreshold; return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= uint256(2) && aboveThreshold; } function swapBack(address sender, address recipient, uint256 amount) internal { if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);} } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient]; } function getTotalFee(address sender, address recipient) internal view returns (uint256) { if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));} if(recipient == pair){return sellFee;} if(sender == pair){return totalFee;} return transferFee; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { if(getTotalFee(sender, recipient) > 0){ uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient)); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if(burnFee > uint256(0)){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));} return amount.sub(feeAmount);} return amount; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setisDividendExempt(address holder, bool exempt) external onlyOwner { isDividendExempt[holder] = exempt; if(exempt){setShare(holder, 0);} else{setShare(holder, balanceOf(holder)); } } function setShare(address shareholder, uint256 amount) internal { if(amount > 0 && shares[shareholder].amount == 0){addShareholder(shareholder);} else if(amount == 0 && shares[shareholder].amount > 0){removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit(uint256 amountETH) internal { uint256 balanceBefore = IERC20(reward).balanceOf(address(this)); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(reward); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amountETH}( 0, path, address(this), block.timestamp); uint256 amount = IERC20(reward).balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function process(uint256 gas) internal { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 gasUsed = 0; uint256 gasLeft = gasleft(); uint256 iterations = 0; while(gasUsed < gas && iterations < shareholderCount) { if(currentIndex >= shareholderCount){currentIndex = 0;} if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]);} gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function rescueERC20(address _address, uint256 _amount) external onlyOwner { IERC20(_address).transfer(msg.sender, _amount); } function shouldDistribute(address shareholder) internal view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function totalRewardsDistributed(address _wallet) external view returns (uint256) { address shareholder = _wallet; return uint256(shares[shareholder].totalRealised); } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); IERC20(reward).transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);} } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution, uint256 _distributorGas) external onlyOwner { minPeriod = _minPeriod; minDistribution = _minDistribution; distributorGas = _distributorGas; } }
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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributorGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"},{"internalType":"uint256","name":"_distributorGas","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_rewards","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"totalRewardsDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126009600a62000566565b62000022906305f5e1006200057e565b60015561271060015460c86200003991906200057e565b62000045919062000598565b60025561271060015460646200005c91906200057e565b62000068919062000598565b60035561271060015461012c6200008091906200057e565b6200008c919062000598565b600455600b805460ff60a01b191690556000600c81905560c8600d55600e8190556101f4600f5560108190556103e86011556113886012556013556127106014556015805460ff1916600190811790915554620186a090620000f1906103846200057e565b620000fd919062000598565b601855620186a0600154600a6200011591906200057e565b62000121919062000598565b601955601a80546001600160a01b0319167395ad61b0a150d79219dcf64e1e6cc01f0b64c4ce1790556ec097ce7bc90715b34b9f1000000000601f55610e10602555662386f26fc1000060265560006027553480156200018057600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020e9190620005bb565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002829190620005bb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f69190620005bb565b600a80546001600160a01b038581166001600160a01b031992831617909255600b80548484169216919091178155306000818152600760209081526040808320805460ff1990811660019081179092557f909b13999f786576e99cb80842e18158647fb7d6d05ba22095830908e1d3ae6f805482168317905533808652838620805483168417905596549097168452600883528184208054881682179055858452818420805488168217905593835280832080548716851790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548716851790557f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c78054909616841790955591548382526005835284822081905593519384529394509092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620005e6565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004a85781600019048211156200048c576200048c62000451565b808516156200049a57918102915b93841c93908002906200046c565b509250929050565b600082620004c15750600162000560565b81620004d05750600062000560565b8160018114620004e95760028114620004f45762000514565b600191505062000560565b60ff84111562000508576200050862000451565b50506001821b62000560565b5060208310610133831016604e8410600b841016171562000539575081810a62000560565b62000545838362000467565b80600019048211156200055c576200055c62000451565b0290505b92915050565b60006200057760ff841683620004b0565b9392505050565b808202811582820484141762000560576200056062000451565b600082620005b657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005ce57600080fd5b81516001600160a01b03811681146200057757600080fd5b6127e880620005f66000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063c942435d116100a0578063e2d6f94c1161006f578063e2d6f94c1461068d578063ef43b02b146106ad578063efca2eed146106cd578063f2fde38b146106e3578063ffd49c841461070357600080fd5b8063c942435d146105a2578063ca89b899146105b7578063ce7c2ac2146105f0578063dd62ed3e1461064757600080fd5b80639358928b116100e75780639358928b1461050557806395d89b411461051a578063997664d71461054c578063a8aa1b3114610562578063a9059cbb1461058257600080fd5b806370a0823114610487578063893d20e8146104a75780638c41180e146104c55780638cd4426d146104e557600080fd5b80632f54bf6e1161019b5780633f4218e01161016a5780633f4218e0146103db5780634355855a1461040b57806348ff2b8b1461043b5780634fab0ae81461045b57806360e719621461047157600080fd5b80632f54bf6e1461035a578063313ce5671461038957806334c5d2ce146103a55780633a98ef39146103c557600080fd5b8063228cb733116101d7578063228cb733146102cd57806323b872dd1461030557806328fd319814610325578063293230b81461034557600080fd5b806306fdde0314610214578063095ea7b31461025c5780630ca61cb11461028c57806318160ddd146102ae57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5060408051808201909152600d81526c5348494255524e49554d20414960981b60208201525b6040516102539190612394565b60405180910390f35b34801561026857600080fd5b5061027c6102773660046123fa565b610719565b6040519015158152602001610253565b34801561029857600080fd5b506102ac6102a7366004612426565b610730565b005b3480156102ba57600080fd5b506001545b604051908152602001610253565b3480156102d957600080fd5b50601a546102ed906001600160a01b031681565b6040516001600160a01b039091168152602001610253565b34801561031157600080fd5b5061027c610320366004612452565b610771565b34801561033157600080fd5b506102bf610340366004612493565b6107db565b34801561035157600080fd5b506102ac610866565b34801561036657600080fd5b5061027c610375366004612493565b6000546001600160a01b0391821691161490565b34801561039557600080fd5b5060405160098152602001610253565b3480156103b157600080fd5b506102ac6103c0366004612426565b6108a5565b3480156103d157600080fd5b506102bf601b5481565b3480156103e757600080fd5b5061027c6103f6366004612493565b60076020526000908152604090205460ff1681565b34801561041757600080fd5b5061027c610426366004612493565b60086020526000908152604090205460ff1681565b34801561044757600080fd5b506102ac6104563660046124be565b6109f9565b34801561046757600080fd5b506102bf60265481565b34801561047d57600080fd5b506102bf60275481565b34801561049357600080fd5b506102bf6104a2366004612493565b610a4e565b3480156104b357600080fd5b506000546001600160a01b03166102ed565b3480156104d157600080fd5b506102ac6104e03660046124be565b610a69565b3480156104f157600080fd5b506102ac6105003660046123fa565b610b40565b34801561051157600080fd5b506102bf610be0565b34801561052657600080fd5b506040805180820190915260098152685348494255524e414960b81b6020820152610246565b34801561055857600080fd5b506102bf601c5481565b34801561056e57600080fd5b50600b546102ed906001600160a01b031681565b34801561058e57600080fd5b5061027c61059d3660046123fa565b610c11565b3480156105ae57600080fd5b506102ac610c1e565b3480156105c357600080fd5b506102bf6105d2366004612493565b6001600160a01b031660009081526023602052604090206002015490565b3480156105fc57600080fd5b5061062c61060b366004612493565b60236020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610253565b34801561065357600080fd5b506102bf6106623660046124f7565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561069957600080fd5b506102ac6106a8366004612525565b610c29565b3480156106b957600080fd5b506102ac6106c83660046124be565b610d2f565b3480156106d957600080fd5b506102bf601d5481565b3480156106ef57600080fd5b506102ac6106fe366004612493565b610da7565b34801561070f57600080fd5b506102bf60255481565b6000610726338484610e25565b5060015b92915050565b6000546001600160a01b031633146107635760405162461bcd60e51b815260040161075a9061257a565b60405180910390fd5b602592909255602655602755565b600061077e848484610f49565b6107d084336107cb8560405180606001604052806028815260200161278b602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906110fb565b610e25565b5060015b9392505050565b6001600160a01b038116600090815260236020526040812054810361080257506000919050565b6001600160a01b03821660009081526023602052604081205461082490611127565b6001600160a01b038416600090815260236020526040902060010154909150808211610854575060009392505050565b61085e8282611144565b949350505050565b6000546001600160a01b031633146108905760405162461bcd60e51b815260040161075a9061257a565b600b805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146108cf5760405162461bcd60e51b815260040161075a9061257a565b6000612710846108de60015490565b6108e891906125b0565b6108f291906125c7565b905060006127108461090360015490565b61090d91906125b0565b61091791906125c7565b905060006127108461092860015490565b61093291906125b0565b61093c91906125c7565b6002849055600383905560048190559050600061096f6103e8610969600561096360015490565b90611150565b9061115c565b90508084101580156109815750808310155b801561098d5750808210155b6109f05760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161075a565b50505050505050565b6000546001600160a01b03163314610a235760405162461bcd60e51b815260040161075a9061257a565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526005602052604090205490565b6000546001600160a01b03163314610a935760405162461bcd60e51b815260040161075a9061257a565b600b546001600160a01b03838116911614801590610abf5750600a546001600160a01b03838116911614155b8015610ad457506001600160a01b0382163014155b610b155760405162461bcd60e51b8152602060048201526012602482015271496e656c696769626c65204164647265737360701b604482015260640161075a565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b6a5760405162461bcd60e51b815260040161075a9061257a565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610bb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdb91906125e9565b505050565b6000610c0c610bef6000610a4e565b610c06610bfd61dead610a4e565b60015490611144565b90611144565b905090565b6000610726338484610f49565b610c2733611168565b565b6000546001600160a01b03163314610c535760405162461bcd60e51b815260040161075a9061257a565b600c889055600d8790556010869055600e859055600f849055601183905560128290556013819055601454610c8990600561115c565b60115411158015610ca95750601454610ca390600561115c565b60125411155b8015610cc45750601454610cbe90600561115c565b60135411155b610d255760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b606482015260840161075a565b5050505050505050565b6000546001600160a01b03163314610d595760405162461bcd60e51b815260040161075a9061257a565b6001600160a01b0382166000908152600860205260409020805460ff19168215801591909117909155610d9557610d918260006112a2565b5050565b610d9182610da284610a4e565b6112a2565b6000546001600160a01b03163314610dd15760405162461bcd60e51b815260040161075a9061257a565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610e875760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075a565b6001600160a01b038216610ee85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075a565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b610f548383836113b8565b610f5e8383611552565b610f698383836115e3565b610f7383836116cf565b610f7e838383611726565b610f89838383611853565b6001600160a01b038316600090815260056020526040902054610fac9082611144565b6001600160a01b038416600090815260056020526040812091909155610fd28484611878565b610fdc5781610fe7565b610fe78484846118be565b6001600160a01b03841660009081526005602052604090205490915061100d90826119ac565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110619085815260200190565b60405180910390a36001600160a01b03841660009081526008602052604090205460ff166110965761109684610da286610a4e565b6001600160a01b03831660009081526008602052604090205460ff166110c3576110c383610da285610a4e565b6001600160a01b038316600090815260236020526040902054156110ea576110ea83611168565b6110f56027546119b8565b50505050565b6000818484111561111f5760405162461bcd60e51b815260040161075a9190612394565b505050900390565b600061072a601f54610969601e548561115090919063ffffffff16565b60006107d48284612606565b60006107d482846125b0565b60006107d482846125c7565b6001600160a01b038116600090815260236020526040812054900361118a5750565b6000611195826107db565b90508015610d9157601d546111aa90826119ac565b601d55601a5460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015611200573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122491906125e9565b506001600160a01b0382166000908152602260209081526040808320429055602390915290206002015461125890826119ac565b6001600160a01b038316600090815260236020526040902060028101919091555461128290611127565b6001600160a01b0383166000908152602360205260409020600101555050565b6000811180156112c857506001600160a01b038216600090815260236020526040902054155b1561132d57602080546001600160a01b03841660008181526021845260408120839055600183018455929092527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb0180546001600160a01b0319169091179055611360565b8015801561135257506001600160a01b03821660009081526023602052604090205415155b156113605761136082611aa5565b6001600160a01b038216600090815260236020526040902054601b5461139191839161138b91611144565b906119ac565b601b556001600160a01b038216600090815260236020526040902081905561128281611127565b6001600160a01b03831661141c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161075a565b6001600160a01b03821661147e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161075a565b600081116114e05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161075a565b6114e983610a4e565b811115610bdb5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161075a565b6001600160a01b03821660009081526007602052604090205460ff1615801561159457506001600160a01b03811660009081526007602052604090205460ff16155b15610d9157600b54600160a01b900460ff16610d915760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161075a565b6001600160a01b03831660009081526007602052604090205460ff1615801561162557506001600160a01b03821660009081526007602052604090205460ff16155b801561163f5750600b546001600160a01b03838116911614155b801561165657506001600160a01b03821661dead14155b15610bdb576004546001600160a01b03831660009081526005602052604090205461168190836119ac565b1115610bdb5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161075a565b600b546001600160a01b03828116911614801561170557506001600160a01b03821660009081526007602052604090205460ff16155b15610d915760016016600082825461171d9190612619565b90915550505050565b600b546001600160a01b038481169116146117c7576003548111158061176457506001600160a01b03831660009081526007602052604090205460ff165b8061178757506001600160a01b03821660009081526007602052604090205460ff165b6117c75760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161075a565b600254811115806117f057506001600160a01b03831660009081526007602052604090205460ff165b8061181357506001600160a01b03821660009081526007602052604090205460ff165b610bdb5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161075a565b61185e838383611bb9565b15610bdb5761186e601854611c6a565b6000601655505050565b6001600160a01b03821660009081526007602052604081205460ff161580156107d45750506001600160a01b031660009081526007602052604090205460ff1615919050565b6000806118cb8585611e29565b11156119a55760006118ee6118e08686611e29565b60145461096390869061115c565b3060009081526005602052604090205490915061190b90826119ac565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061195c9085815260200190565b60405180910390a360105415611993576119933061dead61198e6010546109636014548961115c90919063ffffffff16565b610f49565b61199d8382611144565b9150506107d4565b5092915050565b60006107d48284612619565b60205460008190036119c8575050565b6000805a905060005b84831080156119df57508381105b15611a9e5783602454106119f35760006024555b611a25602060245481548110611a0b57611a0b61262c565b6000918252602090912001546001600160a01b0316611eca565b15611a5c57611a5c602060245481548110611a4257611a4261262c565b6000918252602090912001546001600160a01b0316611168565b611a71611a6a5a8490611144565b84906119ac565b92505a602480549193506000611a8683612642565b91905055508080611a9690612642565b9150506119d1565b5050505050565b60208054611ab590600190612606565b81548110611ac557611ac561262c565b60009182526020808320909101546001600160a01b03848116845260218352604090932054825493909116928110611aff57611aff61262c565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152602180835260408220548354909391929190611b4a90600190612606565b81548110611b5a57611b5a61262c565b60009182526020808320909101546001600160a01b03168352828101939093526040909101902091909155805480611b9457611b9461265b565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60008060195483101590506000601854611bd230610a4e565b601754911115915060ff16158015611bec575060155460ff165b8015611c015750600b54600160a01b900460ff165b8015611c0a5750815b8015611c2f57506001600160a01b03861660009081526007602052604090205460ff16155b8015611c485750600b546001600160a01b038681169116145b8015611c575750600260165410155b8015611c605750805b9695505050505050565b6001601760006101000a81548160ff0219169083151502179055506000611cb46002610963600e5461138b600f5461138b600d5461138b6001600c546119ac90919063ffffffff16565b90506000611cd182610969600c548661115090919063ffffffff16565b90506000611cdf8483611144565b905047611ceb82611f0f565b6000611cf74783611144565b90506000611d1a611d13600c548861114490919063ffffffff16565b839061115c565b90506000611d33600c548361115090919063ffffffff16565b90508015611d4557611d458682612069565b600d54600090611d5a90610963856002611150565b90508015611da55760405173eb67474bc32b8e6583135d45b4f288b17c1eaf799082156108fc029083906000818181858888f19350505050158015611da3573d6000803e3d6000fd5b505b600e54600090611dba90610963866002611150565b90508015611dcb57611dcb81612126565b4715611e135760405173eb67474bc32b8e6583135d45b4f288b17c1eaf79904780156108fc02916000818181858888f19350505050158015611e11573d6000803e3d6000fd5b505b50506017805460ff191690555050505050505050565b6001600160a01b03821660009081526009602052604081205460ff1680611e6857506001600160a01b03821660009081526009602052604090205460ff165b15611e8257601454611e7b906064611144565b905061072a565b600b546001600160a01b0390811690831603611ea1575060125461072a565b600b546001600160a01b0390811690841603611ec0575060115461072a565b5060135492915050565b6025546001600160a01b03821660009081526022602052604081205490914291611ef49190612619565b10801561072a5750602654611f08836107db565b1192915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f4457611f4461262c565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc19190612671565b81600181518110611fd457611fd461262c565b6001600160a01b039283166020918202929092010152600a54611ffa9130911684610e25565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac947906120339085906000908690309042906004016126d2565b600060405180830381600087803b15801561204d57600080fd5b505af1158015612061573d6000803e3d6000fd5b505050505050565b600a546120819030906001600160a01b031684610e25565b600a5460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015273eb67474bc32b8e6583135d45b4f288b17c1eaf7960848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612101573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a9e919061270e565b601a546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561216f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612193919061273c565b60408051600280825260608201835292935060009290916020830190803683375050600a54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612202573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122269190612671565b816000815181106122395761223961262c565b6001600160a01b039283166020918202929092010152601a5482519116908290600190811061226a5761226a61262c565b6001600160a01b039283166020918202929092010152600a5460405163b6f9de9560e01b815291169063b6f9de959085906122b090600090869030904290600401612755565b6000604051808303818588803b1580156122c957600080fd5b505af11580156122dd573d6000803e3d6000fd5b5050601a546040516370a0823160e01b81523060048201526000945061235793508692506001600160a01b03909116906370a0823190602401602060405180830381865afa158015612333573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c06919061273c565b601c5490915061236790826119ac565b601c55601b54601f5461238b91612382916109699085611150565b601e54906119ac565b601e5550505050565b600060208083528351808285015260005b818110156123c1578581018301518582016040015282016123a5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146123f757600080fd5b50565b6000806040838503121561240d57600080fd5b8235612418816123e2565b946020939093013593505050565b60008060006060848603121561243b57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561246757600080fd5b8335612472816123e2565b92506020840135612482816123e2565b929592945050506040919091013590565b6000602082840312156124a557600080fd5b81356107d4816123e2565b80151581146123f757600080fd5b600080604083850312156124d157600080fd5b82356124dc816123e2565b915060208301356124ec816124b0565b809150509250929050565b6000806040838503121561250a57600080fd5b8235612515816123e2565b915060208301356124ec816123e2565b600080600080600080600080610100898b03121561254257600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761072a5761072a61259a565b6000826125e457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156125fb57600080fd5b81516107d4816124b0565b8181038181111561072a5761072a61259a565b8082018082111561072a5761072a61259a565b634e487b7160e01b600052603260045260246000fd5b6000600182016126545761265461259a565b5060010190565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561268357600080fd5b81516107d4816123e2565b600081518084526020808501945080840160005b838110156126c75781516001600160a01b0316875295820195908201906001016126a2565b509495945050505050565b85815284602082015260a0604082015260006126f160a083018661268e565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561272357600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561274e57600080fd5b5051919050565b84815260806020820152600061276e608083018661268e565b6001600160a01b0394909416604083015250606001529291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122002f14474e7683bfd1381de545ed0a124910feb8e45eebbfd5973a651ee67976464736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102085760003560e01c806370a0823111610118578063c942435d116100a0578063e2d6f94c1161006f578063e2d6f94c1461068d578063ef43b02b146106ad578063efca2eed146106cd578063f2fde38b146106e3578063ffd49c841461070357600080fd5b8063c942435d146105a2578063ca89b899146105b7578063ce7c2ac2146105f0578063dd62ed3e1461064757600080fd5b80639358928b116100e75780639358928b1461050557806395d89b411461051a578063997664d71461054c578063a8aa1b3114610562578063a9059cbb1461058257600080fd5b806370a0823114610487578063893d20e8146104a75780638c41180e146104c55780638cd4426d146104e557600080fd5b80632f54bf6e1161019b5780633f4218e01161016a5780633f4218e0146103db5780634355855a1461040b57806348ff2b8b1461043b5780634fab0ae81461045b57806360e719621461047157600080fd5b80632f54bf6e1461035a578063313ce5671461038957806334c5d2ce146103a55780633a98ef39146103c557600080fd5b8063228cb733116101d7578063228cb733146102cd57806323b872dd1461030557806328fd319814610325578063293230b81461034557600080fd5b806306fdde0314610214578063095ea7b31461025c5780630ca61cb11461028c57806318160ddd146102ae57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5060408051808201909152600d81526c5348494255524e49554d20414960981b60208201525b6040516102539190612394565b60405180910390f35b34801561026857600080fd5b5061027c6102773660046123fa565b610719565b6040519015158152602001610253565b34801561029857600080fd5b506102ac6102a7366004612426565b610730565b005b3480156102ba57600080fd5b506001545b604051908152602001610253565b3480156102d957600080fd5b50601a546102ed906001600160a01b031681565b6040516001600160a01b039091168152602001610253565b34801561031157600080fd5b5061027c610320366004612452565b610771565b34801561033157600080fd5b506102bf610340366004612493565b6107db565b34801561035157600080fd5b506102ac610866565b34801561036657600080fd5b5061027c610375366004612493565b6000546001600160a01b0391821691161490565b34801561039557600080fd5b5060405160098152602001610253565b3480156103b157600080fd5b506102ac6103c0366004612426565b6108a5565b3480156103d157600080fd5b506102bf601b5481565b3480156103e757600080fd5b5061027c6103f6366004612493565b60076020526000908152604090205460ff1681565b34801561041757600080fd5b5061027c610426366004612493565b60086020526000908152604090205460ff1681565b34801561044757600080fd5b506102ac6104563660046124be565b6109f9565b34801561046757600080fd5b506102bf60265481565b34801561047d57600080fd5b506102bf60275481565b34801561049357600080fd5b506102bf6104a2366004612493565b610a4e565b3480156104b357600080fd5b506000546001600160a01b03166102ed565b3480156104d157600080fd5b506102ac6104e03660046124be565b610a69565b3480156104f157600080fd5b506102ac6105003660046123fa565b610b40565b34801561051157600080fd5b506102bf610be0565b34801561052657600080fd5b506040805180820190915260098152685348494255524e414960b81b6020820152610246565b34801561055857600080fd5b506102bf601c5481565b34801561056e57600080fd5b50600b546102ed906001600160a01b031681565b34801561058e57600080fd5b5061027c61059d3660046123fa565b610c11565b3480156105ae57600080fd5b506102ac610c1e565b3480156105c357600080fd5b506102bf6105d2366004612493565b6001600160a01b031660009081526023602052604090206002015490565b3480156105fc57600080fd5b5061062c61060b366004612493565b60236020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610253565b34801561065357600080fd5b506102bf6106623660046124f7565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561069957600080fd5b506102ac6106a8366004612525565b610c29565b3480156106b957600080fd5b506102ac6106c83660046124be565b610d2f565b3480156106d957600080fd5b506102bf601d5481565b3480156106ef57600080fd5b506102ac6106fe366004612493565b610da7565b34801561070f57600080fd5b506102bf60255481565b6000610726338484610e25565b5060015b92915050565b6000546001600160a01b031633146107635760405162461bcd60e51b815260040161075a9061257a565b60405180910390fd5b602592909255602655602755565b600061077e848484610f49565b6107d084336107cb8560405180606001604052806028815260200161278b602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906110fb565b610e25565b5060015b9392505050565b6001600160a01b038116600090815260236020526040812054810361080257506000919050565b6001600160a01b03821660009081526023602052604081205461082490611127565b6001600160a01b038416600090815260236020526040902060010154909150808211610854575060009392505050565b61085e8282611144565b949350505050565b6000546001600160a01b031633146108905760405162461bcd60e51b815260040161075a9061257a565b600b805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146108cf5760405162461bcd60e51b815260040161075a9061257a565b6000612710846108de60015490565b6108e891906125b0565b6108f291906125c7565b905060006127108461090360015490565b61090d91906125b0565b61091791906125c7565b905060006127108461092860015490565b61093291906125b0565b61093c91906125c7565b6002849055600383905560048190559050600061096f6103e8610969600561096360015490565b90611150565b9061115c565b90508084101580156109815750808310155b801561098d5750808210155b6109f05760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161075a565b50505050505050565b6000546001600160a01b03163314610a235760405162461bcd60e51b815260040161075a9061257a565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526005602052604090205490565b6000546001600160a01b03163314610a935760405162461bcd60e51b815260040161075a9061257a565b600b546001600160a01b03838116911614801590610abf5750600a546001600160a01b03838116911614155b8015610ad457506001600160a01b0382163014155b610b155760405162461bcd60e51b8152602060048201526012602482015271496e656c696769626c65204164647265737360701b604482015260640161075a565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b6a5760405162461bcd60e51b815260040161075a9061257a565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610bb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdb91906125e9565b505050565b6000610c0c610bef6000610a4e565b610c06610bfd61dead610a4e565b60015490611144565b90611144565b905090565b6000610726338484610f49565b610c2733611168565b565b6000546001600160a01b03163314610c535760405162461bcd60e51b815260040161075a9061257a565b600c889055600d8790556010869055600e859055600f849055601183905560128290556013819055601454610c8990600561115c565b60115411158015610ca95750601454610ca390600561115c565b60125411155b8015610cc45750601454610cbe90600561115c565b60135411155b610d255760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b606482015260840161075a565b5050505050505050565b6000546001600160a01b03163314610d595760405162461bcd60e51b815260040161075a9061257a565b6001600160a01b0382166000908152600860205260409020805460ff19168215801591909117909155610d9557610d918260006112a2565b5050565b610d9182610da284610a4e565b6112a2565b6000546001600160a01b03163314610dd15760405162461bcd60e51b815260040161075a9061257a565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610e875760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075a565b6001600160a01b038216610ee85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075a565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b610f548383836113b8565b610f5e8383611552565b610f698383836115e3565b610f7383836116cf565b610f7e838383611726565b610f89838383611853565b6001600160a01b038316600090815260056020526040902054610fac9082611144565b6001600160a01b038416600090815260056020526040812091909155610fd28484611878565b610fdc5781610fe7565b610fe78484846118be565b6001600160a01b03841660009081526005602052604090205490915061100d90826119ac565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110619085815260200190565b60405180910390a36001600160a01b03841660009081526008602052604090205460ff166110965761109684610da286610a4e565b6001600160a01b03831660009081526008602052604090205460ff166110c3576110c383610da285610a4e565b6001600160a01b038316600090815260236020526040902054156110ea576110ea83611168565b6110f56027546119b8565b50505050565b6000818484111561111f5760405162461bcd60e51b815260040161075a9190612394565b505050900390565b600061072a601f54610969601e548561115090919063ffffffff16565b60006107d48284612606565b60006107d482846125b0565b60006107d482846125c7565b6001600160a01b038116600090815260236020526040812054900361118a5750565b6000611195826107db565b90508015610d9157601d546111aa90826119ac565b601d55601a5460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015611200573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122491906125e9565b506001600160a01b0382166000908152602260209081526040808320429055602390915290206002015461125890826119ac565b6001600160a01b038316600090815260236020526040902060028101919091555461128290611127565b6001600160a01b0383166000908152602360205260409020600101555050565b6000811180156112c857506001600160a01b038216600090815260236020526040902054155b1561132d57602080546001600160a01b03841660008181526021845260408120839055600183018455929092527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb0180546001600160a01b0319169091179055611360565b8015801561135257506001600160a01b03821660009081526023602052604090205415155b156113605761136082611aa5565b6001600160a01b038216600090815260236020526040902054601b5461139191839161138b91611144565b906119ac565b601b556001600160a01b038216600090815260236020526040902081905561128281611127565b6001600160a01b03831661141c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161075a565b6001600160a01b03821661147e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161075a565b600081116114e05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161075a565b6114e983610a4e565b811115610bdb5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161075a565b6001600160a01b03821660009081526007602052604090205460ff1615801561159457506001600160a01b03811660009081526007602052604090205460ff16155b15610d9157600b54600160a01b900460ff16610d915760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161075a565b6001600160a01b03831660009081526007602052604090205460ff1615801561162557506001600160a01b03821660009081526007602052604090205460ff16155b801561163f5750600b546001600160a01b03838116911614155b801561165657506001600160a01b03821661dead14155b15610bdb576004546001600160a01b03831660009081526005602052604090205461168190836119ac565b1115610bdb5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161075a565b600b546001600160a01b03828116911614801561170557506001600160a01b03821660009081526007602052604090205460ff16155b15610d915760016016600082825461171d9190612619565b90915550505050565b600b546001600160a01b038481169116146117c7576003548111158061176457506001600160a01b03831660009081526007602052604090205460ff165b8061178757506001600160a01b03821660009081526007602052604090205460ff165b6117c75760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161075a565b600254811115806117f057506001600160a01b03831660009081526007602052604090205460ff165b8061181357506001600160a01b03821660009081526007602052604090205460ff165b610bdb5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161075a565b61185e838383611bb9565b15610bdb5761186e601854611c6a565b6000601655505050565b6001600160a01b03821660009081526007602052604081205460ff161580156107d45750506001600160a01b031660009081526007602052604090205460ff1615919050565b6000806118cb8585611e29565b11156119a55760006118ee6118e08686611e29565b60145461096390869061115c565b3060009081526005602052604090205490915061190b90826119ac565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061195c9085815260200190565b60405180910390a360105415611993576119933061dead61198e6010546109636014548961115c90919063ffffffff16565b610f49565b61199d8382611144565b9150506107d4565b5092915050565b60006107d48284612619565b60205460008190036119c8575050565b6000805a905060005b84831080156119df57508381105b15611a9e5783602454106119f35760006024555b611a25602060245481548110611a0b57611a0b61262c565b6000918252602090912001546001600160a01b0316611eca565b15611a5c57611a5c602060245481548110611a4257611a4261262c565b6000918252602090912001546001600160a01b0316611168565b611a71611a6a5a8490611144565b84906119ac565b92505a602480549193506000611a8683612642565b91905055508080611a9690612642565b9150506119d1565b5050505050565b60208054611ab590600190612606565b81548110611ac557611ac561262c565b60009182526020808320909101546001600160a01b03848116845260218352604090932054825493909116928110611aff57611aff61262c565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152602180835260408220548354909391929190611b4a90600190612606565b81548110611b5a57611b5a61262c565b60009182526020808320909101546001600160a01b03168352828101939093526040909101902091909155805480611b9457611b9461265b565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60008060195483101590506000601854611bd230610a4e565b601754911115915060ff16158015611bec575060155460ff165b8015611c015750600b54600160a01b900460ff165b8015611c0a5750815b8015611c2f57506001600160a01b03861660009081526007602052604090205460ff16155b8015611c485750600b546001600160a01b038681169116145b8015611c575750600260165410155b8015611c605750805b9695505050505050565b6001601760006101000a81548160ff0219169083151502179055506000611cb46002610963600e5461138b600f5461138b600d5461138b6001600c546119ac90919063ffffffff16565b90506000611cd182610969600c548661115090919063ffffffff16565b90506000611cdf8483611144565b905047611ceb82611f0f565b6000611cf74783611144565b90506000611d1a611d13600c548861114490919063ffffffff16565b839061115c565b90506000611d33600c548361115090919063ffffffff16565b90508015611d4557611d458682612069565b600d54600090611d5a90610963856002611150565b90508015611da55760405173eb67474bc32b8e6583135d45b4f288b17c1eaf799082156108fc029083906000818181858888f19350505050158015611da3573d6000803e3d6000fd5b505b600e54600090611dba90610963866002611150565b90508015611dcb57611dcb81612126565b4715611e135760405173eb67474bc32b8e6583135d45b4f288b17c1eaf79904780156108fc02916000818181858888f19350505050158015611e11573d6000803e3d6000fd5b505b50506017805460ff191690555050505050505050565b6001600160a01b03821660009081526009602052604081205460ff1680611e6857506001600160a01b03821660009081526009602052604090205460ff165b15611e8257601454611e7b906064611144565b905061072a565b600b546001600160a01b0390811690831603611ea1575060125461072a565b600b546001600160a01b0390811690841603611ec0575060115461072a565b5060135492915050565b6025546001600160a01b03821660009081526022602052604081205490914291611ef49190612619565b10801561072a5750602654611f08836107db565b1192915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f4457611f4461262c565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc19190612671565b81600181518110611fd457611fd461262c565b6001600160a01b039283166020918202929092010152600a54611ffa9130911684610e25565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac947906120339085906000908690309042906004016126d2565b600060405180830381600087803b15801561204d57600080fd5b505af1158015612061573d6000803e3d6000fd5b505050505050565b600a546120819030906001600160a01b031684610e25565b600a5460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015273eb67474bc32b8e6583135d45b4f288b17c1eaf7960848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612101573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a9e919061270e565b601a546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561216f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612193919061273c565b60408051600280825260608201835292935060009290916020830190803683375050600a54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612202573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122269190612671565b816000815181106122395761223961262c565b6001600160a01b039283166020918202929092010152601a5482519116908290600190811061226a5761226a61262c565b6001600160a01b039283166020918202929092010152600a5460405163b6f9de9560e01b815291169063b6f9de959085906122b090600090869030904290600401612755565b6000604051808303818588803b1580156122c957600080fd5b505af11580156122dd573d6000803e3d6000fd5b5050601a546040516370a0823160e01b81523060048201526000945061235793508692506001600160a01b03909116906370a0823190602401602060405180830381865afa158015612333573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c06919061273c565b601c5490915061236790826119ac565b601c55601b54601f5461238b91612382916109699085611150565b601e54906119ac565b601e5550505050565b600060208083528351808285015260005b818110156123c1578581018301518582016040015282016123a5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146123f757600080fd5b50565b6000806040838503121561240d57600080fd5b8235612418816123e2565b946020939093013593505050565b60008060006060848603121561243b57600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561246757600080fd5b8335612472816123e2565b92506020840135612482816123e2565b929592945050506040919091013590565b6000602082840312156124a557600080fd5b81356107d4816123e2565b80151581146123f757600080fd5b600080604083850312156124d157600080fd5b82356124dc816123e2565b915060208301356124ec816124b0565b809150509250929050565b6000806040838503121561250a57600080fd5b8235612515816123e2565b915060208301356124ec816123e2565b600080600080600080600080610100898b03121561254257600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761072a5761072a61259a565b6000826125e457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156125fb57600080fd5b81516107d4816124b0565b8181038181111561072a5761072a61259a565b8082018082111561072a5761072a61259a565b634e487b7160e01b600052603260045260246000fd5b6000600182016126545761265461259a565b5060010190565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561268357600080fd5b81516107d4816123e2565b600081518084526020808501945080840160005b838110156126c75781516001600160a01b0316875295820195908201906001016126a2565b509495945050505050565b85815284602082015260a0604082015260006126f160a083018661268e565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561272357600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561274e57600080fd5b5051919050565b84815260806020820152600061276e608083018661268e565b6001600160a01b0394909416604083015250606001529291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122002f14474e7683bfd1381de545ed0a124910feb8e45eebbfd5973a651ee67976464736f6c63430008110033
Deployed Bytecode Sourcemap
4717:17820:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8278:67;;;;;;;;;;-1:-1:-1;8338:5:0;;;;;;;;;;;;-1:-1:-1;;;8338:5:0;;;;8278:67;;;;;;;:::i;:::-;;;;;;;;9383:133;;;;;;;;;;-1:-1:-1;9383:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9383:133:0;1023:187:1;22282:252:0;;;;;;;;;;-1:-1:-1;22282:252:0;;;;;:::i;:::-;;:::i;:::-;;8658:84;;;;;;;;;;-1:-1:-1;8728:12:0;;8658:84;;;1682:25:1;;;1670:2;1655:18;8658:84:0;1536:177:1;6241:66:0;;;;;;;;;;-1:-1:-1;6241:66:0;;;;-1:-1:-1;;;;;6241:66:0;;;;;;-1:-1:-1;;;;;1882:32:1;;;1864:51;;1852:2;1837:18;6241:66:0;1718:203:1;17212:309:0;;;;;;;;;;-1:-1:-1;17212:309:0;;;;;:::i;:::-;;:::i;21152:473::-;;;;;;;;;;-1:-1:-1;21152:473:0;;;;;:::i;:::-;;:::i;8501:67::-;;;;;;;;;;;;;:::i;3097:87::-;;;;;;;;;;-1:-1:-1;3097:87:0;;;;;:::i;:::-;3152:4;3177:5;-1:-1:-1;;;;;3166:16:0;;;3177:5;;3166:16;;3097:87;8428:67;;;;;;;;;;-1:-1:-1;8428:67:0;;4939:1;2781:36:1;;2769:2;2754:18;8428:67:0;2639:184:1;11952:578:0;;;;;;;;;;-1:-1:-1;11952:578:0;;;;;:::i;:::-;;:::i;6314:26::-;;;;;;;;;;;;;;;;5344:44;;;;;;;;;;-1:-1:-1;5344:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5395:49;;;;;;;;;;-1:-1:-1;5395:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9269:108;;;;;;;;;;-1:-1:-1;9269:108:0;;;;;:::i;:::-;;:::i;6874:47::-;;;;;;;;;;;;;;;;6928:33;;;;;;;;;;;;;;;;8748:103;;;;;;;;;;-1:-1:-1;8748:103:0;;;;;:::i;:::-;;:::i;8574:78::-;;;;;;;;;;-1:-1:-1;8626:7:0;8644:5;-1:-1:-1;;;;;8644:5:0;8574:78;;11702:242;;;;;;;;;;-1:-1:-1;11702:242:0;;;;;:::i;:::-;;:::i;19968:140::-;;;;;;;;;;-1:-1:-1;19968:140:0;;;;;:::i;:::-;;:::i;9522:138::-;;;;;;;;;;;;;:::i;8351:71::-;;;;;;;;;;-1:-1:-1;8413:7:0;;;;;;;;;;;;-1:-1:-1;;;8413:7:0;;;;8351:71;;6347:29;;;;;;;;;;;;;;;;5518:19;;;;;;;;;;-1:-1:-1;5518:19:0;;;;-1:-1:-1;;;;;5518:19:0;;;8857:139;;;;;;;;;;-1:-1:-1;8857:139:0;;;;;:::i;:::-;;:::i;6968:68::-;;;;;;;;;;;;;:::i;20359:190::-;;;;;;;;;;-1:-1:-1;20359:190:0;;;;;:::i;:::-;-1:-1:-1;;;;;20507:19:0;20432:7;20507:19;;;:6;:19;;;;;:33;;;;20359:190;6747:40;;;;;;;;;;-1:-1:-1;6747:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3540:25:1;;;3596:2;3581:18;;3574:34;;;;3624:18;;;3617:34;3528:2;3513:18;6747:40:0;3338:319:1;9002:127:0;;;;;;;;;;-1:-1:-1;9002:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;9100:18:0;;;9083:7;9100:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9002:127;11080:614;;;;;;;;;;-1:-1:-1;11080:614:0;;;;;:::i;:::-;;:::i;17872:224::-;;;;;;;;;;-1:-1:-1;17872:224:0;;;;;:::i;:::-;;:::i;6383:31::-;;;;;;;;;;;;;;;;3190:111;;;;;;;;;;-1:-1:-1;3190:111:0;;;;;:::i;:::-;;:::i;6830:37::-;;;;;;;;;;;;;;;;9383:133;9458:4;9465:37;9474:10;9486:7;9495:6;9465:8;:37::i;:::-;-1:-1:-1;9510:4:0;9383:133;;;;;:::o;22282:252::-;3152:4;3177:5;-1:-1:-1;;;;;3177:5:0;3064:10;3166:16;3048:38;;;;-1:-1:-1;;;3048:38:0;;;;;;;:::i;:::-;;;;;;;;;22416:9:::1;:22:::0;;;;22449:15:::1;:34:::0;22494:14:::1;:32:::0;22282:252::o;17212:309::-;17310:4;17327:36;17337:6;17345:9;17356:6;17327:9;:36::i;:::-;17374:117;17383:6;17391:10;17403:87;17439:6;17403:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17403:19:0;;;;;;:11;:19;;;;;;;;17423:10;17403:31;;;;;;;;;:87;:35;:87::i;:::-;17374:8;:117::i;:::-;-1:-1:-1;17509:4:0;17212:309;;;;;;:::o;21152:473::-;-1:-1:-1;;;;;21244:19:0;;21221:7;21244:19;;;:6;:19;;;;;:26;:31;;21241:48;;-1:-1:-1;21285:1:0;;21152:473;-1:-1:-1;21152:473:0:o;21241:48::-;-1:-1:-1;;;;;21358:19:0;;21299:33;21358:19;;;:6;:19;;;;;:26;21335:50;;:22;:50::i;:::-;-1:-1:-1;;;;;21431:19:0;;21396:32;21431:19;;;:6;:19;;;;;:33;;;21299:86;;-1:-1:-1;21478:53:0;;;21475:70;;-1:-1:-1;21541:1:0;;21152:473;-1:-1:-1;;;21152:473:0:o;21475:70::-;21562:55;:25;21592:24;21562:29;:55::i;:::-;21555:62;21152:473;-1:-1:-1;;;;21152:473:0:o;8501:67::-;3152:4;3177:5;-1:-1:-1;;;;;3177:5:0;3064:10;3166:16;3048:38;;;;-1:-1:-1;;;3048:38:0;;;;;;;:::i;:::-;8545:14:::1;:21:::0;;-1:-1:-1;;;;8545:21:0::1;-1:-1:-1::0;;;8545:21:0::1;::::0;;8501:67::o;11952:578::-;3152:4;3177:5;-1:-1:-1;;;;;3177:5:0;3064:10;3166:16;3048:38;;;;-1:-1:-1;;;3048:38:0;;;;;;;:::i;:::-;12052:13:::1;12093:5;12085:4;12069:13;8728:12:::0;;;8658:84;12069:13:::1;:20;;;;:::i;:::-;12068:30;;;;:::i;:::-;12052:46;;12109:19;12158:5;12148:6;12132:13;8728:12:::0;;;8658:84;12132:13:::1;:22;;;;:::i;:::-;12131:32;;;;:::i;:::-;12109:54;;12174:17;12222:5;12211:7;12195:13;8728:12:::0;;;8658:84;12195:13:::1;:23;;;;:::i;:::-;12194:33;;;;:::i;:::-;12238:12;:20:::0;;;12269:14:::1;:28:::0;;;12308:15:::1;:27:::0;;;12174:53;-1:-1:-1;;12362:30:0::1;12387:4;12362:20;12380:1;12362:13;8728:12:::0;;;8658:84;12362:13:::1;:17:::0;::::1;:20::i;:::-;:24:::0;::::1;:30::i;:::-;12346:46;;12420:5;12411;:14;;:38;;;;;12444:5;12429:11;:20;;12411:38;:60;;;;;12466:5;12453:9;:18;;12411:60;12403:119;;;::::0;-1:-1:-1;;;12403:119:0;;6044:2:1;12403:119:0::1;::::0;::::1;6026:21:1::0;6083:2;6063:18;;;6056:30;6122:34;6102:18;;;6095:62;-1:-1:-1;;;6173:18:1;;;6166:44;6227:19;;12403:119:0::1;5842:410:1::0;12403:119:0::1;12041:489;;;;11952:578:::0;;;:::o;9269:108::-;3152:4;3177:5;-1:-1:-1;;;;;3177:5:0;3064:10;3166:16;3048:38;;;;-1:-1:-1;;;3048:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9343:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;9343:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9269:108::o;8748:103::-;-1:-1:-1;;;;;8831:18:0;8814:7;8831:18;;;:9;:18;;;;;;;8748:103::o;11702:242::-;3152:4;3177:5;-1:-1:-1;;;;;3177:5:0;3064:10;3166:16;3048:38;;;;-1:-1:-1;;;3048:38:0;;;;;;;:::i;:::-;11811:4:::1;::::0;-1:-1:-1;;;;;11791:25:0;;::::1;11811:4:::0;::::1;11791:25;::::0;::::1;::::0;:56:::1;;-1:-1:-1::0;11840:6:0::1;::::0;-1:-1:-1;;;;;11820:27:0;;::::1;11840:6:::0;::::1;11820:27;;11791:56;:85;;;;-1:-1:-1::0;;;;;;11851:25:0;::::1;11871:4;11851:25;;11791:85;11783:116;;;::::0;-1:-1:-1;;;11783:116:0;;6459:2:1;11783:116:0::1;::::0;::::1;6441:21:1::0;6498:2;6478:18;;;6471:30;-1:-1:-1;;;6517:18:1;;;6510:48;6575:18;;11783:116:0::1;6257:342:1::0;11783:116:0::1;-1:-1:-1::0;;;;;11910:15:0;;;::::1;;::::0;;;:5:::1;:15;::::0;;;;:26;;-1:-1:-1;;11910:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11702:242::o;19968:140::-;3152:4;3177:5;-1:-1:-1;;;;;3177:5:0;3064:10;3166:16;3048:38;;;;-1:-1:-1;;;3048:38:0;;;;;;;:::i;:::-;20054:46:::1;::::0;-1:-1:-1;;;20054:46:0;;20080:10:::1;20054:46;::::0;::::1;6778:51:1::0;6845:18;;;6838:34;;;-1:-1:-1;;;;;20054:25:0;::::1;::::0;::::1;::::0;6751:18:1;;20054:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19968:140:::0;;:::o;9522:138::-;9581:7;9598:60;9636:21;9654:1;9636:9;:21::i;:::-;9598:33;9615:15;7077:42;9615:9;:15::i;:::-;9598:12;;;:16;:33::i;:::-;:37;;:60::i;:::-;9591:67;;9522:138;:::o;8857:139::-;8935:4;8942:40;8952:10;8964:9;8975:6;8942:9;:40::i;6968:68::-;7004:30;7023:10;7004:18;:30::i;:::-;6968:68::o;11080:614::-;3152:4;3177:5;-1:-1:-1;;;;;3177:5:0;3064:10;3166:16;3048:38;;;;-1:-1:-1;;;3048:38:0;;;;;;;:::i;:::-;11274:12:::1;:25:::0;;;11310:12:::1;:25:::0;;;11346:7:::1;:15:::0;;;11372:10:::1;:21:::0;;;11404:14:::1;:29:::0;;;11444:8:::1;:17:::0;;;11472:7:::1;:15:::0;;;11498:11:::1;:20:::0;;;11549:11:::1;::::0;:18:::1;::::0;11565:1:::1;11549:15;:18::i;:::-;11537:8;;:30;;:63;;;;-1:-1:-1::0;11582:11:0::1;::::0;:18:::1;::::0;11598:1:::1;11582:15;:18::i;:::-;11571:7;;:29;;11537:63;:100;;;;-1:-1:-1::0;11619:11:0::1;::::0;:18:::1;::::0;11635:1:::1;11619:15;:18::i;:::-;11604:11;;:33;;11537:100;11529:157;;;::::0;-1:-1:-1;;;11529:157:0;;7335:2:1;11529:157:0::1;::::0;::::1;7317:21:1::0;7374:2;7354:18;;;7347:30;7413:34;7393:18;;;7386:62;-1:-1:-1;;;7464:18:1;;;7457:42;7516:19;;11529:157:0::1;7133:408:1::0;11529:157:0::1;11080:614:::0;;;;;;;;:::o;17872:224::-;3152:4;3177:5;-1:-1:-1;;;;;3177:5:0;3064:10;3166:16;3048:38;;;;-1:-1:-1;;;3048:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17960:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;17960:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;18004:85:::1;;18015:19;18024:6;18032:1;18015:8;:19::i;:::-;17872:224:::0;;:::o;18004:85::-:1;18051:35;18060:6;18068:17;18078:6;18068:9;:17::i;:::-;18051:8;:35::i;3190:111::-:0;3152:4;3177:5;-1:-1:-1;;;;;3177:5:0;3064:10;3166:16;3048:38;;;;-1:-1:-1;;;3048:38:0;;;;;;;:::i;:::-;3256:5:::1;:11:::0;;-1:-1:-1;;;;;;3256:11:0::1;-1:-1:-1::0;;;;;3256:11:0;::::1;::::0;;::::1;::::0;;;3274:25:::1;::::0;1864:51:1;;;3274:25:0::1;::::0;1852:2:1;1837:18;3274:25:0::1;;;;;;;3190:111:::0;:::o;17529:335::-;-1:-1:-1;;;;;17622:19:0;;17614:68;;;;-1:-1:-1;;;17614:68:0;;7964:2:1;17614:68:0;;;7946:21:1;8003:2;7983:18;;;7976:30;8042:34;8022:18;;;8015:62;-1:-1:-1;;;8093:18:1;;;8086:34;8137:19;;17614:68:0;7762:400:1;17614:68:0;-1:-1:-1;;;;;17701:21:0;;17693:68;;;;-1:-1:-1;;;17693:68:0;;8369:2:1;17693:68:0;;;8351:21:1;8408:2;8388:18;;;8381:30;8447:34;8427:18;;;8420:62;-1:-1:-1;;;8498:18:1;;;8491:32;8540:19;;17693:68:0;8167:398:1;17693:68:0;-1:-1:-1;;;;;17772:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17824:32;;1682:25:1;;;17824:32:0;;1655:18:1;17824:32:0;;;;;;;17529:335;;;:::o;10115:957::-;10204:37;10215:6;10223:9;10234:6;10204:10;:37::i;:::-;10252:38;10272:6;10280:9;10252:19;:38::i;:::-;10301:41;10316:6;10324:9;10335:6;10301:14;:41::i;:::-;10354:35;10371:6;10379:9;10354:16;:35::i;:::-;10400:39;10413:6;10421:9;10432:6;10400:12;:39::i;:::-;10451:35;10460:6;10468:9;10479:6;10451:8;:35::i;:::-;-1:-1:-1;;;;;10517:17:0;;;;;;:9;:17;;;;;;:29;;10539:6;10517:21;:29::i;:::-;-1:-1:-1;;;;;10497:17:0;;;;;;:9;:17;;;;;:49;;;;10582:32;10507:6;10604:9;10582:13;:32::i;:::-;:78;;10654:6;10582:78;;;10617:34;10625:6;10633:9;10644:6;10617:7;:34::i;:::-;-1:-1:-1;;;;;10694:20:0;;;;;;:9;:20;;;;;;10557:103;;-1:-1:-1;10694:40:0;;10557:103;10694:24;:40::i;:::-;-1:-1:-1;;;;;10671:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10750:43;;;;;;;;;;10778:14;1682:25:1;;1670:2;1655:18;;1536:177;10750:43:0;;;;;;;;-1:-1:-1;;;;;10808:24:0;;;;;;:16;:24;;;;;;;;10804:67;;10834:35;10843:6;10851:17;10861:6;10851:9;:17::i;10834:35::-;-1:-1:-1;;;;;10885:27:0;;;;;;:16;:27;;;;;;;;10881:76;;10914:41;10923:9;10934:20;10944:9;10934;:20::i;10914:41::-;-1:-1:-1;;;;;10970:17:0;;10997:1;10970:17;;;:6;:17;;;;;:24;:28;10967:64;;11000:29;11019:9;11000:18;:29::i;:::-;11041:23;11049:14;;11041:7;:23::i;:::-;10193:879;10115:957;;;:::o;1429:162::-;1515:7;1561:12;1553:6;;;;1545:29;;;;-1:-1:-1;;;1545:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1583:5:0;;;1429:162::o;21633:170::-;21703:7;21730:65;21763:31;;21730:28;21740:17;;21730:5;:9;;:28;;;;:::i;216:82::-;274:7;291:5;295:1;291;:5;:::i;304:82::-;362:7;379:5;383:1;379;:5;:::i;392:82::-;450:7;467:5;471:1;467;:5;:::i;20557:587::-;-1:-1:-1;;;;;20629:19:0;;;;;;:6;:19;;;;;:26;:31;;20626:46;;20557:587;:::o;20626:46::-;20682:14;20699:30;20717:11;20699:17;:30::i;:::-;20682:47;-1:-1:-1;20743:10:0;;20740:397;;20788:16;;:28;;20809:6;20788:20;:28::i;:::-;20769:16;:47;20838:6;;20831:44;;-1:-1:-1;;;20831:44:0;;-1:-1:-1;;;;;6796:32:1;;;20831:44:0;;;6778:51:1;6845:18;;;6838:34;;;20838:6:0;;;;20831:23;;6751:18:1;;20831:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;20890:30:0;;;;;;:17;:30;;;;;;;;20923:15;20890:48;;20989:6;:19;;;;;:33;;;:45;;21027:6;20989:37;:45::i;:::-;-1:-1:-1;;;;;20953:19:0;;;;;;:6;:19;;;;;:33;;;:81;;;;21108:26;21085:50;;:22;:50::i;:::-;-1:-1:-1;;;;;21049:19:0;;;;;;:6;:19;;;;;:33;;:86;20615:529;20557:587;:::o;18104:482::-;18191:1;18182:6;:10;:45;;;;-1:-1:-1;;;;;;18196:19:0;;;;;;:6;:19;;;;;:26;:31;18182:45;18179:177;;;21910:12;:19;;-1:-1:-1;;;;;21876:31:0;;;;;;:18;:31;;;;;:53;;;21940:30;;;;;;;;;;;;;-1:-1:-1;;;;;;21940:30:0;;;;;;18179:177;;;18276:11;;:45;;;;-1:-1:-1;;;;;;18291:19:0;;18320:1;18291:19;;;:6;:19;;;;;:26;:30;;18276:45;18273:83;;;18323:30;18341:11;18323:17;:30::i;:::-;-1:-1:-1;;;;;18396:19:0;;;;;;:6;:19;;;;;:26;18380:11;;:55;;18428:6;;18380:43;;:15;:43::i;:::-;:47;;:55::i;:::-;18366:11;:69;-1:-1:-1;;;;;18446:19:0;;;;;;:6;:19;;;;;:35;;;18528:50;18475:6;18528:22;:50::i;9668:439::-;-1:-1:-1;;;;;9772:20:0;;9764:70;;;;-1:-1:-1;;;9764:70:0;;8905:2:1;9764:70:0;;;8887:21:1;8944:2;8924:18;;;8917:30;8983:34;8963:18;;;8956:62;-1:-1:-1;;;9034:18:1;;;9027:35;9079:19;;9764:70:0;8703:401:1;9764:70:0;-1:-1:-1;;;;;9853:23:0;;9845:71;;;;-1:-1:-1;;;9845:71:0;;9311:2:1;9845:71:0;;;9293:21:1;9350:2;9330:18;;;9323:30;9389:34;9369:18;;;9362:62;-1:-1:-1;;;9440:18:1;;;9433:33;9483:19;;9845:71:0;9109:399:1;9845:71:0;9952:1;9935:6;:19;9927:73;;;;-1:-1:-1;;;9927:73:0;;9715:2:1;9927:73:0;;;9697:21:1;9754:2;9734:18;;;9727:30;9793:34;9773:18;;;9766:62;-1:-1:-1;;;9844:18:1;;;9837:39;9893:19;;9927:73:0;9513:405:1;9927:73:0;10029:17;10039:6;10029:9;:17::i;:::-;10019:6;:27;;10011:88;;;;-1:-1:-1;;;10011:88:0;;10125:2:1;10011:88:0;;;10107:21:1;10164:2;10144:18;;;10137:30;10203:34;10183:18;;;10176:62;-1:-1:-1;;;10254:18:1;;;10247:47;10311:19;;10011:88:0;9923:413:1;12538:191:0;-1:-1:-1;;;;;12631:19:0;;;;;;:11;:19;;;;;;;;12630:20;:47;;;;-1:-1:-1;;;;;;12655:22:0;;;;;;:11;:22;;;;;;;;12654:23;12630:47;12627:95;;;12687:14;;-1:-1:-1;;;12687:14:0;;;;12679:41;;;;-1:-1:-1;;;12679:41:0;;10543:2:1;12679:41:0;;;10525:21:1;10582:2;10562:18;;;10555:30;-1:-1:-1;;;10601:18:1;;;10594:44;10655:18;;12679:41:0;10341:338:1;12741:331:0;-1:-1:-1;;;;;12845:19:0;;;;;;:11;:19;;;;;;;;12844:20;:47;;;;-1:-1:-1;;;;;;12869:22:0;;;;;;:11;:22;;;;;;;;12868:23;12844:47;:77;;;;-1:-1:-1;12916:4:0;;-1:-1:-1;;;;;12895:26:0;;;12916:4;;12895:26;;12844:77;:107;;;;-1:-1:-1;;;;;;12925:26:0;;7077:42;12925:26;;12844:107;12841:224;;;13013:15;;-1:-1:-1;;;;;12976:20:0;;;;;;:9;:20;;;;;;:32;;13001:6;12976:24;:32::i;:::-;12975:53;;12967:96;;;;-1:-1:-1;;;12967:96:0;;10886:2:1;12967:96:0;;;10868:21:1;10925:2;10905:18;;;10898:30;10964:32;10944:18;;;10937:60;11014:18;;12967:96:0;10684:354:1;13080:159:0;13177:4;;-1:-1:-1;;;;;13164:17:0;;;13177:4;;13164:17;:41;;;;-1:-1:-1;;;;;;13186:19:0;;;;;;:11;:19;;;;;;;;13185:20;13164:41;13161:71;;;13228:1;13207:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;13080:159:0;;:::o;13247:341::-;13358:4;;-1:-1:-1;;;;;13348:14:0;;;13358:4;;13348:14;13345:124;;13382:14;;13372:6;:24;;:47;;;-1:-1:-1;;;;;;13400:19:0;;;;;;:11;:19;;;;;;;;13372:47;:73;;;-1:-1:-1;;;;;;13423:22:0;;;;;;:11;:22;;;;;;;;13372:73;13364:103;;;;-1:-1:-1;;;13364:103:0;;11375:2:1;13364:103:0;;;11357:21:1;11414:2;11394:18;;;11387:30;-1:-1:-1;;;11433:18:1;;;11426:47;11490:18;;13364:103:0;11173:341:1;13364:103:0;13497:12;;13487:6;:22;;:45;;;-1:-1:-1;;;;;;13513:19:0;;;;;;:11;:19;;;;;;;;13487:45;:71;;;-1:-1:-1;;;;;;13536:22:0;;;;;;:11;:22;;;;;;;;13487:71;13479:101;;;;-1:-1:-1;;;13479:101:0;;11375:2:1;13479:101:0;;;11357:21:1;11414:2;11394:18;;;11387:30;-1:-1:-1;;;11433:18:1;;;11426:47;11490:18;;13479:101:0;11173:341:1;15972:197:0;16064:41;16079:6;16087:9;16098:6;16064:14;:41::i;:::-;16061:101;;;16107:29;16122:13;;16107:14;:29::i;:::-;16158:1;16138:9;:22;15972:197;;;:::o;16177:160::-;-1:-1:-1;;;;;16283:19:0;;16258:4;16283:19;;;:11;:19;;;;;;;;16282:20;:47;;;;-1:-1:-1;;;;;;;16307:22:0;;;;;:11;:22;;;;;;;;16306:23;;16177:160;-1:-1:-1;16177:160:0:o;16658:546::-;16744:7;16800:1;16767:30;16779:6;16787:9;16767:11;:30::i;:::-;:34;16764:418;;;16813:17;16833:59;16861:30;16873:6;16881:9;16861:11;:30::i;:::-;16844:11;;16833:23;;:6;;:10;:23::i;:59::-;16948:4;16930:24;;;;:9;:24;;;;;;16813:79;;-1:-1:-1;16930:39:0;;16813:79;16930:28;:39::i;:::-;16921:4;16903:24;;;;:9;:24;;;;;;;:66;;;;16985:42;;-1:-1:-1;;;;;16985:42:0;;;;;;;17017:9;1682:25:1;;1670:2;1655:18;;1536:177;16985:42:0;;;;;;;;17041:7;;:20;17038:104;;17063:77;17081:4;7077:42;17103:36;17131:7;;17103:23;17114:11;;17103:6;:10;;:23;;;;:::i;:36::-;17063:9;:77::i;:::-;17159:21;:6;17170:9;17159:10;:21::i;:::-;17152:28;;;;;16764:418;-1:-1:-1;17190:6:0;16658:546;-1:-1:-1;;16658:546:0:o;128:82::-;186:7;203:5;207:1;203;:5;:::i;19284:676::-;19361:12;:19;19334:24;19394:21;;;19391:37;;19419:7;19284:676;:::o;19391:37::-;19438:15;19468;19486:9;19468:27;;19506:18;19539:414;19555:3;19545:7;:13;:46;;;;;19575:16;19562:10;:29;19545:46;19539:414;;;19627:16;19611:12;;:32;19608:55;;19660:1;19645:12;:16;19608:55;19680:44;19697:12;19710;;19697:26;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;19697:26:0;19680:16;:44::i;:::-;19677:115;;;19744:46;19763:12;19776;;19763:26;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;19763:26:0;19744:18;:46::i;:::-;19816:35;19828:22;19840:9;19828:7;;:11;:22::i;:::-;19816:7;;:11;:35::i;:::-;19806:45;;19876:9;19900:12;:14;;19866:19;;-1:-1:-1;19900:12:0;:14;;;:::i;:::-;;;;;;19929:12;;;;;:::i;:::-;;;;19539:414;;;19323:637;;;;19284:676;:::o;21986:288::-;22102:12;22115:19;;:21;;22135:1;;22115:21;:::i;:::-;22102:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;22067:31:0;;;;;:18;:31;;;;;;;22054:45;;22102:35;;;;;22054:45;;;;;;:::i;:::-;;;;;;;;;;;;;:83;;-1:-1:-1;;;;;;22054:83:0;-1:-1:-1;;;;;22054:83:0;;;;;;22206:31;;;;;:18;:31;;;;;;;22180:19;;22206:31;;:18;;22054:45;;22180:21;;-1:-1:-1;;22180:21:0;:::i;:::-;22167:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;22167:35:0;22148:55;;;;;;;;;;;;;;;:89;;;;22248:18;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;22248:18:0;;;;;-1:-1:-1;;;;;;22248:18:0;;;;;;-1:-1:-1;21986:288:0:o;15564:400::-;15662:4;15679:13;15705:15;;15695:6;:25;;15679:41;;15731:19;15781:13;;15753:24;15771:4;15753:9;:24::i;:::-;15813:8;;15753:41;-1:-1:-1;15753:41:0;;-1:-1:-1;15813:8:0;;15812:9;:24;;;;-1:-1:-1;15825:11:0;;;;15812:24;:42;;;;-1:-1:-1;15840:14:0;;-1:-1:-1;;;15840:14:0;;;;15812:42;:54;;;;;15858:8;15812:54;:78;;;;-1:-1:-1;;;;;;15871:19:0;;;;;;:11;:19;;;;;;;;15870:20;15812:78;:99;;;;-1:-1:-1;15907:4:0;;-1:-1:-1;;;;;15894:17:0;;;15907:4;;15894:17;15812:99;:126;;;;;15936:1;15915:9;;:23;;15812:126;:144;;;;;15942:14;15812:144;15805:151;15564:400;-1:-1:-1;;;;;;15564:400:0:o;13596:1167::-;6208:4;6197:8;;:15;;;;;;;;;;;;;;;;;;13667:20:::1;13690:82;13770:1;13691:73;13753:10;;13691:57;13733:14;;13691:37;13715:12;;13691:19;13708:1;13691:12;;:16;;:19;;;;:::i;13690:82::-;13667:105;;13783:32;13818:42;13847:12;13818:24;13829:12;;13818:6;:10;;:24;;;;:::i;:42::-;13783:77:::0;-1:-1:-1;13871:14:0::1;13888:36;:6:::0;13783:77;13888:10:::1;:36::i;:::-;13871:53:::0;-1:-1:-1;13960:21:0::1;13992:24;13871:53:::0;13992:16:::1;:24::i;:::-;14027:20;14050:41;:21;14076:14:::0;14050:25:::1;:41::i;:::-;14027:64;;14102:19;14123:48;14140:30;14157:12;;14140;:16;;:30;;;;:::i;:::-;14123:12:::0;;:16:::1;:48::i;:::-;14102:69;;14182:29;14214;14230:12;;14214:11;:15;;:29;;;;:::i;:::-;14182:61:::0;-1:-1:-1;14257:34:0;;14254:103:::1;;14293:61;14306:24;14332:21;14293:12;:61::i;:::-;14416:12;::::0;14367:23:::1;::::0;14393:36:::1;::::0;:18:::1;:11:::0;14409:1:::1;14393:15;:18::i;:36::-;14367:62:::0;-1:-1:-1;14443:19:0;;14440:79:::1;;14464:53;::::0;7272:42:::1;::::0;14464:53;::::1;;;::::0;14501:15;;14464:53:::1;::::0;;;14501:15;7272:42;14464:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14440:79;14576:10;::::0;14529:21:::1;::::0;14553:34:::1;::::0;:18:::1;:11:::0;14569:1:::1;14553:15;:18::i;:34::-;14529:58:::0;-1:-1:-1;14601:17:0;;14598:46:::1;;14620:22;14628:13;14620:7;:22::i;:::-;14657:21;:34:::0;14654:102:::1;;14693:61;::::0;7175:42:::1;::::0;14732:21:::1;14693:61:::0;::::1;;;::::0;::::1;::::0;;;14732:21;7175:42;14693:61;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14654:102;-1:-1:-1::0;;6217:8:0;:16;;-1:-1:-1;;6217:16:0;;;-1:-1:-1;;;;;;;;13596:1167:0:o;16345:305::-;-1:-1:-1;;;;;16447:13:0;;16424:7;16447:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;16464:16:0;;;;;;:5;:16;;;;;;;;16447:33;16444:76;;;16489:11;;:29;;16513:3;16489:15;:29::i;:::-;16482:36;;;;16444:76;16546:4;;-1:-1:-1;;;;;16546:4:0;;;16533:17;;;;16530:38;;-1:-1:-1;16559:7:0;;16552:14;;16530:38;16591:4;;-1:-1:-1;;;;;16591:4:0;;;16581:14;;;;16578:36;;-1:-1:-1;16604:8:0;;16597:15;;16578:36;-1:-1:-1;16631:11:0;;16345:305;;;;:::o;20120:231::-;20247:9;;-1:-1:-1;;;;;20214:30:0;;20190:4;20214:30;;;:17;:30;;;;;;20190:4;;20259:15;;20214:42;;20247:9;20214:42;:::i;:::-;:60;:129;;;;;20328:15;;20295:30;20313:11;20295:17;:30::i;:::-;:48;20207:136;20120:231;-1:-1:-1;;20120:231:0:o;15122:434::-;15212:16;;;15226:1;15212:16;;;;;;;;15188:21;;15212:16;;;;;;;;;;-1:-1:-1;15212:16:0;15188:40;;15257:4;15239;15244:1;15239:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15239:23:0;;;:7;;;;;;;;;;:23;;;;15283:6;;:13;;;-1:-1:-1;;;15283:13:0;;;;:6;;;;;:11;;:13;;;;;15239:7;;15283:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15273:4;15278:1;15273:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15273:23:0;;;:7;;;;;;;;;:23;15339:6;;15307:53;;15324:4;;15339:6;15348:11;15307:8;:53::i;:::-;15371:6;;:177;;-1:-1:-1;;;15371:177:0;;-1:-1:-1;;;;;15371:6:0;;;;:57;;:177;;15443:11;;15371:6;;15485:4;;15512;;15532:15;;15371:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15177:379;15122:434;:::o;14771:343::-;14884:6;;14852:53;;14869:4;;-1:-1:-1;;;;;14884:6:0;14893:11;14852:8;:53::i;:::-;14916:6;;:190;;-1:-1:-1;;;14916:190:0;;14979:4;14916:190;;;13705:34:1;13755:18;;;13748:34;;;14916:6:0;13798:18:1;;;13791:34;;;13841:18;;;13834:34;7368:42:0;13884:19:1;;;13877:44;15090:15:0;13937:19:1;;;13930:35;-1:-1:-1;;;;;14916:6:0;;;;:22;;14946:9;;13639:19:1;;14916:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18594:682::-;18681:6;;18674:39;;-1:-1:-1;;;18674:39:0;;18707:4;18674:39;;;1864:51:1;18650:21:0;;-1:-1:-1;;;;;18681:6:0;;18674:24;;1837:18:1;;18674:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18748:16;;;18762:1;18748:16;;;;;;;;18650:63;;-1:-1:-1;18724:21:0;;18748:16;;;;;;;;;;-1:-1:-1;;18785:6:0;;:13;;;-1:-1:-1;;;18785:13:0;;;;18724:40;;-1:-1:-1;;;;;;18785:6:0;;;;:11;;-1:-1:-1;18785:13:0;;;;;;;;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18775:4;18780:1;18775:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18775:23:0;;;:7;;;;;;;;;:23;18827:6;;18809:7;;18827:6;;;18809:4;;18827:6;;18809:7;;;;;;:::i;:::-;-1:-1:-1;;;;;18809:25:0;;;:7;;;;;;;;;:25;18845:6;;:169;;-1:-1:-1;;;18845:169:0;;:6;;;:57;;18910:9;;18845:169;;:6;;18951:4;;18978;;18998:15;;18845:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19049:6:0;;19042:39;;-1:-1:-1;;;19042:39:0;;19075:4;19042:39;;;1864:51:1;19025:14:0;;-1:-1:-1;19042:58:0;;-1:-1:-1;19086:13:0;;-1:-1:-1;;;;;;19049:6:0;;;;19042:24;;1837:18:1;;19042:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:58::-;19128:14;;19025:75;;-1:-1:-1;19128:26:0;;19025:75;19128:18;:26::i;:::-;19111:14;:43;19255:11;;19207:31;;19185:83;;19207:60;;:43;;19243:6;19207:35;:43::i;:60::-;19185:17;;;:21;:83::i;:::-;19165:17;:103;-1:-1:-1;;;;18594:682:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:316::-;1292:6;1300;1308;1361:2;1349:9;1340:7;1336:23;1332:32;1329:52;;;1377:1;1374;1367:12;1329:52;-1:-1:-1;;1400:23:1;;;1470:2;1455:18;;1442:32;;-1:-1:-1;1521:2:1;1506:18;;;1493:32;;1215:316;-1:-1:-1;1215:316:1:o;1926:456::-;2003:6;2011;2019;2072:2;2060:9;2051:7;2047:23;2043:32;2040:52;;;2088:1;2085;2078:12;2040:52;2127:9;2114:23;2146:31;2171:5;2146:31;:::i;:::-;2196:5;-1:-1:-1;2253:2:1;2238:18;;2225:32;2266:33;2225:32;2266:33;:::i;:::-;1926:456;;2318:7;;-1:-1:-1;;;2372:2:1;2357:18;;;;2344:32;;1926:456::o;2387:247::-;2446:6;2499:2;2487:9;2478:7;2474:23;2470:32;2467:52;;;2515:1;2512;2505:12;2467:52;2554:9;2541:23;2573:31;2598:5;2573:31;:::i;2828:118::-;2914:5;2907:13;2900:21;2893:5;2890:32;2880:60;;2936:1;2933;2926:12;2951:382;3016:6;3024;3077:2;3065:9;3056:7;3052:23;3048:32;3045:52;;;3093:1;3090;3083:12;3045:52;3132:9;3119:23;3151:31;3176:5;3151:31;:::i;:::-;3201:5;-1:-1:-1;3258:2:1;3243:18;;3230:32;3271:30;3230:32;3271:30;:::i;:::-;3320:7;3310:17;;;2951:382;;;;;:::o;3662:388::-;3730:6;3738;3791:2;3779:9;3770:7;3766:23;3762:32;3759:52;;;3807:1;3804;3797:12;3759:52;3846:9;3833:23;3865:31;3890:5;3865:31;:::i;:::-;3915:5;-1:-1:-1;3972:2:1;3957:18;;3944:32;3985:33;3944:32;3985:33;:::i;4055:661::-;4177:6;4185;4193;4201;4209;4217;4225;4233;4286:3;4274:9;4265:7;4261:23;4257:33;4254:53;;;4303:1;4300;4293:12;4254:53;-1:-1:-1;;4326:23:1;;;4396:2;4381:18;;4368:32;;-1:-1:-1;4447:2:1;4432:18;;4419:32;;4498:2;4483:18;;4470:32;;-1:-1:-1;4549:3:1;4534:19;;4521:33;;-1:-1:-1;4601:3:1;4586:19;;4573:33;;-1:-1:-1;4653:3:1;4638:19;;4625:33;;-1:-1:-1;4705:3:1;4690:19;4677:33;;-1:-1:-1;4055:661:1;-1:-1:-1;4055:661:1:o;4981:329::-;5183:2;5165:21;;;5222:1;5202:18;;;5195:29;-1:-1:-1;;;5255:2:1;5240:18;;5233:36;5301:2;5286:18;;4981:329::o;5315:127::-;5376:10;5371:3;5367:20;5364:1;5357:31;5407:4;5404:1;5397:15;5431:4;5428:1;5421:15;5447:168;5520:9;;;5551;;5568:15;;;5562:22;;5548:37;5538:71;;5589:18;;:::i;5620:217::-;5660:1;5686;5676:132;;5730:10;5725:3;5721:20;5718:1;5711:31;5765:4;5762:1;5755:15;5793:4;5790:1;5783:15;5676:132;-1:-1:-1;5822:9:1;;5620:217::o;6883:245::-;6950:6;7003:2;6991:9;6982:7;6978:23;6974:32;6971:52;;;7019:1;7016;7009:12;6971:52;7051:9;7045:16;7070:28;7092:5;7070:28;:::i;8570:128::-;8637:9;;;8658:11;;;8655:37;;;8672:18;;:::i;11043:125::-;11108:9;;;11129:10;;;11126:36;;;11142:18;;:::i;11519:127::-;11580:10;11575:3;11571:20;11568:1;11561:31;11611:4;11608:1;11601:15;11635:4;11632:1;11625:15;11651:135;11690:3;11711:17;;;11708:43;;11731:18;;:::i;:::-;-1:-1:-1;11778:1:1;11767:13;;11651:135::o;11791:127::-;11852:10;11847:3;11843:20;11840:1;11833:31;11883:4;11880:1;11873:15;11907:4;11904:1;11897:15;12055:251;12125:6;12178:2;12166:9;12157:7;12153:23;12149:32;12146:52;;;12194:1;12191;12184:12;12146:52;12226:9;12220:16;12245:31;12270:5;12245:31;:::i;12311:461::-;12364:3;12402:5;12396:12;12429:6;12424:3;12417:19;12455:4;12484:2;12479:3;12475:12;12468:19;;12521:2;12514:5;12510:14;12542:1;12552:195;12566:6;12563:1;12560:13;12552:195;;;12631:13;;-1:-1:-1;;;;;12627:39:1;12615:52;;12687:12;;;;12722:15;;;;12663:1;12581:9;12552:195;;;-1:-1:-1;12763:3:1;;12311:461;-1:-1:-1;;;;;12311:461:1:o;12777:582::-;13076:6;13065:9;13058:25;13119:6;13114:2;13103:9;13099:18;13092:34;13162:3;13157:2;13146:9;13142:18;13135:31;13039:4;13183:57;13235:3;13224:9;13220:19;13212:6;13183:57;:::i;:::-;-1:-1:-1;;;;;13276:32:1;;;;13271:2;13256:18;;13249:60;-1:-1:-1;13340:3:1;13325:19;13318:35;13175:65;12777:582;-1:-1:-1;;;12777:582:1:o;13976:306::-;14064:6;14072;14080;14133:2;14121:9;14112:7;14108:23;14104:32;14101:52;;;14149:1;14146;14139:12;14101:52;14178:9;14172:16;14162:26;;14228:2;14217:9;14213:18;14207:25;14197:35;;14272:2;14261:9;14257:18;14251:25;14241:35;;13976:306;;;;;:::o;14287:184::-;14357:6;14410:2;14398:9;14389:7;14385:23;14381:32;14378:52;;;14426:1;14423;14416:12;14378:52;-1:-1:-1;14449:16:1;;14287:184;-1:-1:-1;14287:184:1:o;14476:510::-;14747:6;14736:9;14729:25;14790:3;14785:2;14774:9;14770:18;14763:31;14710:4;14811:57;14863:3;14852:9;14848:19;14840:6;14811:57;:::i;:::-;-1:-1:-1;;;;;14904:32:1;;;;14899:2;14884:18;;14877:60;-1:-1:-1;14968:2:1;14953:18;14946:34;14803:65;14476:510;-1:-1:-1;;14476:510:1:o
Swarm Source
ipfs://02f14474e7683bfd1381de545ed0a124910feb8e45eebbfd5973a651ee679764
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.