ETH Price: $3,041.52 (+2.78%)
Gas: 2 Gwei

Token

Sanada Yukimura (YUKIMURA)
 

Overview

Max Total Supply

10,000,000,000 YUKIMURA

Holders

90

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 YUKIMURA

Value
$0.00
0x677847a700864762cd407f784aeef3a86bec1758
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SanadaYukimura

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-26
*/

// SPDX-License-Identifier: Unlicensed
/* 

https://www.sanadayukimura.com/

Taxes:
1% on buy
8% on sell

https://medium.com/@SanadaYukimuraMEV
*/
pragma solidity ^0.6.12;

    abstract contract Context {
        function _msgSender() internal view virtual returns (address payable) {
            return msg.sender;
        }
        function _msgData() internal view virtual returns (bytes memory) {
            this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
            return msg.data;
        }
    }

    interface IERC20 {
        function totalSupply() external view returns (uint256);
        function balanceOf(address account) external view returns (uint256);
        function transfer(address recipient, uint256 amount) external returns (bool);
        function allowance(address owner, address spender) external view returns (uint256);
        function approve(address spender, uint256 amount) external returns (bool);
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }

    library SafeMath {
        function add(uint256 a, uint256 b) internal pure returns (uint256) {
            uint256 c = a + b;
            require(c >= a, "SafeMath: addition overflow");
            return c;
        }
        function sub(uint256 a, uint256 b) internal pure returns (uint256) {
            return sub(a, b, "SafeMath: subtraction overflow");
        }
        function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            require(b <= a, errorMessage);
            uint256 c = a - b;
            return c;
        }
        function mul(uint256 a, uint256 b) internal pure returns (uint256) {
            if (a == 0) {
                return 0;
            }
            uint256 c = a * b;
            require(c / a == b, "SafeMath: multiplication overflow");
            return c;
        }
        function div(uint256 a, uint256 b) internal pure returns (uint256) {
            return div(a, b, "SafeMath: division by zero");
        }
        function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            require(b > 0, errorMessage);
            uint256 c = a / b;
            return c;
        }
        function mod(uint256 a, uint256 b) internal pure returns (uint256) {
            return mod(a, b, "SafeMath: modulo by zero");
        }
        function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            require(b != 0, errorMessage);
            return a % b;
        }
    }

    library Address {
        function isContract(address account) internal view returns (bool) {
            bytes32 codehash;
            bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
            assembly { codehash := extcodehash(account) }
            return (codehash != accountHash && codehash != 0x0);
        }
        function sendValue(address payable recipient, uint256 amount) internal {
            require(address(this).balance >= amount, "Address: insufficient balance");
            (bool success, ) = recipient.call{ value: amount }("");
            require(success, "Address: unable to send value, recipient may have reverted");
        }
        function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
        }
        function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
            return _functionCallWithValue(target, data, 0, errorMessage);
        }
        function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
            return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
        }
        function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
            require(address(this).balance >= value, "Address: insufficient balance for call");
            return _functionCallWithValue(target, data, value, errorMessage);
        }
        function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
            require(isContract(target), "Address: call to non-contract");
            (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
            if (success) {
                return returndata;
            } else {
                if (returndata.length > 0) {
                    assembly {
                        let returndata_size := mload(returndata)
                        revert(add(32, returndata), returndata_size)
                    }
                } else {
                    revert(errorMessage);
                }
            }
        }
    }

    contract Ownable is Context {
        address private _owner;
        address private _previousOwner;
        uint256 private _lockTime;
        event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
        constructor () internal {
            address msgSender = _msgSender();
            _owner = msgSender;
            emit OwnershipTransferred(address(0), msgSender);
        }
        function owner() public view returns (address) {
            return _owner;
        }
        modifier onlyOwner() {
            require(_owner == _msgSender(), "Ownable: caller is not the owner");
            _;
        }
        function renounceOwnership() public virtual onlyOwner {
            emit OwnershipTransferred(_owner, address(0));
            _owner = address(0);
        }
        function transferOwnership(address newOwner) public virtual onlyOwner {
            require(newOwner != address(0), "Ownable: new owner is the zero address");
            emit OwnershipTransferred(_owner, newOwner);
            _owner = newOwner;
        }
        function geUnlockTime() public view returns (uint256) {
            return _lockTime;
        }
        function lock(uint256 time) public virtual onlyOwner {
            _previousOwner = _owner;
            _owner = address(0);
            _lockTime = now + time;
            emit OwnershipTransferred(_owner, address(0));
        }
        function unlock() public virtual {
            require(_previousOwner == msg.sender, "You don't have permission to unlock");
            require(now > _lockTime , "Contract is locked until 7 days");
            emit OwnershipTransferred(_owner, _previousOwner);
            _owner = _previousOwner;
        }
    }  

    interface IUniswapV2Factory {
        event PairCreated(address indexed token0, address indexed token1, address pair, uint);
        function feeTo() external view returns (address);
        function feeToSetter() external view returns (address);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
        function allPairs(uint) external view returns (address pair);
        function allPairsLength() external view returns (uint);
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function setFeeTo(address) external;
        function setFeeToSetter(address) external;
    } 

    interface IUniswapV2Pair {
        event Approval(address indexed owner, address indexed spender, uint value);
        event Transfer(address indexed from, address indexed to, uint value);
        function name() external pure returns (string memory);
        function symbol() external pure returns (string memory);
        function decimals() external pure returns (uint8);
        function totalSupply() external view returns (uint);
        function balanceOf(address owner) external view returns (uint);
        function allowance(address owner, address spender) external view returns (uint);
        function approve(address spender, uint value) external returns (bool);
        function transfer(address to, uint value) external returns (bool);
        function transferFrom(address from, address to, uint value) external returns (bool);
        function DOMAIN_SEPARATOR() external view returns (bytes32);
        function PERMIT_TYPEHASH() external pure returns (bytes32);
        function nonces(address owner) external view returns (uint);
        function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
        event Mint(address indexed sender, uint amount0, uint amount1);
        event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
        event Swap(
            address indexed sender,
            uint amount0In,
            uint amount1In,
            uint amount0Out,
            uint amount1Out,
            address indexed to
        );
        event Sync(uint112 reserve0, uint112 reserve1);
        function MINIMUM_LIQUIDITY() external pure returns (uint);
        function factory() external view returns (address);
        function token0() external view returns (address);
        function token1() external view returns (address);
        function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
        function price0CumulativeLast() external view returns (uint);
        function price1CumulativeLast() external view returns (uint);
        function kLast() external view returns (uint);
        function mint(address to) external returns (uint liquidity);
        function burn(address to) external returns (uint amount0, uint amount1);
        function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
        function skim(address to) external;
        function sync() external;
        function initialize(address, address) external;
    }

    interface IUniswapV2Router01 {
        function factory() external pure returns (address);
        function WETH() external pure returns (address);
        function addLiquidity(
            address tokenA,
            address tokenB,
            uint amountADesired,
            uint amountBDesired,
            uint amountAMin,
            uint amountBMin,
            address to,
            uint deadline
        ) external returns (uint amountA, uint amountB, uint liquidity);
        function addLiquidityETH(
            address token,
            uint amountTokenDesired,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline
        ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
        function removeLiquidity(
            address tokenA,
            address tokenB,
            uint liquidity,
            uint amountAMin,
            uint amountBMin,
            address to,
            uint deadline
        ) external returns (uint amountA, uint amountB);
        function removeLiquidityETH(
            address token,
            uint liquidity,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline
        ) external returns (uint amountToken, uint amountETH);
        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 removeLiquidityETHWithPermit(
            address token,
            uint liquidity,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline,
            bool approveMax, uint8 v, bytes32 r, bytes32 s
        ) external returns (uint amountToken, uint amountETH);
        function swapExactTokensForTokens(
            uint amountIn,
            uint amountOutMin,
            address[] calldata path,
            address to,
            uint deadline
        ) external returns (uint[] memory amounts);
        function swapTokensForExactTokens(
            uint amountOut,
            uint amountInMax,
            address[] calldata path,
            address to,
            uint deadline
        ) external returns (uint[] memory amounts);
        function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
            external
            payable
            returns (uint[] memory amounts);
        function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
            external
            returns (uint[] memory amounts);
        function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
            external
            returns (uint[] memory amounts);
        function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
            external
            payable
            returns (uint[] memory amounts);

        function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
        function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
        function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
        function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
        function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
    }

    interface IUniswapV2Router02 is IUniswapV2Router01 {
        function removeLiquidityETHSupportingFeeOnTransferTokens(
            address token,
            uint liquidity,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline
        ) external returns (uint amountETH);
        function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
            address token,
            uint liquidity,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline,
            bool approveMax, uint8 v, bytes32 r, bytes32 s
        ) external returns (uint amountETH);

        function swapExactTokensForTokensSupportingFeeOnTransferTokens(
            uint amountIn,
            uint amountOutMin,
            address[] calldata path,
            address to,
            uint deadline
        ) external;
        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 SanadaYukimura is Context, IERC20, Ownable {
        using SafeMath for uint256;
        using Address for address;

        mapping (address => bool) public _isBlacklisted;
        mapping (address => uint256) private _rOwned;
        mapping (address => uint256) private _tOwned;
        mapping (address => mapping (address => uint256)) private _allowances;
        mapping (address => bool) private _isExcludedFromFee;

        mapping (address => bool) private _isExcluded;
        address[] private _excluded;
    
        uint256 private constant MAX = ~uint256(0);
        uint256 private _tTotal = 10000000000 * 10**9;
        uint256 private _rTotal = (MAX - (MAX % _tTotal));
        uint256 private _tFeeTotal;

        string private _name = 'Sanada Yukimura';
        string private _symbol = 'YUKIMURA';
        uint8 private _decimals = 9;

        uint256 private _taxFee = 1; 
        uint256 private _MarketingFee = 7;
        uint256 private _previousTaxFee = _taxFee;
        uint256 private _previousMarketingFee = _MarketingFee;

        address payable public _MarketingWalletAddress;
        
        IUniswapV2Router02 public immutable uniswapV2Router;
        address public immutable uniswapV2Pair;

        bool inSwap = false;
        bool public swapEnabled = true;

        uint256 private _maxTxAmount = 200000000e9;
        // We will set a minimum amount of tokens to be swaped => 5M
        uint256 private _numOfTokensToExchangeForMarketing = 5 * 10**3 * 10**9;

        event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
        event SwapEnabledUpdated(bool enabled);

        modifier lockTheSwap {
            inSwap = true;
            _;
            inSwap = false;
        }

        constructor (address payable MarketingWalletAddress) public {
            _MarketingWalletAddress = MarketingWalletAddress;
            _rOwned[_msgSender()] = _rTotal;

            IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            // Create a uniswap pair for this new token
            uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());

            // set the rest of the contract variables
            uniswapV2Router = _uniswapV2Router;

            // Exclude owner and this contract from fee
            _isExcludedFromFee[owner()] = true;
            _isExcludedFromFee[address(this)] = true;
            _isExcludedFromFee[_MarketingWalletAddress] = true;
       

            emit Transfer(address(0), _msgSender(), _tTotal);
        }

        function name() public view returns (string memory) {return _name;}
        function symbol() public view returns (string memory) {return _symbol;}
        function decimals() public view returns (uint8) {return _decimals;}
        function totalSupply() public view override returns (uint256) {return _tTotal;}

        function balanceOf(address account) public view override returns (uint256) {
            if (_isExcluded[account]) return _tOwned[account];
            return tokenFromReflection(_rOwned[account]);
        }

        function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
        }

        function allowance(address owner, address spender) public view override returns (uint256) {
            return _allowances[owner][spender];
        }

        function approve(address spender, uint256 amount) public override returns (bool) {
            _approve(_msgSender(), spender, amount);
            return true;
        }

        function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
            _transfer(sender, recipient, amount);
            _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
            return true;
        }

        function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
            _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
            return true;
        }

        function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
            _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
            return true;
        }

        function isExcluded(address account) public view returns (bool) {
            return _isExcluded[account];
        }

        function setExcludeFromFee(address account, bool excluded) external onlyOwner() {
            _isExcludedFromFee[account] = excluded;
        }

        function totalFees() public view returns (uint256) {return _tFeeTotal;}

        function deliver(uint256 tAmount) public {
            address sender = _msgSender();
            require(!_isExcluded[sender], "Excluded addresses cannot call this function");
            (uint256 rAmount,,,,,) = _getValues(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _rTotal = _rTotal.sub(rAmount);
            _tFeeTotal = _tFeeTotal.add(tAmount);
        }

        function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
            require(tAmount <= _tTotal, "Amount must be less than supply");
            if (!deductTransferFee) {
                (uint256 rAmount,,,,,) = _getValues(tAmount);
                return rAmount;
            } else {
                (,uint256 rTransferAmount,,,,) = _getValues(tAmount);
                return rTransferAmount;
            }
        }

        function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
            require(rAmount <= _rTotal, "Amount must be less than total reflections");
            uint256 currentRate =  _getRate();
            return rAmount.div(currentRate);
        }

        function excludeAccount(address account) external onlyOwner() {
            require(account != 0x50e617C888934F49054e8D0D23E8EED62b7a4395, 'We can not exclude Uniswap router.');
            require(!_isExcluded[account], "Account is already excluded");
            if(_rOwned[account] > 0) {
                _tOwned[account] = tokenFromReflection(_rOwned[account]);
            }
            _isExcluded[account] = true;
            _excluded.push(account);
        }

        function includeAccount(address account) external onlyOwner() {
            require(_isExcluded[account], "Account is already excluded");
            for (uint256 i = 0; i < _excluded.length; i++) {
                if (_excluded[i] == account) {
                    _excluded[i] = _excluded[_excluded.length - 1];
                    _tOwned[account] = 0;
                    _isExcluded[account] = false;
                    _excluded.pop();
                    break;
                }
            }
        }

        function removeAllFee() private {
            if(_taxFee == 0 && _MarketingFee == 0) return;
            
            _previousTaxFee = _taxFee;
            _previousMarketingFee = _MarketingFee;
            
            _taxFee = 0;
            _MarketingFee = 0;
        }
    
        function restoreAllFee() private {
            _taxFee = _previousTaxFee;
            _MarketingFee = _previousMarketingFee;
        }
    
        function isExcludedFromFee(address account) public view returns(bool) {
            return _isExcludedFromFee[account];
        }

        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 _transfer(address sender, address recipient, uint256 amount) private {
            //blacklisted addresses can not buy! If you have ever used a bot, or scammed anybody, then you're wallet address will probably be blacklisted.
            require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "This address is blacklisted");
            require(sender != address(0), "ERC20: transfer from the zero address");
            require(recipient != address(0), "ERC20: transfer to the zero address");
            require(amount > 0, "Transfer amount must be greater than zero");
            
            if(sender != owner() && recipient != owner())
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");

            // is the token balance of this contract address over the min number of
            // tokens that we need to initiate a swap?
            // also, don't swap if sender is uniswap pair.
            uint256 contractTokenBalance = balanceOf(address(this));
            
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            bool overMinTokenBalance = contractTokenBalance >= _numOfTokensToExchangeForMarketing;
            if (!inSwap && swapEnabled && overMinTokenBalance && sender != uniswapV2Pair) {
                // We need to swap the current tokens to ETH and send to the Marketing wallet
                swapTokensForEth(contractTokenBalance);
                
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToMarketing(address(this).balance);
                }
            }
            
            //indicates if fee should be deducted from transfer
            bool takeFee = true;
            
            //if any account belongs to _isExcludedFromFee account then remove the fee
            if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){
                takeFee = false;
            }
            
            //transfer amount, it will take tax and Marketing fee
            _tokenTransfer(sender,recipient,amount,takeFee);
        }

        function swapTokensForEth(uint256 tokenAmount) private lockTheSwap{
            // generate the uniswap pair path of token -> weth
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();

            _approve(address(this), address(uniswapV2Router), tokenAmount);

            // make the swap
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0, // accept any amount of ETH
                path,
                address(this),
                block.timestamp
            );
        }
        
        function sendETHToMarketing(uint256 amount) private {
            _MarketingWalletAddress.transfer(amount.mul(3).div(8));
          
        }
        
        // We are exposing these functions to be able to manual swap and send
        // in case the token is highly valued and 5M becomes too much
        function manualSwap() external onlyOwner() {
            uint256 contractBalance = balanceOf(address(this));
            swapTokensForEth(contractBalance);
        }
        
        function manualSend() external {
            require(msg.sender==_MarketingWalletAddress);
            uint256 contractETHBalance = address(this).balance;
            sendETHToMarketing(contractETHBalance);
        }

        function setSwapEnabled(bool enabled) external onlyOwner(){
            swapEnabled = enabled;
        }
        
        function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
            if(!takeFee)
                removeAllFee();

            if (_isExcluded[sender] && !_isExcluded[recipient]) {
                _transferFromExcluded(sender, recipient, amount);
            } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
                _transferToExcluded(sender, recipient, amount);
            } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
                _transferStandard(sender, recipient, amount);
            } else if (_isExcluded[sender] && _isExcluded[recipient]) {
                _transferBothExcluded(sender, recipient, amount);
            } else {
                _transferStandard(sender, recipient, amount);
            }

            if(!takeFee)
                restoreAllFee();
        }

        function _transferStandard(address sender, address recipient, uint256 tAmount) private {
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tMarketing) = _getValues(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
            _takeMarketing(tMarketing); 
            _reflectFee(rFee, tFee);
            emit Transfer(sender, recipient, tTransferAmount);
        }

        function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tMarketing) = _getValues(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
            _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);    
            _takeMarketing(tMarketing);           
            _reflectFee(rFee, tFee);
            emit Transfer(sender, recipient, tTransferAmount);
        }

        function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tMarketing) = _getValues(tAmount);
            _tOwned[sender] = _tOwned[sender].sub(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
            _takeMarketing(tMarketing);   
            _reflectFee(rFee, tFee);
            emit Transfer(sender, recipient, tTransferAmount);
        }

        function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tMarketing) = _getValues(tAmount);
            _tOwned[sender] = _tOwned[sender].sub(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
            _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
            _takeMarketing(tMarketing);         
            _reflectFee(rFee, tFee);
            emit Transfer(sender, recipient, tTransferAmount);
        }

        function _takeMarketing(uint256 tMarketing) private {
            uint256 currentRate =  _getRate();
            uint256 rMarketing = tMarketing.mul(currentRate);
            _rOwned[address(this)] = _rOwned[address(this)].add(rMarketing);
            if(_isExcluded[address(this)])
                _tOwned[address(this)] = _tOwned[address(this)].add(tMarketing);
        }

        function _reflectFee(uint256 rFee, uint256 tFee) private {
            _rTotal = _rTotal.sub(rFee);
            _tFeeTotal = _tFeeTotal.add(tFee);
        }

         //to recieve ETH from uniswapV2Router when swaping
        receive() external payable {}

        function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
            (uint256 tTransferAmount, uint256 tFee, uint256 tMarketing) = _getTValues(tAmount, _taxFee, _MarketingFee);
            uint256 currentRate =  _getRate();
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
            return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tMarketing);
        }

        function _getTValues(uint256 tAmount, uint256 taxFee, uint256 MarketingFee) private pure returns (uint256, uint256, uint256) {
            uint256 tFee = tAmount.mul(taxFee).div(100);
            uint256 tMarketing = tAmount.mul(MarketingFee).div(100);
            uint256 tTransferAmount = tAmount.sub(tFee).sub(tMarketing);
            return (tTransferAmount, tFee, tMarketing);
        }

        function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
            uint256 rAmount = tAmount.mul(currentRate);
            uint256 rFee = tFee.mul(currentRate);
            uint256 rTransferAmount = rAmount.sub(rFee);
            return (rAmount, rTransferAmount, rFee);
        }

        function _getRate() private view returns(uint256) {
            (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
            return rSupply.div(tSupply);
        }

        function _getCurrentSupply() private view returns(uint256, uint256) {
            uint256 rSupply = _rTotal;
            uint256 tSupply = _tTotal;      
            for (uint256 i = 0; i < _excluded.length; i++) {
                if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
                rSupply = rSupply.sub(_rOwned[_excluded[i]]);
                tSupply = tSupply.sub(_tOwned[_excluded[i]]);
            }
            if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
            return (rSupply, tSupply);
        }
        
        function _getTaxFee() private view returns(uint256) {return _taxFee;}
        function _getMaxTxAmount() public view returns(uint256) {return _maxTxAmount;}
        function _getETHBalance() public view returns(uint256 balance) {return address(this).balance;}
        
        function _setTaxFee(uint256 taxFee) external onlyOwner() {
            require(taxFee >= 0 && taxFee <= 10, 'taxFee should be in 0 - 10');
            _taxFee = taxFee;
        }

        function _setMarketingFee(uint256 MarketingFee) external onlyOwner() {
            require(MarketingFee >= 1 && MarketingFee <= 10, 'MarketingFee should be in 1 - 10');
            _MarketingFee = MarketingFee;
        }
        
        function _setMarketingWallet(address payable MarketingWalletAddress) external onlyOwner() {
            _MarketingWalletAddress = MarketingWalletAddress;
        }
        
        function _setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {_maxTxAmount = maxTxAmount;}
        function removeFromBlackList(address account) external onlyOwner{_isBlacklisted[account] = false;}

         //adding multiple address to the blacklist - used to manually block known bots and scammers
        function addToBlackList(address[] calldata  addresses) external onlyOwner {
        for(uint256 i; i < addresses.length; ++i) {
            _isBlacklisted[addresses[i]] = true;
            }
        }
   
    }

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"MarketingWalletAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapEnabledUpdated","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":"_MarketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getETHBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"MarketingFee","type":"uint256"}],"name":"_setMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"MarketingWalletAddress","type":"address"}],"name":"_setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"_setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"_setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"addToBlackList","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

678ac7230489e80000600a5567693fcf03e3d7ffff19600b55610100604052600f60c08190526e53616e6164612059756b696d75726160881b60e09081526200004c91600d919062000419565b506040805180820190915260088082526759554b494d55524160c01b60209092019182526200007e91600e9162000419565b50600f805460ff1916600917905560016010819055600760118190556012919091556013556014805461ffff60a01b1916600160a81b1790556702c68af0bb14000060155565048c27395000601655348015620000da57600080fd5b506040516200328d3803806200328d833981810160405260208110156200010057600080fd5b505160006200010e62000406565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601480546001600160a01b0319166001600160a01b038316179055600b54600460006200018462000406565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001fb57600080fd5b505afa15801562000210573d6000803e3d6000fd5b505050506040513d60208110156200022757600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b1580156200027857600080fd5b505afa1580156200028d573d6000803e3d6000fd5b505050506040513d6020811015620002a457600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015620002f757600080fd5b505af11580156200030c573d6000803e3d6000fd5b505050506040513d60208110156200032357600080fd5b50516001600160601b0319606091821b811660a0529082901b16608052600160076000620003506200040a565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007909352818320805485166001908117909155601454909116835291208054909216179055620003b162000406565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040518082815260200191505060405180910390a35050620004b5565b3390565b6000546001600160a01b031690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200045c57805160ff19168380011785556200048c565b828001600101855582156200048c579182015b828111156200048c5782518255916020019190600101906200046f565b506200049a9291506200049e565b5090565b5b808211156200049a57600081556001016200049f565b60805160601c60a05160601c612d9a620004f360003980610e525280611e53525080610a905280612165528061221d52806122445250612d9a6000f3fe6080604052600436106102555760003560e01c8063715018a611610139578063dd467064116100b6578063f2fde38b1161007a578063f2fde38b146108b2578063f4293890146108e5578063f7a91591146108fa578063f815a8421461090f578063f84354f114610924578063ff897570146109575761025c565b8063dd467064146107d9578063dd62ed3e14610803578063e01af92c1461083e578063eedeacbe1461086a578063f2cc0c181461087f5761025c565b8063a69df4b5116100fd578063a69df4b514610708578063a9059cbb1461071d578063af9549e014610756578063b6c5232414610791578063cba0e996146107a65761025c565b8063715018a6146106665780638da5cb5b1461067b57806395d89b4114610690578063a457c2d7146106a5578063a52fe9bb146106de5761025c565b8063313ce567116101d25780634a49ac4c116101965780634a49ac4c1461057957806351bc3c85146105ac5780635342acb4146105c15780635880b873146105f45780636ddd17131461061e57806370a08231146106335761025c565b8063313ce567146104a457806339509351146104cf5780633bd5d173146105085780634549b0391461053257806349bd5a5e146105645761025c565b80631bbae6e0116102195780631bbae6e0146103a55780631cdd3be3146103d15780631ff53b601461040457806323b872dd146104375780632d8381191461047a5761025c565b806306fdde0314610261578063095ea7b3146102eb57806313114a9d146103385780631694505e1461035f57806318160ddd146103905761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109d4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102b0578181015183820152602001610298565b50505050905090810190601f1680156102dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f757600080fd5b506103246004803603604081101561030e57600080fd5b506001600160a01b038135169060200135610a6a565b604080519115158252519081900360200190f35b34801561034457600080fd5b5061034d610a88565b60408051918252519081900360200190f35b34801561036b57600080fd5b50610374610a8e565b604080516001600160a01b039092168252519081900360200190f35b34801561039c57600080fd5b5061034d610ab2565b3480156103b157600080fd5b506103cf600480360360208110156103c857600080fd5b5035610ab8565b005b3480156103dd57600080fd5b50610324600480360360208110156103f457600080fd5b50356001600160a01b0316610b15565b34801561041057600080fd5b506103cf6004803603602081101561042757600080fd5b50356001600160a01b0316610b2a565b34801561044357600080fd5b506103246004803603606081101561045a57600080fd5b506001600160a01b03813581169160208101359091169060400135610ba4565b34801561048657600080fd5b5061034d6004803603602081101561049d57600080fd5b5035610c2b565b3480156104b057600080fd5b506104b9610c8d565b6040805160ff9092168252519081900360200190f35b3480156104db57600080fd5b50610324600480360360408110156104f257600080fd5b506001600160a01b038135169060200135610c96565b34801561051457600080fd5b506103cf6004803603602081101561052b57600080fd5b5035610ce4565b34801561053e57600080fd5b5061034d6004803603604081101561055557600080fd5b50803590602001351515610dbe565b34801561057057600080fd5b50610374610e50565b34801561058557600080fd5b506103cf6004803603602081101561059c57600080fd5b50356001600160a01b0316610e74565b3480156105b857600080fd5b506103cf610eed565b3480156105cd57600080fd5b50610324600480360360208110156105e457600080fd5b50356001600160a01b0316610f5e565b34801561060057600080fd5b506103cf6004803603602081101561061757600080fd5b5035610f7c565b34801561062a57600080fd5b5061032461102f565b34801561063f57600080fd5b5061034d6004803603602081101561065657600080fd5b50356001600160a01b031661103f565b34801561067257600080fd5b506103cf6110a1565b34801561068757600080fd5b50610374611131565b34801561069c57600080fd5b50610276611140565b3480156106b157600080fd5b50610324600480360360408110156106c857600080fd5b506001600160a01b0381351690602001356111a1565b3480156106ea57600080fd5b506103cf6004803603602081101561070157600080fd5b5035611209565b34801561071457600080fd5b506103cf6112c9565b34801561072957600080fd5b506103246004803603604081101561074057600080fd5b506001600160a01b0381351690602001356113b7565b34801561076257600080fd5b506103cf6004803603604081101561077957600080fd5b506001600160a01b03813516906020013515156113cb565b34801561079d57600080fd5b5061034d61144e565b3480156107b257600080fd5b50610324600480360360208110156107c957600080fd5b50356001600160a01b0316611454565b3480156107e557600080fd5b506103cf600480360360208110156107fc57600080fd5b5035611472565b34801561080f57600080fd5b5061034d6004803603604081101561082657600080fd5b506001600160a01b0381358116916020013516611510565b34801561084a57600080fd5b506103cf6004803603602081101561086157600080fd5b5035151561153b565b34801561087657600080fd5b506103746115b1565b34801561088b57600080fd5b506103cf600480360360208110156108a257600080fd5b50356001600160a01b03166115c0565b3480156108be57600080fd5b506103cf600480360360208110156108d557600080fd5b50356001600160a01b03166117a2565b3480156108f157600080fd5b506103cf611888565b34801561090657600080fd5b5061034d6118a9565b34801561091b57600080fd5b5061034d6118af565b34801561093057600080fd5b506103cf6004803603602081101561094757600080fd5b50356001600160a01b03166118b3565b34801561096357600080fd5b506103cf6004803603602081101561097a57600080fd5b81019060208101813564010000000081111561099557600080fd5b8201836020820111156109a757600080fd5b803590602001918460208302840111640100000000831117156109c957600080fd5b509092509050611a74565b600d8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a605780601f10610a3557610100808354040283529160200191610a60565b820191906000526020600020905b815481529060010190602001808311610a4357829003601f168201915b5050505050905090565b6000610a7e610a77611b27565b8484611b2b565b5060015b92915050565b600c5490565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a5490565b610ac0611b27565b6000546001600160a01b03908116911614610b10576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b601555565b60036020526000908152604090205460ff1681565b610b32611b27565b6000546001600160a01b03908116911614610b82576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bb1848484611c17565b610c2184610bbd611b27565b610c1c85604051806060016040528060288152602001612bf5602891396001600160a01b038a16600090815260066020526040812090610bfb611b27565b6001600160a01b031681526020810191909152604001600020549190611f07565b611b2b565b5060019392505050565b6000600b54821115610c6e5760405162461bcd60e51b815260040180806020018281038252602a815260200180612b3a602a913960400191505060405180910390fd5b6000610c78611f9e565b9050610c848382611fc1565b9150505b919050565b600f5460ff1690565b6000610a7e610ca3611b27565b84610c1c8560066000610cb4611b27565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061200a565b6000610cee611b27565b6001600160a01b03811660009081526008602052604090205490915060ff1615610d495760405162461bcd60e51b815260040180806020018281038252602c815260200180612cf1602c913960400191505060405180910390fd5b6000610d5483612064565b505050506001600160a01b038416600090815260046020526040902054919250610d80919050826120c0565b6001600160a01b038316600090815260046020526040902055600b54610da690826120c0565b600b55600c54610db6908461200a565b600c55505050565b6000600a54831115610e17576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610e36576000610e2784612064565b50939550610a82945050505050565b6000610e4184612064565b50929550610a82945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610e7c611b27565b6000546001600160a01b03908116911614610ecc576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19169055565b610ef5611b27565b6000546001600160a01b03908116911614610f45576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6000610f503061103f565b9050610f5b81612102565b50565b6001600160a01b031660009081526007602052604090205460ff1690565b610f84611b27565b6000546001600160a01b03908116911614610fd4576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b600a81111561102a576040805162461bcd60e51b815260206004820152601a60248201527f7461784665652073686f756c6420626520696e2030202d203130000000000000604482015290519081900360640190fd5b601055565b601454600160a81b900460ff1681565b6001600160a01b03811660009081526008602052604081205460ff161561107f57506001600160a01b038116600090815260056020526040902054610c88565b6001600160a01b038216600090815260046020526040902054610a8290610c2b565b6110a9611b27565b6000546001600160a01b039081169116146110f9576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b600080546040516001600160a01b0390911690600080516020612c3d833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600e8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a605780601f10610a3557610100808354040283529160200191610a60565b6000610a7e6111ae611b27565b84610c1c85604051806060016040528060258152602001612d4060259139600660006111d8611b27565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611f07565b611211611b27565b6000546001600160a01b03908116911614611261576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b600181101580156112735750600a8111155b6112c4576040805162461bcd60e51b815260206004820181905260248201527f4d61726b6574696e674665652073686f756c6420626520696e2031202d203130604482015290519081900360640190fd5b601155565b6001546001600160a01b031633146113125760405162461bcd60e51b8152600401808060200182810382526023815260200180612d1d6023913960400191505060405180910390fd5b6002544211611368576040805162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300604482015290519081900360640190fd5b600154600080546040516001600160a01b039384169390911691600080516020612c3d83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610a7e6113c4611b27565b8484611c17565b6113d3611b27565b6000546001600160a01b03908116911614611423576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b60025490565b6001600160a01b031660009081526008602052604090205460ff1690565b61147a611b27565b6000546001600160a01b039081169116146114ca576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b60008054600180546001600160a01b03199081166001600160a01b038416179091551681554282016002556040518190600080516020612c3d833981519152908290a350565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b611543611b27565b6000546001600160a01b03908116911614611593576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b60148054911515600160a81b0260ff60a81b19909216919091179055565b6014546001600160a01b031681565b6115c8611b27565b6000546001600160a01b03908116911614611618576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b7350e617c888934f49054e8d0d23e8eed62b7a43956001600160a01b03821614156116745760405162461bcd60e51b8152600401808060200182810382526022815260200180612ccf6022913960400191505060405180910390fd5b6001600160a01b03811660009081526008602052604090205460ff16156116e2576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020541561173c576001600160a01b03811660009081526004602052604090205461172290610c2b565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6117aa611b27565b6000546001600160a01b039081169116146117fa576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03811661183f5760405162461bcd60e51b8152600401808060200182810382526026815260200180612b646026913960400191505060405180910390fd5b600080546040516001600160a01b0380851693921691600080516020612c3d83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316331461189f57600080fd5b47610f5b81612339565b60155490565b4790565b6118bb611b27565b6000546001600160a01b0390811691161461190b576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526008602052604090205460ff16611978576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b60005b600954811015611a7057816001600160a01b03166009828154811061199c57fe5b6000918252602090912001546001600160a01b03161415611a68576009805460001981019081106119c957fe5b600091825260209091200154600980546001600160a01b0390921691839081106119ef57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600890925220805460ff191690556009805480611a4157fe5b600082815260209020810160001990810180546001600160a01b0319169055019055611a70565b60010161197b565b5050565b611a7c611b27565b6000546001600160a01b03908116911614611acc576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b60005b81811015611b2257600160036000858585818110611ae957fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611acf565b505050565b3390565b6001600160a01b038316611b705760405162461bcd60e51b8152600401808060200182810382526024815260200180612cab6024913960400191505060405180910390fd5b6001600160a01b038216611bb55760405162461bcd60e51b8152600401808060200182810382526022815260200180612b8a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831660009081526003602052604090205460ff16158015611c5957506001600160a01b03821660009081526003602052604090205460ff16155b611caa576040805162461bcd60e51b815260206004820152601b60248201527f54686973206164647265737320697320626c61636b6c69737465640000000000604482015290519081900360640190fd5b6001600160a01b038316611cef5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c866025913960400191505060405180910390fd5b6001600160a01b038216611d345760405162461bcd60e51b8152600401808060200182810382526023815260200180612b176023913960400191505060405180910390fd5b60008111611d735760405162461bcd60e51b8152600401808060200182810382526029815260200180612c5d6029913960400191505060405180910390fd5b611d7b611131565b6001600160a01b0316836001600160a01b031614158015611db55750611d9f611131565b6001600160a01b0316826001600160a01b031614155b15611dfb57601554811115611dfb5760405162461bcd60e51b8152600401808060200182810382526028815260200180612bac6028913960400191505060405180910390fd5b6000611e063061103f565b90506015548110611e1657506015545b6016546014549082101590600160a01b900460ff16158015611e415750601454600160a81b900460ff165b8015611e4a5750805b8015611e8857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b15611ea857611e9682612102565b478015611ea657611ea647612339565b505b6001600160a01b03851660009081526007602052604090205460019060ff1680611eea57506001600160a01b03851660009081526007602052604090205460ff165b15611ef3575060005b611eff86868684612386565b505050505050565b60008184841115611f965760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f5b578181015183820152602001611f43565b50505050905090810190601f168015611f885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000611fab6124fa565b9092509050611fba8282611fc1565b9250505090565b600061200383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061265d565b9392505050565b600082820183811015612003576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008060008060008060008060006120818a6010546011546126c2565b9250925092506000612091611f9e565b905060008060006120a38e8786612711565b919e509c509a509598509396509194505050505091939550919395565b600061200383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f07565b6014805460ff60a01b1916600160a01b1790556040805160028082526060808301845292602083019080368337019050509050308160008151811061214357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121bc57600080fd5b505afa1580156121d0573d6000803e3d6000fd5b505050506040513d60208110156121e657600080fd5b50518151829060019081106121f757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050612242307f000000000000000000000000000000000000000000000000000000000000000084611b2b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156122e75781810151838201526020016122cf565b505050509050019650505050505050600060405180830381600087803b15801561231057600080fd5b505af1158015612324573d6000803e3d6000fd5b50506014805460ff60a01b1916905550505050565b6014546001600160a01b03166108fc61235e600861235885600361274d565b90611fc1565b6040518115909202916000818181858888f19350505050158015611a70573d6000803e3d6000fd5b80612393576123936127a6565b6001600160a01b03841660009081526008602052604090205460ff1680156123d457506001600160a01b03831660009081526008602052604090205460ff16155b156123e9576123e48484846127d8565b6124e7565b6001600160a01b03841660009081526008602052604090205460ff1615801561242a57506001600160a01b03831660009081526008602052604090205460ff165b1561243a576123e48484846128fc565b6001600160a01b03841660009081526008602052604090205460ff1615801561247c57506001600160a01b03831660009081526008602052604090205460ff16155b1561248c576123e48484846129a5565b6001600160a01b03841660009081526008602052604090205460ff1680156124cc57506001600160a01b03831660009081526008602052604090205460ff165b156124dc576123e48484846129e9565b6124e78484846129a5565b806124f4576124f4612a5c565b50505050565b600b54600a546000918291825b60095481101561262b5782600460006009848154811061252357fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612588575081600560006009848154811061256157fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561259f57600b54600a5494509450505050612659565b6125df60046000600984815481106125b357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906120c0565b925061262160056000600984815481106125f557fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906120c0565b9150600101612507565b50600a54600b5461263b91611fc1565b82101561265357600b54600a54935093505050612659565b90925090505b9091565b600081836126ac5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611f5b578181015183820152602001611f43565b5060008385816126b857fe5b0495945050505050565b60008080806126d66064612358898961274d565b905060006126e960646123588a8961274d565b90506000612701826126fb8b866120c0565b906120c0565b9992985090965090945050505050565b6000808080612720878661274d565b9050600061272e878761274d565b9050600061273c83836120c0565b929992985090965090945050505050565b60008261275c57506000610a82565b8282028284828161276957fe5b04146120035760405162461bcd60e51b8152600401808060200182810382526021815260200180612bd46021913960400191505060405180910390fd5b6010541580156127b65750601154155b156127c0576127d6565b6010805460125560118054601355600091829055555b565b6000806000806000806127ea87612064565b6001600160a01b038f16600090815260056020526040902054959b5093995091975095509350915061281c90886120c0565b6001600160a01b038a1660009081526005602090815260408083209390935560049052205461284b90876120c0565b6001600160a01b03808b1660009081526004602052604080822093909355908a168152205461287a908661200a565b6001600160a01b03891660009081526004602052604090205561289c81612a6a565b6128a68483612af2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60008060008060008061290e87612064565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061294090876120c0565b6001600160a01b03808b16600090815260046020908152604080832094909455918b16815260059091522054612976908461200a565b6001600160a01b03891660009081526005602090815260408083209390935560049052205461287a908661200a565b6000806000806000806129b787612064565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061284b90876120c0565b6000806000806000806129fb87612064565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150612a2d90886120c0565b6001600160a01b038a1660009081526005602090815260408083209390935560049052205461294090876120c0565b601254601055601354601155565b6000612a74611f9e565b90506000612a82838361274d565b30600090815260046020526040902054909150612a9f908261200a565b3060009081526004602090815260408083209390935560089052205460ff1615611b225730600090815260056020526040902054612add908461200a565b30600090815260056020526040902055505050565b600b54612aff90836120c0565b600b55600c54612b0f908261200a565b600c55505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cd5749454ab5c7c3877fef1f5a596d5fc08cc2b3ca5cec931adae2ef22aa5cae64736f6c634300060c0033000000000000000000000000b5640d1065e006412de3a2c8e6e931922e5c112a

Deployed Bytecode

0x6080604052600436106102555760003560e01c8063715018a611610139578063dd467064116100b6578063f2fde38b1161007a578063f2fde38b146108b2578063f4293890146108e5578063f7a91591146108fa578063f815a8421461090f578063f84354f114610924578063ff897570146109575761025c565b8063dd467064146107d9578063dd62ed3e14610803578063e01af92c1461083e578063eedeacbe1461086a578063f2cc0c181461087f5761025c565b8063a69df4b5116100fd578063a69df4b514610708578063a9059cbb1461071d578063af9549e014610756578063b6c5232414610791578063cba0e996146107a65761025c565b8063715018a6146106665780638da5cb5b1461067b57806395d89b4114610690578063a457c2d7146106a5578063a52fe9bb146106de5761025c565b8063313ce567116101d25780634a49ac4c116101965780634a49ac4c1461057957806351bc3c85146105ac5780635342acb4146105c15780635880b873146105f45780636ddd17131461061e57806370a08231146106335761025c565b8063313ce567146104a457806339509351146104cf5780633bd5d173146105085780634549b0391461053257806349bd5a5e146105645761025c565b80631bbae6e0116102195780631bbae6e0146103a55780631cdd3be3146103d15780631ff53b601461040457806323b872dd146104375780632d8381191461047a5761025c565b806306fdde0314610261578063095ea7b3146102eb57806313114a9d146103385780631694505e1461035f57806318160ddd146103905761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109d4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102b0578181015183820152602001610298565b50505050905090810190601f1680156102dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f757600080fd5b506103246004803603604081101561030e57600080fd5b506001600160a01b038135169060200135610a6a565b604080519115158252519081900360200190f35b34801561034457600080fd5b5061034d610a88565b60408051918252519081900360200190f35b34801561036b57600080fd5b50610374610a8e565b604080516001600160a01b039092168252519081900360200190f35b34801561039c57600080fd5b5061034d610ab2565b3480156103b157600080fd5b506103cf600480360360208110156103c857600080fd5b5035610ab8565b005b3480156103dd57600080fd5b50610324600480360360208110156103f457600080fd5b50356001600160a01b0316610b15565b34801561041057600080fd5b506103cf6004803603602081101561042757600080fd5b50356001600160a01b0316610b2a565b34801561044357600080fd5b506103246004803603606081101561045a57600080fd5b506001600160a01b03813581169160208101359091169060400135610ba4565b34801561048657600080fd5b5061034d6004803603602081101561049d57600080fd5b5035610c2b565b3480156104b057600080fd5b506104b9610c8d565b6040805160ff9092168252519081900360200190f35b3480156104db57600080fd5b50610324600480360360408110156104f257600080fd5b506001600160a01b038135169060200135610c96565b34801561051457600080fd5b506103cf6004803603602081101561052b57600080fd5b5035610ce4565b34801561053e57600080fd5b5061034d6004803603604081101561055557600080fd5b50803590602001351515610dbe565b34801561057057600080fd5b50610374610e50565b34801561058557600080fd5b506103cf6004803603602081101561059c57600080fd5b50356001600160a01b0316610e74565b3480156105b857600080fd5b506103cf610eed565b3480156105cd57600080fd5b50610324600480360360208110156105e457600080fd5b50356001600160a01b0316610f5e565b34801561060057600080fd5b506103cf6004803603602081101561061757600080fd5b5035610f7c565b34801561062a57600080fd5b5061032461102f565b34801561063f57600080fd5b5061034d6004803603602081101561065657600080fd5b50356001600160a01b031661103f565b34801561067257600080fd5b506103cf6110a1565b34801561068757600080fd5b50610374611131565b34801561069c57600080fd5b50610276611140565b3480156106b157600080fd5b50610324600480360360408110156106c857600080fd5b506001600160a01b0381351690602001356111a1565b3480156106ea57600080fd5b506103cf6004803603602081101561070157600080fd5b5035611209565b34801561071457600080fd5b506103cf6112c9565b34801561072957600080fd5b506103246004803603604081101561074057600080fd5b506001600160a01b0381351690602001356113b7565b34801561076257600080fd5b506103cf6004803603604081101561077957600080fd5b506001600160a01b03813516906020013515156113cb565b34801561079d57600080fd5b5061034d61144e565b3480156107b257600080fd5b50610324600480360360208110156107c957600080fd5b50356001600160a01b0316611454565b3480156107e557600080fd5b506103cf600480360360208110156107fc57600080fd5b5035611472565b34801561080f57600080fd5b5061034d6004803603604081101561082657600080fd5b506001600160a01b0381358116916020013516611510565b34801561084a57600080fd5b506103cf6004803603602081101561086157600080fd5b5035151561153b565b34801561087657600080fd5b506103746115b1565b34801561088b57600080fd5b506103cf600480360360208110156108a257600080fd5b50356001600160a01b03166115c0565b3480156108be57600080fd5b506103cf600480360360208110156108d557600080fd5b50356001600160a01b03166117a2565b3480156108f157600080fd5b506103cf611888565b34801561090657600080fd5b5061034d6118a9565b34801561091b57600080fd5b5061034d6118af565b34801561093057600080fd5b506103cf6004803603602081101561094757600080fd5b50356001600160a01b03166118b3565b34801561096357600080fd5b506103cf6004803603602081101561097a57600080fd5b81019060208101813564010000000081111561099557600080fd5b8201836020820111156109a757600080fd5b803590602001918460208302840111640100000000831117156109c957600080fd5b509092509050611a74565b600d8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a605780601f10610a3557610100808354040283529160200191610a60565b820191906000526020600020905b815481529060010190602001808311610a4357829003601f168201915b5050505050905090565b6000610a7e610a77611b27565b8484611b2b565b5060015b92915050565b600c5490565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600a5490565b610ac0611b27565b6000546001600160a01b03908116911614610b10576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b601555565b60036020526000908152604090205460ff1681565b610b32611b27565b6000546001600160a01b03908116911614610b82576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bb1848484611c17565b610c2184610bbd611b27565b610c1c85604051806060016040528060288152602001612bf5602891396001600160a01b038a16600090815260066020526040812090610bfb611b27565b6001600160a01b031681526020810191909152604001600020549190611f07565b611b2b565b5060019392505050565b6000600b54821115610c6e5760405162461bcd60e51b815260040180806020018281038252602a815260200180612b3a602a913960400191505060405180910390fd5b6000610c78611f9e565b9050610c848382611fc1565b9150505b919050565b600f5460ff1690565b6000610a7e610ca3611b27565b84610c1c8560066000610cb4611b27565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061200a565b6000610cee611b27565b6001600160a01b03811660009081526008602052604090205490915060ff1615610d495760405162461bcd60e51b815260040180806020018281038252602c815260200180612cf1602c913960400191505060405180910390fd5b6000610d5483612064565b505050506001600160a01b038416600090815260046020526040902054919250610d80919050826120c0565b6001600160a01b038316600090815260046020526040902055600b54610da690826120c0565b600b55600c54610db6908461200a565b600c55505050565b6000600a54831115610e17576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610e36576000610e2784612064565b50939550610a82945050505050565b6000610e4184612064565b50929550610a82945050505050565b7f000000000000000000000000a4bd4ce93993c0c4d966004f54ac75a683ff0a0581565b610e7c611b27565b6000546001600160a01b03908116911614610ecc576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19169055565b610ef5611b27565b6000546001600160a01b03908116911614610f45576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6000610f503061103f565b9050610f5b81612102565b50565b6001600160a01b031660009081526007602052604090205460ff1690565b610f84611b27565b6000546001600160a01b03908116911614610fd4576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b600a81111561102a576040805162461bcd60e51b815260206004820152601a60248201527f7461784665652073686f756c6420626520696e2030202d203130000000000000604482015290519081900360640190fd5b601055565b601454600160a81b900460ff1681565b6001600160a01b03811660009081526008602052604081205460ff161561107f57506001600160a01b038116600090815260056020526040902054610c88565b6001600160a01b038216600090815260046020526040902054610a8290610c2b565b6110a9611b27565b6000546001600160a01b039081169116146110f9576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b600080546040516001600160a01b0390911690600080516020612c3d833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600e8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a605780601f10610a3557610100808354040283529160200191610a60565b6000610a7e6111ae611b27565b84610c1c85604051806060016040528060258152602001612d4060259139600660006111d8611b27565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611f07565b611211611b27565b6000546001600160a01b03908116911614611261576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b600181101580156112735750600a8111155b6112c4576040805162461bcd60e51b815260206004820181905260248201527f4d61726b6574696e674665652073686f756c6420626520696e2031202d203130604482015290519081900360640190fd5b601155565b6001546001600160a01b031633146113125760405162461bcd60e51b8152600401808060200182810382526023815260200180612d1d6023913960400191505060405180910390fd5b6002544211611368576040805162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300604482015290519081900360640190fd5b600154600080546040516001600160a01b039384169390911691600080516020612c3d83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610a7e6113c4611b27565b8484611c17565b6113d3611b27565b6000546001600160a01b03908116911614611423576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b60025490565b6001600160a01b031660009081526008602052604090205460ff1690565b61147a611b27565b6000546001600160a01b039081169116146114ca576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b60008054600180546001600160a01b03199081166001600160a01b038416179091551681554282016002556040518190600080516020612c3d833981519152908290a350565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b611543611b27565b6000546001600160a01b03908116911614611593576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b60148054911515600160a81b0260ff60a81b19909216919091179055565b6014546001600160a01b031681565b6115c8611b27565b6000546001600160a01b03908116911614611618576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b7350e617c888934f49054e8d0d23e8eed62b7a43956001600160a01b03821614156116745760405162461bcd60e51b8152600401808060200182810382526022815260200180612ccf6022913960400191505060405180910390fd5b6001600160a01b03811660009081526008602052604090205460ff16156116e2576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020541561173c576001600160a01b03811660009081526004602052604090205461172290610c2b565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6117aa611b27565b6000546001600160a01b039081169116146117fa576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03811661183f5760405162461bcd60e51b8152600401808060200182810382526026815260200180612b646026913960400191505060405180910390fd5b600080546040516001600160a01b0380851693921691600080516020612c3d83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316331461189f57600080fd5b47610f5b81612339565b60155490565b4790565b6118bb611b27565b6000546001600160a01b0390811691161461190b576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526008602052604090205460ff16611978576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b60005b600954811015611a7057816001600160a01b03166009828154811061199c57fe5b6000918252602090912001546001600160a01b03161415611a68576009805460001981019081106119c957fe5b600091825260209091200154600980546001600160a01b0390921691839081106119ef57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600890925220805460ff191690556009805480611a4157fe5b600082815260209020810160001990810180546001600160a01b0319169055019055611a70565b60010161197b565b5050565b611a7c611b27565b6000546001600160a01b03908116911614611acc576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b60005b81811015611b2257600160036000858585818110611ae957fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611acf565b505050565b3390565b6001600160a01b038316611b705760405162461bcd60e51b8152600401808060200182810382526024815260200180612cab6024913960400191505060405180910390fd5b6001600160a01b038216611bb55760405162461bcd60e51b8152600401808060200182810382526022815260200180612b8a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831660009081526003602052604090205460ff16158015611c5957506001600160a01b03821660009081526003602052604090205460ff16155b611caa576040805162461bcd60e51b815260206004820152601b60248201527f54686973206164647265737320697320626c61636b6c69737465640000000000604482015290519081900360640190fd5b6001600160a01b038316611cef5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c866025913960400191505060405180910390fd5b6001600160a01b038216611d345760405162461bcd60e51b8152600401808060200182810382526023815260200180612b176023913960400191505060405180910390fd5b60008111611d735760405162461bcd60e51b8152600401808060200182810382526029815260200180612c5d6029913960400191505060405180910390fd5b611d7b611131565b6001600160a01b0316836001600160a01b031614158015611db55750611d9f611131565b6001600160a01b0316826001600160a01b031614155b15611dfb57601554811115611dfb5760405162461bcd60e51b8152600401808060200182810382526028815260200180612bac6028913960400191505060405180910390fd5b6000611e063061103f565b90506015548110611e1657506015545b6016546014549082101590600160a01b900460ff16158015611e415750601454600160a81b900460ff165b8015611e4a5750805b8015611e8857507f000000000000000000000000a4bd4ce93993c0c4d966004f54ac75a683ff0a056001600160a01b0316856001600160a01b031614155b15611ea857611e9682612102565b478015611ea657611ea647612339565b505b6001600160a01b03851660009081526007602052604090205460019060ff1680611eea57506001600160a01b03851660009081526007602052604090205460ff165b15611ef3575060005b611eff86868684612386565b505050505050565b60008184841115611f965760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f5b578181015183820152602001611f43565b50505050905090810190601f168015611f885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000611fab6124fa565b9092509050611fba8282611fc1565b9250505090565b600061200383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061265d565b9392505050565b600082820183811015612003576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008060008060008060008060006120818a6010546011546126c2565b9250925092506000612091611f9e565b905060008060006120a38e8786612711565b919e509c509a509598509396509194505050505091939550919395565b600061200383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f07565b6014805460ff60a01b1916600160a01b1790556040805160028082526060808301845292602083019080368337019050509050308160008151811061214357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121bc57600080fd5b505afa1580156121d0573d6000803e3d6000fd5b505050506040513d60208110156121e657600080fd5b50518151829060019081106121f757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050612242307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611b2b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156122e75781810151838201526020016122cf565b505050509050019650505050505050600060405180830381600087803b15801561231057600080fd5b505af1158015612324573d6000803e3d6000fd5b50506014805460ff60a01b1916905550505050565b6014546001600160a01b03166108fc61235e600861235885600361274d565b90611fc1565b6040518115909202916000818181858888f19350505050158015611a70573d6000803e3d6000fd5b80612393576123936127a6565b6001600160a01b03841660009081526008602052604090205460ff1680156123d457506001600160a01b03831660009081526008602052604090205460ff16155b156123e9576123e48484846127d8565b6124e7565b6001600160a01b03841660009081526008602052604090205460ff1615801561242a57506001600160a01b03831660009081526008602052604090205460ff165b1561243a576123e48484846128fc565b6001600160a01b03841660009081526008602052604090205460ff1615801561247c57506001600160a01b03831660009081526008602052604090205460ff16155b1561248c576123e48484846129a5565b6001600160a01b03841660009081526008602052604090205460ff1680156124cc57506001600160a01b03831660009081526008602052604090205460ff165b156124dc576123e48484846129e9565b6124e78484846129a5565b806124f4576124f4612a5c565b50505050565b600b54600a546000918291825b60095481101561262b5782600460006009848154811061252357fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612588575081600560006009848154811061256157fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561259f57600b54600a5494509450505050612659565b6125df60046000600984815481106125b357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906120c0565b925061262160056000600984815481106125f557fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906120c0565b9150600101612507565b50600a54600b5461263b91611fc1565b82101561265357600b54600a54935093505050612659565b90925090505b9091565b600081836126ac5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611f5b578181015183820152602001611f43565b5060008385816126b857fe5b0495945050505050565b60008080806126d66064612358898961274d565b905060006126e960646123588a8961274d565b90506000612701826126fb8b866120c0565b906120c0565b9992985090965090945050505050565b6000808080612720878661274d565b9050600061272e878761274d565b9050600061273c83836120c0565b929992985090965090945050505050565b60008261275c57506000610a82565b8282028284828161276957fe5b04146120035760405162461bcd60e51b8152600401808060200182810382526021815260200180612bd46021913960400191505060405180910390fd5b6010541580156127b65750601154155b156127c0576127d6565b6010805460125560118054601355600091829055555b565b6000806000806000806127ea87612064565b6001600160a01b038f16600090815260056020526040902054959b5093995091975095509350915061281c90886120c0565b6001600160a01b038a1660009081526005602090815260408083209390935560049052205461284b90876120c0565b6001600160a01b03808b1660009081526004602052604080822093909355908a168152205461287a908661200a565b6001600160a01b03891660009081526004602052604090205561289c81612a6a565b6128a68483612af2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60008060008060008061290e87612064565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061294090876120c0565b6001600160a01b03808b16600090815260046020908152604080832094909455918b16815260059091522054612976908461200a565b6001600160a01b03891660009081526005602090815260408083209390935560049052205461287a908661200a565b6000806000806000806129b787612064565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061284b90876120c0565b6000806000806000806129fb87612064565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150612a2d90886120c0565b6001600160a01b038a1660009081526005602090815260408083209390935560049052205461294090876120c0565b601254601055601354601155565b6000612a74611f9e565b90506000612a82838361274d565b30600090815260046020526040902054909150612a9f908261200a565b3060009081526004602090815260408083209390935560089052205460ff1615611b225730600090815260056020526040902054612add908461200a565b30600090815260056020526040902055505050565b600b54612aff90836120c0565b600b55600c54612b0f908261200a565b600c55505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cd5749454ab5c7c3877fef1f5a596d5fc08cc2b3ca5cec931adae2ef22aa5cae64736f6c634300060c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000b5640d1065e006412de3a2c8e6e931922e5c112a

-----Decoded View---------------
Arg [0] : MarketingWalletAddress (address): 0xb5640d1065e006412de3A2c8e6E931922e5C112A

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b5640d1065e006412de3a2c8e6e931922e5c112a


Deployed Bytecode Sourcemap

15849:19596:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18566:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19460:173;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19460:173:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;20808:71;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;17013:51;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;17013:51:0;;;;;;;;;;;;;;18801:79;;;;;;;;;;;;;:::i;34911:96::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34911:96:0;;:::i;:::-;;15987:47;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15987:47:0;-1:-1:-1;;;;;15987:47:0;;:::i;34726:165::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34726:165:0;-1:-1:-1;;;;;34726:165:0;;:::i;19645:329::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19645:329:0;;;;;;;;;;;;;;;;;:::i;21792:269::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21792:269:0;;:::i;18724:67::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19986:230;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19986:230:0;;;;;;;;:::i;20891:405::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20891:405:0;;:::i;21308:472::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21308:472:0;;;;;;;;;:::i;17075:38::-;;;;;;;;;;;;;:::i;35017:98::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35017:98:0;-1:-1:-1;;;;;35017:98:0;;:::i;27331:168::-;;;;;;;;;;;;;:::i;23545:131::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23545:131:0;-1:-1:-1;;;;;23545:131:0;;:::i;34290:181::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34290:181:0;;:::i;17156:30::-;;;;;;;;;;;;;:::i;18892:210::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18892:210:0;-1:-1:-1;;;;;18892:210:0;;:::i;6058:160::-;;;;;;;;;;;;;:::i;5820:87::-;;;;;;;;;;;;;:::i;18643:71::-;;;;;;;;;;;;;:::i;20228:281::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20228:281:0;;;;;;;;:::i;34483:223::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34483:223:0;;:::i;6849:313::-;;;;;;;;;;;;;:::i;19114:171::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19114:171:0;;;;;;;;:::i;20651:145::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20651:145:0;;;;;;;;;;:::i;6498:97::-;;;;;;;;;;;;;:::i;20521:118::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20521:118:0;-1:-1:-1;;;;;20521:118:0;;:::i;6605:234::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6605:234:0;;:::i;19297:151::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19297:151:0;;;;;;;;;;:::i;27751:106::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27751:106:0;;;;:::i;16946:46::-;;;;;;;;;;;;;:::i;22073:475::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22073:475:0;-1:-1:-1;;;;;22073:475:0;;:::i;6228:260::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6228:260:0;-1:-1:-1;;;;;6228:260:0;;:::i;27519:220::-;;;;;;;;;;;;;:::i;34088:78::-;;;;;;;;;;;;;:::i;34176:94::-;;;;;;;;;;;;;:::i;22560:522::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22560:522:0;-1:-1:-1;;;;;22560:522:0;;:::i;35229:204::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35229:204:0;;-1:-1:-1;35229:204:0;-1:-1:-1;35229:204:0;:::i;18566:67::-;18626:5;18619:12;;;;;;;;-1:-1:-1;;18619:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18603:13;;18619:12;;18626:5;;18619:12;;18626:5;18619:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18566:67;:::o;19460:173::-;19535:4;19556:39;19565:12;:10;:12::i;:::-;19579:7;19588:6;19556:8;:39::i;:::-;-1:-1:-1;19617:4:0;19460:173;;;;;:::o;20808:71::-;20867:10;;20808:71;:::o;17013:51::-;;;:::o;18801:79::-;18871:7;;18801:79;:::o;34911:96::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;34979:12:::1;:26:::0;34911:96::o;15987:47::-;;;;;;;;;;;;;;;:::o;34726:165::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;34831:23:::1;:48:::0;;-1:-1:-1;;;;;;34831:48:0::1;-1:-1:-1::0;;;;;34831:48:0;;;::::1;::::0;;;::::1;::::0;;34726:165::o;19645:329::-;19743:4;19764:36;19774:6;19782:9;19793:6;19764:9;:36::i;:::-;19815:121;19824:6;19832:12;:10;:12::i;:::-;19846:89;19884:6;19846:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19846:19:0;;;;;;:11;:19;;;;;;19866:12;:10;:12::i;:::-;-1:-1:-1;;;;;19846:33:0;;;;;;;;;;;;-1:-1:-1;19846:33:0;;;:89;:37;:89::i;:::-;19815:8;:121::i;:::-;-1:-1:-1;19958:4:0;19645:329;;;;;:::o;21792:269::-;21858:7;21901;;21890;:18;;21882:73;;;;-1:-1:-1;;;21882:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21970:19;21993:10;:8;:10::i;:::-;21970:33;-1:-1:-1;22025:24:0;:7;21970:33;22025:11;:24::i;:::-;22018:31;;;21792:269;;;;:::o;18724:67::-;18780:9;;;;18724:67;:::o;19986:230::-;20074:4;20095:83;20104:12;:10;:12::i;:::-;20118:7;20127:50;20166:10;20127:11;:25;20139:12;:10;:12::i;:::-;-1:-1:-1;;;;;20127:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;20127:25:0;;;:34;;;;;;;;;;;:38;:50::i;20891:405::-;20947:14;20964:12;:10;:12::i;:::-;-1:-1:-1;;;;;21000:19:0;;;;;;:11;:19;;;;;;20947:29;;-1:-1:-1;21000:19:0;;20999:20;20991:77;;;;-1:-1:-1;;;20991:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21084:15;21108:19;21119:7;21108:10;:19::i;:::-;-1:-1:-1;;;;;;;;;21160:15:0;;;;;;:7;:15;;;;;;21083:44;;-1:-1:-1;21160:28:0;;:15;-1:-1:-1;21083:44:0;21160:19;:28::i;:::-;-1:-1:-1;;;;;21142:15:0;;;;;;:7;:15;;;;;:46;21213:7;;:20;;21225:7;21213:11;:20::i;:::-;21203:7;:30;21261:10;;:23;;21276:7;21261:14;:23::i;:::-;21248:10;:36;-1:-1:-1;;;20891:405:0:o;21308:472::-;21398:7;21441;;21430;:18;;21422:62;;;;;-1:-1:-1;;;21422:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21504:17;21499:270;;21543:15;21567:19;21578:7;21567:10;:19::i;:::-;-1:-1:-1;21542:44:0;;-1:-1:-1;21605:14:0;;-1:-1:-1;;;;;21605:14:0;21499:270;21662:23;21693:19;21704:7;21693:10;:19::i;:::-;-1:-1:-1;21660:52:0;;-1:-1:-1;21731:22:0;;-1:-1:-1;;;;;21731:22:0;17075:38;;;:::o;35017:98::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;35082:23:0::1;35108:5;35082:23:::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;35082:31:0::1;::::0;;35017:98::o;27331:168::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;27389:23:::1;27415:24;27433:4;27415:9;:24::i;:::-;27389:50;;27454:33;27471:15;27454:16;:33::i;:::-;6035:1;27331:168::o:0;23545:131::-;-1:-1:-1;;;;;23637:27:0;23609:4;23637:27;;;:18;:27;;;;;;;;;23545:131::o;34290:181::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;34395:2:::1;34385:6;:12;;34362:66;;;::::0;;-1:-1:-1;;;34362:66:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;34443:7;:16:::0;34290:181::o;17156:30::-;;;-1:-1:-1;;;17156:30:0;;;;;:::o;18892:210::-;-1:-1:-1;;;;;18986:20:0;;18958:7;18986:20;;;:11;:20;;;;;;;;18982:49;;;-1:-1:-1;;;;;;19015:16:0;;;;;;:7;:16;;;;;;19008:23;;18982:49;-1:-1:-1;;;;;19073:16:0;;;;;;:7;:16;;;;;;19053:37;;:19;:37::i;6058:160::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;6169:1:::1;6153:6:::0;;6132:40:::1;::::0;-1:-1:-1;;;;;6153:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;6132:40:0;6169:1;;6132:40:::1;6204:1;6187:19:::0;;-1:-1:-1;;;;;;6187:19:0::1;::::0;;6058:160::o;5820:87::-;5858:7;5889:6;-1:-1:-1;;;;;5889:6:0;5820:87;:::o;18643:71::-;18705:7;18698:14;;;;;;;;-1:-1:-1;;18698:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18682:13;;18698:14;;18705:7;;18698:14;;18705:7;18698:14;;;;;;;;;;;;;;;;;;;;;;;;20228:281;20321:4;20342:129;20351:12;:10;:12::i;:::-;20365:7;20374:96;20413:15;20374:96;;;;;;;;;;;;;;;;;:11;:25;20386:12;:10;:12::i;:::-;-1:-1:-1;;;;;20374:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;20374:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;34483:223::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;34591:1:::1;34575:12;:17;;:39;;;;;34612:2;34596:12;:18;;34575:39;34567:84;;;::::0;;-1:-1:-1;;;34567:84:0;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;34666:13;:28:::0;34483:223::o;6849:313::-;6905:14;;-1:-1:-1;;;;;6905:14:0;6923:10;6905:28;6897:76;;;;-1:-1:-1;;;6897:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7002:9;;6996:3;:15;6988:60;;;;;-1:-1:-1;;;6988:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7097:14;;;7089:6;;7068:44;;-1:-1:-1;;;;;7097:14:0;;;;7089:6;;;;-1:-1:-1;;;;;;;;;;;7068:44:0;;7136:14;;;7127:23;;-1:-1:-1;;;;;;7127:23:0;-1:-1:-1;;;;;7136:14:0;;;7127:23;;;;;;6849:313::o;19114:171::-;19192:4;19209:42;19219:12;:10;:12::i;:::-;19233:9;19244:6;19209:9;:42::i;20651:145::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;20746:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;20746:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20651:145::o;6498:97::-;6574:9;;6498:97;:::o;20521:118::-;-1:-1:-1;;;;;20607:20:0;20579:4;20607:20;;;:11;:20;;;;;;;;;20521:118::o;6605:234::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;6690:6:::1;::::0;;;6673:23;;-1:-1:-1;;;;;;6673:23:0;;::::1;-1:-1:-1::0;;;;;6690:6:0;::::1;6673:23;::::0;;;6711:19:::1;::::0;;6757:3:::1;:10:::0;::::1;6745:9;:22:::0;6787:40:::1;::::0;6690:6;;-1:-1:-1;;;;;;;;;;;6787:40:0;6690:6;;6787:40:::1;6605:234:::0;:::o;19297:151::-;-1:-1:-1;;;;;19409:18:0;;;19378:7;19409:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19297:151::o;27751:106::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;27824:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;27824:21:0::1;-1:-1:-1::0;;;;27824:21:0;;::::1;::::0;;;::::1;::::0;;27751:106::o;16946:46::-;;;-1:-1:-1;;;;;16946:46:0;;:::o;22073:475::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;22169:42:::1;-1:-1:-1::0;;;;;22158:53:0;::::1;;;22150:100;;;;-1:-1:-1::0;;;22150:100:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;22274:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22273:21;22265:61;;;::::0;;-1:-1:-1;;;22265:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;22344:16:0;::::1;22363:1;22344:16:::0;;;:7:::1;:16;::::0;;;;;:20;22341:116:::1;;-1:-1:-1::0;;;;;22424:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;22404:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;22385:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;22341:116:::1;-1:-1:-1::0;;;;;22471:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;22471:27:0::1;22494:4;22471:27:::0;;::::1;::::0;;;22513:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;22513:23:0::1;::::0;;::::1;::::0;;22073:475::o;6228:260::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6321:22:0;::::1;6313:73;;;;-1:-1:-1::0;;;6313:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6427:6;::::0;;6406:38:::1;::::0;-1:-1:-1;;;;;6406:38:0;;::::1;::::0;6427:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;6406:38:0;::::1;6459:6;:17:::0;;-1:-1:-1;;;;;;6459:17:0::1;-1:-1:-1::0;;;;;6459:17:0;;;::::1;::::0;;;::::1;::::0;;6228:260::o;27519:220::-;27585:23;;-1:-1:-1;;;;;27585:23:0;27573:10;:35;27565:44;;;;;;27653:21;27689:38;27653:21;27689:18;:38::i;34088:78::-;34152:12;;34088:78;:::o;34176:94::-;34247:21;34176:94;:::o;22560:522::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22645:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22637:60;;;::::0;;-1:-1:-1;;;22637:60:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;22717:9;22712:359;22736:9;:16:::0;22732:20;::::1;22712:359;;;22798:7;-1:-1:-1::0;;;;;22782:23:0::1;:9;22792:1;22782:12;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;22782:12:0::1;:23;22778:278;;;22845:9;22855:16:::0;;-1:-1:-1;;22855:20:0;;;22845:31;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;22830:9:::1;:12:::0;;-1:-1:-1;;;;;22845:31:0;;::::1;::::0;22840:1;;22830:12;::::1;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;22830:46:0::1;-1:-1:-1::0;;;;;22830:46:0;;::::1;;::::0;;22899:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;22942:11:::1;:20:::0;;;;:28;;-1:-1:-1;;22942:28:0::1;::::0;;22993:9:::1;:15:::0;;;::::1;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;22993:15:0;;;;;-1:-1:-1;;;;;;22993:15:0::1;::::0;;;;;23031:5:::1;;22778:278;22754:3;;22712:359;;;;22560:522:::0;:::o;35229:204::-;5971:12;:10;:12::i;:::-;5961:6;;-1:-1:-1;;;;;5961:6:0;;;:22;;;5953:67;;;;;-1:-1:-1;;;5953:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5953:67:0;;;;;;;;;;;;;;;35318:9:::1;35314:108;35329:20:::0;;::::1;35314:108;;;35402:4;35371:14;:28;35386:9;;35396:1;35386:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;35386:12:0::1;35371:28:::0;;-1:-1:-1;35371:28:0;::::1;::::0;;;;;;-1:-1:-1;35371:28:0;:35;;-1:-1:-1;;35371:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;35351:3:0::1;35314:108;;;;35229:204:::0;;:::o;227:114::-;319:10;227:114;:::o;23688:357::-;-1:-1:-1;;;;;23785:19:0;;23777:68;;;;-1:-1:-1;;;23777:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23868:21:0;;23860:68;;;;-1:-1:-1;;;23860:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23945:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24001:32;;;;;;;;;;;;;;;;;23688:357;;;:::o;24057:2271::-;-1:-1:-1;;;;;24315:22:0;;;;;;:14;:22;;;;;;;;24314:23;:53;;;;-1:-1:-1;;;;;;24342:25:0;;;;;;:14;:25;;;;;;;;24341:26;24314:53;24306:93;;;;;-1:-1:-1;;;24306:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24422:20:0;;24414:70;;;;-1:-1:-1;;;24414:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24507:23:0;;24499:71;;;;-1:-1:-1;;;24499:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24602:1;24593:6;:10;24585:64;;;;-1:-1:-1;;;24585:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24691:7;:5;:7::i;:::-;-1:-1:-1;;;;;24681:17:0;:6;-1:-1:-1;;;;;24681:17:0;;;:41;;;;;24715:7;:5;:7::i;:::-;-1:-1:-1;;;;;24702:20:0;:9;-1:-1:-1;;;;;24702:20:0;;;24681:41;24678:138;;;24759:12;;24749:6;:22;;24741:75;;;;-1:-1:-1;;;24741:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25034:28;25065:24;25083:4;25065:9;:24::i;:::-;25034:55;;25145:12;;25121:20;:36;25118:124;;-1:-1:-1;25214:12:0;;25118:124;25321:34;;25375:6;;25297:58;;;;;-1:-1:-1;;;25375:6:0;;;;25374:7;:22;;;;-1:-1:-1;25385:11:0;;-1:-1:-1;;;25385:11:0;;;;25374:22;:45;;;;;25400:19;25374:45;:72;;;;;25433:13;-1:-1:-1;;;;;25423:23:0;:6;-1:-1:-1;;;;;25423:23:0;;;25374:72;25370:462;;;25562:38;25579:20;25562:16;:38::i;:::-;25666:21;25709:22;;25706:111;;25756:41;25775:21;25756:18;:41::i;:::-;25370:462;;-1:-1:-1;;;;;26064:26:0;;25925:12;26064:26;;;:18;:26;;;;;;25940:4;;26064:26;;;:59;;-1:-1:-1;;;;;;26094:29:0;;;;;;:18;:29;;;;;;;;26064:59;26061:113;;;-1:-1:-1;26153:5:0;26061:113;26269:47;26284:6;26291:9;26301:6;26308:7;26269:14;:47::i;:::-;24057:2271;;;;;;:::o;1715:206::-;1801:7;1841:12;1833:6;;;;1825:29;;;;-1:-1:-1;;;1825:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1881:5:0;;;1715:206::o;33201:175::-;33242:7;33267:15;33284;33303:19;:17;:19::i;:::-;33266:56;;-1:-1:-1;33266:56:0;-1:-1:-1;33344:20:0;33266:56;;33344:11;:20::i;:::-;33337:27;;;;33201:175;:::o;2215:140::-;2273:7;2304:39;2308:1;2311;2304:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2297:46;2215:140;-1:-1:-1;;;2215:140:0:o;1356:195::-;1414:7;1450:5;;;1478:6;;;;1470:46;;;;;-1:-1:-1;;;1470:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;31919:496;31978:7;31987;31996;32005;32014;32023;32048:23;32073:12;32087:18;32109:44;32121:7;32130;;32139:13;;32109:11;:44::i;:::-;32047:106;;;;;;32168:19;32191:10;:8;:10::i;:::-;32168:33;;32217:15;32234:23;32259:12;32275:39;32287:7;32296:4;32302:11;32275;:39::i;:::-;32216:98;;-1:-1:-1;32216:98:0;-1:-1:-1;32216:98:0;-1:-1:-1;32369:15:0;;-1:-1:-1;32386:4:0;;-1:-1:-1;32392:10:0;;-1:-1:-1;;;;;31919:496:0;;;;;;;:::o;1561:144::-;1619:7;1650:43;1654:1;1657;1650:43;;;;;;;;;;;;;;;;;:3;:43::i;26340:656::-;17564:6;:13;;-1:-1:-1;;;;17564:13:0;-1:-1:-1;;;17564:13:0;;;26509:16:::1;::::0;;26523:1:::1;26509:16:::0;;;26485:21:::1;26509:16:::0;;::::1;::::0;;26485:21;26509:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;26509:16:0::1;26485:40;;26558:4;26540;26545:1;26540:7;;;;;;;;;;;;;:23;-1:-1:-1::0;;;;;26540:23:0::1;;;-1:-1:-1::0;;;;;26540:23:0::1;;;::::0;::::1;26588:15;-1:-1:-1::0;;;;;26588:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;26588:22:0;26578:7;;:4;;26583:1:::1;::::0;26578:7;::::1;;;;;;;;;;:32;-1:-1:-1::0;;;;;26578:32:0::1;;;-1:-1:-1::0;;;;;26578:32:0::1;;;::::0;::::1;26627:62;26644:4;26659:15;26677:11;26627:8;:62::i;:::-;26736:15;-1:-1:-1::0;;;;;26736:66:0::1;;26821:11;26851:1;26899:4;26930;26954:15;26736:248;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;26736:248:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;17608:6:0;:14;;-1:-1:-1;;;;17608:14:0;;;-1:-1:-1;;;;26340:656:0:o;27016:145::-;27083:23;;-1:-1:-1;;;;;27083:23:0;:54;27116:20;27134:1;27116:13;:6;27127:1;27116:10;:13::i;:::-;:17;;:20::i;:::-;27083:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27877:883;27993:7;27989:44;;28019:14;:12;:14::i;:::-;-1:-1:-1;;;;;28054:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;28078:22:0;;;;;;:11;:22;;;;;;;;28077:23;28054:46;28050:637;;;28121:48;28143:6;28151:9;28162:6;28121:21;:48::i;:::-;28050:637;;;-1:-1:-1;;;;;28196:19:0;;;;;;:11;:19;;;;;;;;28195:20;:46;;;;-1:-1:-1;;;;;;28219:22:0;;;;;;:11;:22;;;;;;;;28195:46;28191:496;;;28262:46;28282:6;28290:9;28301:6;28262:19;:46::i;28191:496::-;-1:-1:-1;;;;;28335:19:0;;;;;;:11;:19;;;;;;;;28334:20;:47;;;;-1:-1:-1;;;;;;28359:22:0;;;;;;:11;:22;;;;;;;;28358:23;28334:47;28330:357;;;28402:44;28420:6;28428:9;28439:6;28402:17;:44::i;28330:357::-;-1:-1:-1;;;;;28472:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;28495:22:0;;;;;;:11;:22;;;;;;;;28472:45;28468:219;;;28538:48;28560:6;28568:9;28579:6;28538:21;:48::i;28468:219::-;28627:44;28645:6;28653:9;28664:6;28627:17;:44::i;:::-;28707:7;28703:45;;28733:15;:13;:15::i;:::-;27877:883;;;;:::o;33388:601::-;33489:7;;33529;;33438;;;;;33557:305;33581:9;:16;33577:20;;33557:305;;;33651:7;33627;:21;33635:9;33645:1;33635:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33635:12:0;33627:21;;;;;;;;;;;;;:31;;:66;;;33686:7;33662;:21;33670:9;33680:1;33670:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33670:12:0;33662:21;;;;;;;;;;;;;:31;33627:66;33623:97;;;33703:7;;33712;;33695:25;;;;;;;;;33623:97;33749:34;33761:7;:21;33769:9;33779:1;33769:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33769:12:0;33761:21;;;;;;;;;;;;;33749:7;;:11;:34::i;:::-;33739:44;;33812:34;33824:7;:21;33832:9;33842:1;33832:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33832:12:0;33824:21;;;;;;;;;;;;;33812:7;;:11;:34::i;:::-;33802:44;-1:-1:-1;33599:3:0;;33557:305;;;-1:-1:-1;33902:7:0;;33890;;:20;;:11;:20::i;:::-;33880:7;:30;33876:61;;;33920:7;;33929;;33912:25;;;;;;;;33876:61;33960:7;;-1:-1:-1;33969:7:0;-1:-1:-1;33388:601:0;;;:::o;2365:205::-;2451:7;2490:12;2483:5;2475:28;;;;-1:-1:-1;;;2475:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2518:9;2534:1;2530;:5;;;;;;;2365:205;-1:-1:-1;;;;;2365:205:0:o;32427:396::-;32525:7;;;;32582:28;32606:3;32582:19;:7;32594:6;32582:11;:19::i;:28::-;32567:43;-1:-1:-1;32625:18:0;32646:34;32676:3;32646:25;:7;32658:12;32646:11;:25::i;:34::-;32625:55;-1:-1:-1;32695:23:0;32721:33;32625:55;32721:17;:7;32733:4;32721:11;:17::i;:::-;:21;;:33::i;:::-;32695:59;32794:4;;-1:-1:-1;32800:10:0;;-1:-1:-1;32427:396:0;;-1:-1:-1;;;;;32427:396:0:o;32835:354::-;32930:7;;;;32990:24;:7;33002:11;32990;:24::i;:::-;32972:42;-1:-1:-1;33029:12:0;33044:21;:4;33053:11;33044:8;:21::i;:::-;33029:36;-1:-1:-1;33080:23:0;33106:17;:7;33029:36;33106:11;:17::i;:::-;33146:7;;;;-1:-1:-1;33172:4:0;;-1:-1:-1;32835:354:0;;-1:-1:-1;;;;;32835:354:0:o;1931:274::-;1989:7;2017:6;2013:55;;-1:-1:-1;2051:1:0;2044:8;;2013:55;2094:5;;;2098:1;2094;:5;:1;2122:5;;;;;:10;2114:56;;;;-1:-1:-1;;;2114:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23094:282;23144:7;;:12;:34;;;;-1:-1:-1;23160:13:0;;:18;23144:34;23141:46;;;23180:7;;23141:46;23233:7;;;23215:15;:25;23279:13;;;23255:21;:37;-1:-1:-1;23321:11:0;;;;23347:17;23094:282;:::o;29950:599::-;30057:15;30074:23;30099:12;30113:23;30138:12;30152:18;30174:19;30185:7;30174:10;:19::i;:::-;-1:-1:-1;;;;;30226:15:0;;;;;;:7;:15;;;;;;30056:137;;-1:-1:-1;30056:137:0;;-1:-1:-1;30056:137:0;;-1:-1:-1;30056:137:0;-1:-1:-1;30056:137:0;-1:-1:-1;30056:137:0;-1:-1:-1;30226:28:0;;30246:7;30226:19;:28::i;:::-;-1:-1:-1;;;;;30208:15:0;;;;;;:7;:15;;;;;;;;:46;;;;30287:7;:15;;;;:28;;30307:7;30287:19;:28::i;:::-;-1:-1:-1;;;;;30269:15:0;;;;;;;:7;:15;;;;;;:46;;;;30351:18;;;;;;;:39;;30374:15;30351:22;:39::i;:::-;-1:-1:-1;;;;;30330:18:0;;;;;;:7;:18;;;;;:60;30406:26;30421:10;30406:14;:26::i;:::-;30450:23;30462:4;30468;30450:11;:23::i;:::-;30510:9;-1:-1:-1;;;;;30493:44:0;30502:6;-1:-1:-1;;;;;30493:44:0;;30521:15;30493:44;;;;;;;;;;;;;;;;;;29950:599;;;;;;;;;:::o;29316:622::-;29421:15;29438:23;29463:12;29477:23;29502:12;29516:18;29538:19;29549:7;29538:10;:19::i;:::-;-1:-1:-1;;;;;29590:15:0;;;;;;:7;:15;;;;;;29420:137;;-1:-1:-1;29420:137:0;;-1:-1:-1;29420:137:0;;-1:-1:-1;29420:137:0;-1:-1:-1;29420:137:0;-1:-1:-1;29420:137:0;-1:-1:-1;29590:28:0;;29420:137;29590:19;:28::i;:::-;-1:-1:-1;;;;;29572:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;29654:18;;;;;:7;:18;;;;;:39;;29677:15;29654:22;:39::i;:::-;-1:-1:-1;;;;;29633:18:0;;;;;;:7;:18;;;;;;;;:60;;;;29729:7;:18;;;;:39;;29752:15;29729:22;:39::i;28772:532::-;28875:15;28892:23;28917:12;28931:23;28956:12;28970:18;28992:19;29003:7;28992:10;:19::i;:::-;-1:-1:-1;;;;;29044:15:0;;;;;;:7;:15;;;;;;28874:137;;-1:-1:-1;28874:137:0;;-1:-1:-1;28874:137:0;;-1:-1:-1;28874:137:0;-1:-1:-1;28874:137:0;-1:-1:-1;28874:137:0;-1:-1:-1;29044:28:0;;28874:137;29044:19;:28::i;30561:682::-;30668:15;30685:23;30710:12;30724:23;30749:12;30763:18;30785:19;30796:7;30785:10;:19::i;:::-;-1:-1:-1;;;;;30837:15:0;;;;;;:7;:15;;;;;;30667:137;;-1:-1:-1;30667:137:0;;-1:-1:-1;30667:137:0;;-1:-1:-1;30667:137:0;-1:-1:-1;30667:137:0;-1:-1:-1;30667:137:0;-1:-1:-1;30837:28:0;;30857:7;30837:19;:28::i;:::-;-1:-1:-1;;;;;30819:15:0;;;;;;:7;:15;;;;;;;;:46;;;;30898:7;:15;;;;:28;;30918:7;30898:19;:28::i;23392:137::-;23450:15;;23440:7;:25;23496:21;;23480:13;:37;23392:137::o;31255:379::-;31322:19;31345:10;:8;:10::i;:::-;31322:33;-1:-1:-1;31370:18:0;31391:27;:10;31322:33;31391:14;:27::i;:::-;31474:4;31458:22;;;;:7;:22;;;;;;31370:48;;-1:-1:-1;31458:38:0;;31370:48;31458:26;:38::i;:::-;31449:4;31433:22;;;;:7;:22;;;;;;;;:63;;;;31514:11;:26;;;;;;31511:111;;;31600:4;31584:22;;;;:7;:22;;;;;;:38;;31611:10;31584:26;:38::i;:::-;31575:4;31559:22;;;;:7;:22;;;;;:63;31255:379;;;:::o;31646:159::-;31728:7;;:17;;31740:4;31728:11;:17::i;:::-;31718:7;:27;31773:10;;:20;;31788:4;31773:14;:20::i;:::-;31760:10;:33;-1:-1:-1;;31646:159:0:o

Swarm Source

ipfs://cd5749454ab5c7c3877fef1f5a596d5fc08cc2b3ca5cec931adae2ef22aa5cae
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.