ETH Price: $3,360.71 (-0.68%)
Gas: 1 Gwei

Token

KACKA (KACKA)
 

Overview

Max Total Supply

100,000,000,000 KACKA

Holders

39

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
KACKACOIN

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-06
*/

/*
The coin was made out of an amalgamation of vegetable matter and blockchain technology. Kacka the infamous, made of literal 💩. But despite its stinky origins, Kacka has one heck of a dream.
https://kacka.vip/
https://twitter.com/kackaerc
https://t.me/kackaerc
*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }


    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(account, account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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 _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

library Address{
    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");
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract KACKACOIN is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;


    uint256 tsupply = 100000000000 * 10 ** decimals();
    uint256 public swapThreshold = tsupply * 5/1000;
    uint256 public maxTransactionAmount = tsupply * 2/100;
    uint256 public maxWalletAmount = tsupply * 2/100;
    
    address public MarketingWallet;
    
    uint256 public tTax = 29; // Tax Marketing
    uint256 public tSellTax = 69;// Tax Marketing
    
    mapping (address => bool) public excludedFromFees;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("KACKA", "KACKA") {
        MarketingWallet = msg.sender;
        _mint(msg.sender, tsupply);
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            require(amount <= maxTransactionAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
  
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
 
        else{
            if(recipient == pair) fee = amount * tSellTax / 100;
            else fee = amount * tTax / 100;
        }
        

        if (swapEnabled && !swapping && sender != pair) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

     function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            swapTokensForETH(swapThreshold);
        }
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) {
            sendETHToFee(address(this).balance);
        }
    }


    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

    function sendETHToFee(uint256 amount) private {
        payable(MarketingWallet).transfer(amount);
    }
    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
    }
    function setTaxes(uint256 _totalTax) external onlyOwner{
        tTax = _totalTax;
    }
    function setTotalTaxes(uint256 _totalTax, uint256 _totalSellTax) external onlyOwner{
        tTax = _totalTax;
        tSellTax = _totalSellTax;
    }
    function removelimit() external onlyOwner{
        maxTransactionAmount = tsupply;
        maxWalletAmount = tsupply;
    }
    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
    
    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external {
        IERC20(tokenAddress).transfer(MarketingWallet, amount);
    }

    function rescueETH(uint256 weiAmount) external {
        payable(MarketingWallet).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount) external{
        require(msg.sender == MarketingWallet);
        swapTokensForETH(amount);
        payable(MarketingWallet).sendValue(address(this).balance);       
    }

    // fallbacks
    receive() external payable {}
    
}

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":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":"MarketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"uint256","name":"amount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","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":"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":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removelimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalTax","type":"uint256"},{"internalType":"uint256","name":"_totalSellTax","type":"uint256"}],"name":"setTotalTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000551565b620000239064174876e80062000569565b6008556103e860085460056200003a919062000569565b62000046919062000583565b600955606460085460026200005c919062000569565b62000068919062000583565b600a55606460085460026200007e919062000569565b6200008a919062000583565b600b55601d600d556045600e55348015620000a457600080fd5b506040805180820182526005808252644b41434b4160d81b6020808401829052845180860190955291845290830152906003620000e283826200064a565b506004620000f182826200064a565b5050506200010e62000108620002f960201b60201c565b620002fd565b600c80546001600160a01b031916339081179091556008546200013291906200034f565b336000908152600f60209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa1580156200019d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c3919062000716565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000211573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000237919062000716565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000285573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ab919062000716565b600680546001600160a01b039485166001600160a01b031991821617909155600780549290941691161790915550306000908152600f60205260409020805460ff1916600117905562000757565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620003aa5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620003be919062000741565b90915550506001600160a01b03821660009081526020819052604081208054839290620003ed90849062000741565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004935781600019048211156200047757620004776200043c565b808516156200048557918102915b93841c939080029062000457565b509250929050565b600082620004ac575060016200054b565b81620004bb575060006200054b565b8160018114620004d45760028114620004df57620004ff565b60019150506200054b565b60ff841115620004f357620004f36200043c565b50506001821b6200054b565b5060208310610133831016604e8410600b841016171562000524575081810a6200054b565b62000530838362000452565b80600019048211156200054757620005476200043c565b0290505b92915050565b60006200056260ff8416836200049b565b9392505050565b80820281158282048414176200054b576200054b6200043c565b600082620005a157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005d157607f821691505b602082108103620005f257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200043757600081815260208120601f850160051c81016020861015620006215750805b601f850160051c820191505b8181101562000642578281556001016200062d565b505050505050565b81516001600160401b03811115620006665762000666620005a6565b6200067e81620006778454620005bc565b84620005f8565b602080601f831160018114620006b657600084156200069d5750858301515b600019600386901b1c1916600185901b17855562000642565b600085815260208120601f198616915b82811015620006e757888601518255948401946001909101908401620006c6565b5085821015620007065787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200072957600080fd5b81516001600160a01b03811681146200056257600080fd5b808201808211156200054b576200054b6200043c565b611a2580620007676000396000f3fe6080604052600436106102135760003560e01c80638da5cb5b11610118578063aa4bde28116100a0578063dd62ed3e1161006f578063dd62ed3e146105f7578063e01af92c1461063d578063e545fd6d1461065d578063f2fde38b1461067d578063f887ea401461069d57600080fd5b8063aa4bde281461057b578063b70143c914610591578063c8c8ebe4146105b1578063dbe66ca0146105c757600080fd5b80639d0014b1116100e75780639d0014b1146104db5780639e252f00146104fb578063a457c2d71461051b578063a8aa1b311461053b578063a9059cbb1461055b57600080fd5b80638da5cb5b1461047c57806395d656e71461049a57806395d89b41146104b057806399841e73146104c557600080fd5b806340b28c2f1161019b57806370a082311161016a57806370a08231146103e7578063715018a61461041d57806380f40619146104325780638a8c523c146104475780638cd4426d1461045c57600080fd5b806340b28c2f146103655780634ada218b146103855780634ebc552d146103a65780636ddd1713146103c657600080fd5b806323b872dd116101e257806323b872dd146102af5780632598cdb2146102cf578063313ce5671461030757806332da93cb14610323578063395093511461034557600080fd5b80630445b6671461021f57806306fdde0314610248578063095ea7b31461026a57806318160ddd1461029a57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023560095481565b6040519081526020015b60405180910390f35b34801561025457600080fd5b5061025d6106bd565b60405161023f9190611689565b34801561027657600080fd5b5061028a6102853660046116ec565b61074f565b604051901515815260200161023f565b3480156102a657600080fd5b50600254610235565b3480156102bb57600080fd5b5061028a6102ca366004611718565b610766565b3480156102db57600080fd5b50600c546102ef906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561031357600080fd5b506040516012815260200161023f565b34801561032f57600080fd5b5061034361033e366004611759565b61081c565b005b34801561035157600080fd5b5061028a6103603660046116ec565b610851565b34801561037157600080fd5b5061034361038036600461177b565b610888565b34801561039157600080fd5b5060075461028a90600160b01b900460ff1681565b3480156103b257600080fd5b506103436103c13660046117b4565b6108e0565b3480156103d257600080fd5b5060075461028a90600160a81b900460ff1681565b3480156103f357600080fd5b506102356104023660046117cd565b6001600160a01b031660009081526020819052604090205490565b34801561042957600080fd5b5061034361090f565b34801561043e57600080fd5b50610343610945565b34801561045357600080fd5b5061034361097c565b34801561046857600080fd5b506103436104773660046116ec565b610a10565b34801561048857600080fd5b506005546001600160a01b03166102ef565b3480156104a657600080fd5b50610235600e5481565b3480156104bc57600080fd5b5061025d610a8c565b3480156104d157600080fd5b50610235600d5481565b3480156104e757600080fd5b506103436104f63660046117b4565b610a9b565b34801561050757600080fd5b506103436105163660046117b4565b610aca565b34801561052757600080fd5b5061028a6105363660046116ec565b610ae3565b34801561054757600080fd5b506007546102ef906001600160a01b031681565b34801561056757600080fd5b5061028a6105763660046116ec565b610b7e565b34801561058757600080fd5b50610235600b5481565b34801561059d57600080fd5b506103436105ac3660046117b4565b610b8b565b3480156105bd57600080fd5b50610235600a5481565b3480156105d357600080fd5b5061028a6105e23660046117cd565b600f6020526000908152604090205460ff1681565b34801561060357600080fd5b5061023561061236600461177b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561064957600080fd5b506103436106583660046117ff565b610bc1565b34801561066957600080fd5b5061034361067836600461181c565b610c09565b34801561068957600080fd5b506103436106983660046117cd565b610c5e565b3480156106a957600080fd5b506006546102ef906001600160a01b031681565b6060600380546106cc9061184a565b80601f01602080910402602001604051908101604052809291908181526020018280546106f89061184a565b80156107455780601f1061071a57610100808354040283529160200191610745565b820191906000526020600020905b81548152906001019060200180831161072857829003601f168201915b5050505050905090565b600061075c338484610cf6565b5060015b92915050565b6000610773848484610e1a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156107fd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610811853361080c868561189a565b610cf6565b506001949350505050565b6005546001600160a01b031633146108465760405162461bcd60e51b81526004016107f4906118ad565b600d91909155600e55565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161075c91859061080c9086906118e2565b6005546001600160a01b031633146108b25760405162461bcd60e51b81526004016107f4906118ad565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b0316331461090a5760405162461bcd60e51b81526004016107f4906118ad565b600d55565b6005546001600160a01b031633146109395760405162461bcd60e51b81526004016107f4906118ad565b6109436000611143565b565b6005546001600160a01b0316331461096f5760405162461bcd60e51b81526004016107f4906118ad565b600854600a819055600b55565b6005546001600160a01b031633146109a65760405162461bcd60e51b81526004016107f4906118ad565b600754600160b01b900460ff16156109f95760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016107f4565b6007805461ffff60a81b191661010160a81b179055565b600c5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610a63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8791906118f5565b505050565b6060600480546106cc9061184a565b6005546001600160a01b03163314610ac55760405162461bcd60e51b81526004016107f4906118ad565b600955565b600c54610ae0906001600160a01b031682611195565b50565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610b655760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107f4565b610b74338561080c868561189a565b5060019392505050565b600061075c338484610e1a565b600c546001600160a01b03163314610ba257600080fd5b610bab816112ae565b600c54610ae0906001600160a01b031647611195565b6005546001600160a01b03163314610beb5760405162461bcd60e51b81526004016107f4906118ad565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c335760405162461bcd60e51b81526004016107f4906118ad565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610c885760405162461bcd60e51b81526004016107f4906118ad565b6001600160a01b038116610ced5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107f4565b610ae081611143565b6001600160a01b038316610d585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107f4565b6001600160a01b038216610db95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107f4565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111610e7c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107f4565b6001600160a01b0383166000908152600f602052604090205460ff16158015610ebe57506001600160a01b0382166000908152600f602052604090205460ff16155b8015610ed45750600754600160a01b900460ff16155b1561101757600754600160b01b900460ff16610f2b5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b60448201526064016107f4565b600a54811115610f7d5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016107f4565b6007546001600160a01b0383811691161461101757600b5481610fb5846001600160a01b031660009081526020819052604090205490565b610fbf91906118e2565b11156110175760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016107f4565b600754600090600160a01b900460ff168061104a57506001600160a01b0384166000908152600f602052604090205460ff165b8061106d57506001600160a01b0383166000908152600f602052604090205460ff165b1561107a575060006110ce565b6007546001600160a01b03908116908416036110b1576064600e54836110a09190611912565b6110aa9190611929565b90506110ce565b6064600d54836110c19190611912565b6110cb9190611929565b90505b600754600160a81b900460ff1680156110f15750600754600160a01b900460ff16155b801561110b57506007546001600160a01b03858116911614155b1561111857611118611408565b61112c8484611127848661189a565b611473565b801561113d5761113d843083611473565b50505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b804710156111e55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107f4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611232576040519150601f19603f3d011682016040523d82523d6000602084013e611237565b606091505b5050905080610a875760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107f4565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106112e3576112e361194b565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561133c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113609190611961565b816001815181106113735761137361194b565b6001600160a01b0392831660209182029290920101526006546113999130911684610cf6565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906113d290859060009086903090429060040161197e565b600060405180830381600087803b1580156113ec57600080fd5b505af1158015611400573d6000803e3d6000fd5b505050505050565b600754600160a01b900460ff16610943576007805460ff60a01b1916600160a01b1790553060009081526020819052604081205490506009548110611452576114526009546112ae565b478015611462576114624761164b565b50506007805460ff60a01b19169055565b6001600160a01b0383166114d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107f4565b6001600160a01b0382166115395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107f4565b6001600160a01b038316600090815260208190526040902054818110156115b15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107f4565b6115bb828261189a565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906115f19084906118e2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161163d91815260200190565b60405180910390a350505050565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611685573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b818110156116b65785810183015185820160400152820161169a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ae057600080fd5b600080604083850312156116ff57600080fd5b823561170a816116d7565b946020939093013593505050565b60008060006060848603121561172d57600080fd5b8335611738816116d7565b92506020840135611748816116d7565b929592945050506040919091013590565b6000806040838503121561176c57600080fd5b50508035926020909101359150565b6000806040838503121561178e57600080fd5b8235611799816116d7565b915060208301356117a9816116d7565b809150509250929050565b6000602082840312156117c657600080fd5b5035919050565b6000602082840312156117df57600080fd5b81356117ea816116d7565b9392505050565b8015158114610ae057600080fd5b60006020828403121561181157600080fd5b81356117ea816117f1565b6000806040838503121561182f57600080fd5b823561183a816116d7565b915060208301356117a9816117f1565b600181811c9082168061185e57607f821691505b60208210810361187e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561076057610760611884565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082018082111561076057610760611884565b60006020828403121561190757600080fd5b81516117ea816117f1565b808202811582820484141761076057610760611884565b60008261194657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561197357600080fd5b81516117ea816116d7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119ce5784516001600160a01b0316835293830193918301916001016119a9565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f915f05d7bcf6e62e7ee97e4f55f8dc85e8fa66ba9cb03a55546f4937f46e85c64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102135760003560e01c80638da5cb5b11610118578063aa4bde28116100a0578063dd62ed3e1161006f578063dd62ed3e146105f7578063e01af92c1461063d578063e545fd6d1461065d578063f2fde38b1461067d578063f887ea401461069d57600080fd5b8063aa4bde281461057b578063b70143c914610591578063c8c8ebe4146105b1578063dbe66ca0146105c757600080fd5b80639d0014b1116100e75780639d0014b1146104db5780639e252f00146104fb578063a457c2d71461051b578063a8aa1b311461053b578063a9059cbb1461055b57600080fd5b80638da5cb5b1461047c57806395d656e71461049a57806395d89b41146104b057806399841e73146104c557600080fd5b806340b28c2f1161019b57806370a082311161016a57806370a08231146103e7578063715018a61461041d57806380f40619146104325780638a8c523c146104475780638cd4426d1461045c57600080fd5b806340b28c2f146103655780634ada218b146103855780634ebc552d146103a65780636ddd1713146103c657600080fd5b806323b872dd116101e257806323b872dd146102af5780632598cdb2146102cf578063313ce5671461030757806332da93cb14610323578063395093511461034557600080fd5b80630445b6671461021f57806306fdde0314610248578063095ea7b31461026a57806318160ddd1461029a57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023560095481565b6040519081526020015b60405180910390f35b34801561025457600080fd5b5061025d6106bd565b60405161023f9190611689565b34801561027657600080fd5b5061028a6102853660046116ec565b61074f565b604051901515815260200161023f565b3480156102a657600080fd5b50600254610235565b3480156102bb57600080fd5b5061028a6102ca366004611718565b610766565b3480156102db57600080fd5b50600c546102ef906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b34801561031357600080fd5b506040516012815260200161023f565b34801561032f57600080fd5b5061034361033e366004611759565b61081c565b005b34801561035157600080fd5b5061028a6103603660046116ec565b610851565b34801561037157600080fd5b5061034361038036600461177b565b610888565b34801561039157600080fd5b5060075461028a90600160b01b900460ff1681565b3480156103b257600080fd5b506103436103c13660046117b4565b6108e0565b3480156103d257600080fd5b5060075461028a90600160a81b900460ff1681565b3480156103f357600080fd5b506102356104023660046117cd565b6001600160a01b031660009081526020819052604090205490565b34801561042957600080fd5b5061034361090f565b34801561043e57600080fd5b50610343610945565b34801561045357600080fd5b5061034361097c565b34801561046857600080fd5b506103436104773660046116ec565b610a10565b34801561048857600080fd5b506005546001600160a01b03166102ef565b3480156104a657600080fd5b50610235600e5481565b3480156104bc57600080fd5b5061025d610a8c565b3480156104d157600080fd5b50610235600d5481565b3480156104e757600080fd5b506103436104f63660046117b4565b610a9b565b34801561050757600080fd5b506103436105163660046117b4565b610aca565b34801561052757600080fd5b5061028a6105363660046116ec565b610ae3565b34801561054757600080fd5b506007546102ef906001600160a01b031681565b34801561056757600080fd5b5061028a6105763660046116ec565b610b7e565b34801561058757600080fd5b50610235600b5481565b34801561059d57600080fd5b506103436105ac3660046117b4565b610b8b565b3480156105bd57600080fd5b50610235600a5481565b3480156105d357600080fd5b5061028a6105e23660046117cd565b600f6020526000908152604090205460ff1681565b34801561060357600080fd5b5061023561061236600461177b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561064957600080fd5b506103436106583660046117ff565b610bc1565b34801561066957600080fd5b5061034361067836600461181c565b610c09565b34801561068957600080fd5b506103436106983660046117cd565b610c5e565b3480156106a957600080fd5b506006546102ef906001600160a01b031681565b6060600380546106cc9061184a565b80601f01602080910402602001604051908101604052809291908181526020018280546106f89061184a565b80156107455780601f1061071a57610100808354040283529160200191610745565b820191906000526020600020905b81548152906001019060200180831161072857829003601f168201915b5050505050905090565b600061075c338484610cf6565b5060015b92915050565b6000610773848484610e1a565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156107fd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610811853361080c868561189a565b610cf6565b506001949350505050565b6005546001600160a01b031633146108465760405162461bcd60e51b81526004016107f4906118ad565b600d91909155600e55565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161075c91859061080c9086906118e2565b6005546001600160a01b031633146108b25760405162461bcd60e51b81526004016107f4906118ad565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b0316331461090a5760405162461bcd60e51b81526004016107f4906118ad565b600d55565b6005546001600160a01b031633146109395760405162461bcd60e51b81526004016107f4906118ad565b6109436000611143565b565b6005546001600160a01b0316331461096f5760405162461bcd60e51b81526004016107f4906118ad565b600854600a819055600b55565b6005546001600160a01b031633146109a65760405162461bcd60e51b81526004016107f4906118ad565b600754600160b01b900460ff16156109f95760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016107f4565b6007805461ffff60a81b191661010160a81b179055565b600c5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610a63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8791906118f5565b505050565b6060600480546106cc9061184a565b6005546001600160a01b03163314610ac55760405162461bcd60e51b81526004016107f4906118ad565b600955565b600c54610ae0906001600160a01b031682611195565b50565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610b655760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107f4565b610b74338561080c868561189a565b5060019392505050565b600061075c338484610e1a565b600c546001600160a01b03163314610ba257600080fd5b610bab816112ae565b600c54610ae0906001600160a01b031647611195565b6005546001600160a01b03163314610beb5760405162461bcd60e51b81526004016107f4906118ad565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c335760405162461bcd60e51b81526004016107f4906118ad565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610c885760405162461bcd60e51b81526004016107f4906118ad565b6001600160a01b038116610ced5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107f4565b610ae081611143565b6001600160a01b038316610d585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107f4565b6001600160a01b038216610db95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107f4565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111610e7c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107f4565b6001600160a01b0383166000908152600f602052604090205460ff16158015610ebe57506001600160a01b0382166000908152600f602052604090205460ff16155b8015610ed45750600754600160a01b900460ff16155b1561101757600754600160b01b900460ff16610f2b5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b60448201526064016107f4565b600a54811115610f7d5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016107f4565b6007546001600160a01b0383811691161461101757600b5481610fb5846001600160a01b031660009081526020819052604090205490565b610fbf91906118e2565b11156110175760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016107f4565b600754600090600160a01b900460ff168061104a57506001600160a01b0384166000908152600f602052604090205460ff165b8061106d57506001600160a01b0383166000908152600f602052604090205460ff165b1561107a575060006110ce565b6007546001600160a01b03908116908416036110b1576064600e54836110a09190611912565b6110aa9190611929565b90506110ce565b6064600d54836110c19190611912565b6110cb9190611929565b90505b600754600160a81b900460ff1680156110f15750600754600160a01b900460ff16155b801561110b57506007546001600160a01b03858116911614155b1561111857611118611408565b61112c8484611127848661189a565b611473565b801561113d5761113d843083611473565b50505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b804710156111e55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107f4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611232576040519150601f19603f3d011682016040523d82523d6000602084013e611237565b606091505b5050905080610a875760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107f4565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106112e3576112e361194b565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561133c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113609190611961565b816001815181106113735761137361194b565b6001600160a01b0392831660209182029290920101526006546113999130911684610cf6565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906113d290859060009086903090429060040161197e565b600060405180830381600087803b1580156113ec57600080fd5b505af1158015611400573d6000803e3d6000fd5b505050505050565b600754600160a01b900460ff16610943576007805460ff60a01b1916600160a01b1790553060009081526020819052604081205490506009548110611452576114526009546112ae565b478015611462576114624761164b565b50506007805460ff60a01b19169055565b6001600160a01b0383166114d75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107f4565b6001600160a01b0382166115395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107f4565b6001600160a01b038316600090815260208190526040902054818110156115b15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107f4565b6115bb828261189a565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906115f19084906118e2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161163d91815260200190565b60405180910390a350505050565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611685573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b818110156116b65785810183015185820160400152820161169a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ae057600080fd5b600080604083850312156116ff57600080fd5b823561170a816116d7565b946020939093013593505050565b60008060006060848603121561172d57600080fd5b8335611738816116d7565b92506020840135611748816116d7565b929592945050506040919091013590565b6000806040838503121561176c57600080fd5b50508035926020909101359150565b6000806040838503121561178e57600080fd5b8235611799816116d7565b915060208301356117a9816116d7565b809150509250929050565b6000602082840312156117c657600080fd5b5035919050565b6000602082840312156117df57600080fd5b81356117ea816116d7565b9392505050565b8015158114610ae057600080fd5b60006020828403121561181157600080fd5b81356117ea816117f1565b6000806040838503121561182f57600080fd5b823561183a816116d7565b915060208301356117a9816117f1565b600181811c9082168061185e57607f821691505b60208210810361187e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561076057610760611884565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082018082111561076057610760611884565b60006020828403121561190757600080fd5b81516117ea816117f1565b808202811582820484141761076057610760611884565b60008261194657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561197357600080fd5b81516117ea816116d7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119ce5784516001600160a01b0316835293830193918301916001016119a9565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f915f05d7bcf6e62e7ee97e4f55f8dc85e8fa66ba9cb03a55546f4937f46e85c64736f6c63430008120033

Deployed Bytecode Sourcemap

8030:4947:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8330:47;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8330:47:0;;;;;;;;1968:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2882:169::-;;;;;;;;;;-1:-1:-1;2882:169:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;2882:169:0;1205:187:1;2289:108:0;;;;;;;;;;-1:-1:-1;2377:12:0;;2289:108;;3059:422;;;;;;;;;;-1:-1:-1;3059:422:0;;;;;:::i;:::-;;:::i;8505:30::-;;;;;;;;;;-1:-1:-1;8505:30:0;;;;-1:-1:-1;;;;;8505:30:0;;;;;;-1:-1:-1;;;;;2022:32:1;;;2004:51;;1992:2;1977:18;8505:30:0;1858:203:1;2188:93:0;;;;;;;;;;-1:-1:-1;2188:93:0;;2271:2;2208:36:1;;2196:2;2181:18;2188:93:0;2066:184:1;11852:153:0;;;;;;;;;;-1:-1:-1;11852:153:0;;;;;:::i;:::-;;:::i;:::-;;3489:215;;;;;;;;;;-1:-1:-1;3489:215:0;;;;;:::i;:::-;;:::i;12143:137::-;;;;;;;;;;-1:-1:-1;12143:137:0;;;;;:::i;:::-;;:::i;8237:26::-;;;;;;;;;;-1:-1:-1;8237:26:0;;;;-1:-1:-1;;;8237:26:0;;;;;;11756:90;;;;;;;;;;-1:-1:-1;11756:90:0;;;;;:::i;:::-;;:::i;8207:23::-;;;;;;;;;;-1:-1:-1;8207:23:0;;;;-1:-1:-1;;;8207:23:0;;;;;;2405:127;;;;;;;;;;-1:-1:-1;2405:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2506:18:0;2479:7;2506:18;;;;;;;;;;;;2405:127;6807:94;;;;;;;;;;;;;:::i;12011:126::-;;;;;;;;;;;;;:::i;11577:173::-;;;;;;;;;;;;;:::i;12434:141::-;;;;;;;;;;-1:-1:-1;12434:141:0;;;;;:::i;:::-;;:::i;6584:87::-;;;;;;;;;;-1:-1:-1;6657:6:0;;-1:-1:-1;;;;;6657:6:0;6584:87;;8596:28;;;;;;;;;;;;;;;;2076:104;;;;;;;;;;;;;:::i;8548:24::-;;;;;;;;;;;;;;;;11459:110;;;;;;;;;;-1:-1:-1;11459:110:0;;;;;:::i;:::-;;:::i;12583:111::-;;;;;;;;;;-1:-1:-1;12583:111:0;;;;;:::i;:::-;;:::i;3712:377::-;;;;;;;;;;-1:-1:-1;3712:377:0;;;;;:::i;:::-;;:::i;8147:19::-;;;;;;;;;;-1:-1:-1;8147:19:0;;;;-1:-1:-1;;;;;8147:19:0;;;2540:175;;;;;;;;;;-1:-1:-1;2540:175:0;;;;;:::i;:::-;;:::i;8444:48::-;;;;;;;;;;;;;;;;12702:211;;;;;;;;;;-1:-1:-1;12702:211:0;;;;;:::i;:::-;;:::i;8384:53::-;;;;;;;;;;;;;;;;8653:49;;;;;;;;;;-1:-1:-1;8653:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2723:151;;;;;;;;;;-1:-1:-1;2723:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2839:18:0;;;2812:7;2839:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2723:151;11358:93;;;;;;;;;;-1:-1:-1;11358:93:0;;;;;:::i;:::-;;:::i;12292:134::-;;;;;;;;;;-1:-1:-1;12292:134:0;;;;;:::i;:::-;;:::i;6909:192::-;;;;;;;;;;-1:-1:-1;6909:192:0;;;;;:::i;:::-;;:::i;8119:21::-;;;;;;;;;;-1:-1:-1;8119:21:0;;;;-1:-1:-1;;;;;8119:21:0;;;1968:100;2022:13;2055:5;2048:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1968:100;:::o;2882:169::-;2965:4;2982:39;450:10;3005:7;3014:6;2982:8;:39::i;:::-;-1:-1:-1;3039:4:0;2882:169;;;;;:::o;3059:422::-;3165:4;3182:36;3192:6;3200:9;3211:6;3182:9;:36::i;:::-;-1:-1:-1;;;;;3258:19:0;;3231:24;3258:19;;;:11;:19;;;;;;;;450:10;3258:33;;;;;;;;3310:26;;;;3302:79;;;;-1:-1:-1;;;3302:79:0;;5312:2:1;3302:79:0;;;5294:21:1;5351:2;5331:18;;;5324:30;5390:34;5370:18;;;5363:62;-1:-1:-1;;;5441:18:1;;;5434:38;5489:19;;3302:79:0;;;;;;;;;3392:57;3401:6;450:10;3423:25;3442:6;3423:16;:25;:::i;:::-;3392:8;:57::i;:::-;-1:-1:-1;3469:4:0;;3059:422;-1:-1:-1;;;;3059:422:0:o;11852:153::-;6657:6;;-1:-1:-1;;;;;6657:6:0;450:10;6719:23;6711:68;;;;-1:-1:-1;;;6711:68:0;;;;;;;:::i;:::-;11946:4:::1;:16:::0;;;;11973:8:::1;:24:::0;11852:153::o;3489:215::-;450:10;3577:4;3626:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3626:34:0;;;;;;;;;;3577:4;;3594:80;;3617:7;;3626:47;;3663:10;;3626:47;:::i;12143:137::-;6657:6;;-1:-1:-1;;;;;6657:6:0;450:10;6719:23;6711:68;;;;-1:-1:-1;;;6711:68:0;;;;;;;:::i;:::-;12233:6:::1;:16:::0;;-1:-1:-1;;;;;12233:16:0;;::::1;-1:-1:-1::0;;;;;;12233:16:0;;::::1;;::::0;;;12260:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;12143:137::o;11756:90::-;6657:6;;-1:-1:-1;;;;;6657:6:0;450:10;6719:23;6711:68;;;;-1:-1:-1;;;6711:68:0;;;;;;;:::i;:::-;11822:4:::1;:16:::0;11756:90::o;6807:94::-;6657:6;;-1:-1:-1;;;;;6657:6:0;450:10;6719:23;6711:68;;;;-1:-1:-1;;;6711:68:0;;;;;;;:::i;:::-;6872:21:::1;6890:1;6872:9;:21::i;:::-;6807:94::o:0;12011:126::-;6657:6;;-1:-1:-1;;;;;6657:6:0;450:10;6719:23;6711:68;;;;-1:-1:-1;;;6711:68:0;;;;;;;:::i;:::-;12086:7:::1;::::0;12063:20:::1;:30:::0;;;12104:15:::1;:25:::0;12011:126::o;11577:173::-;6657:6;;-1:-1:-1;;;;;6657:6:0;450:10;6719:23;6711:68;;;;-1:-1:-1;;;6711:68:0;;;;;;;:::i;:::-;11640:14:::1;::::0;-1:-1:-1;;;11640:14:0;::::1;;;11639:15;11631:50;;;::::0;-1:-1:-1;;;11631:50:0;;6477:2:1;11631:50:0::1;::::0;::::1;6459:21:1::0;6516:2;6496:18;;;6489:30;-1:-1:-1;;;6535:18:1;;;6528:52;6597:18;;11631:50:0::1;6275:346:1::0;11631:50:0::1;11692:14;:21:::0;;-1:-1:-1;;;;11724:18:0;-1:-1:-1;;;11724:18:0;;;11577:173::o;12434:141::-;12543:15;;12513:54;;-1:-1:-1;;;12513:54:0;;-1:-1:-1;;;;;12543:15:0;;;12513:54;;;6800:51:1;6867:18;;;6860:34;;;12513:29:0;;;;;;6773:18:1;;12513:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12434:141;;:::o;2076:104::-;2132:13;2165:7;2158:14;;;;;:::i;11459:110::-;6657:6;;-1:-1:-1;;;;;6657:6:0;450:10;6719:23;6711:68;;;;-1:-1:-1;;;6711:68:0;;;;;;;:::i;:::-;11535:13:::1;:26:::0;11459:110::o;12583:111::-;12649:15;;12641:45;;-1:-1:-1;;;;;12649:15:0;12676:9;12641:34;:45::i;:::-;12583:111;:::o;3712:377::-;450:10;3805:4;3849:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3849:34:0;;;;;;;;;;3902:35;;;;3894:85;;;;-1:-1:-1;;;3894:85:0;;7357:2:1;3894:85:0;;;7339:21:1;7396:2;7376:18;;;7369:30;7435:34;7415:18;;;7408:62;-1:-1:-1;;;7486:18:1;;;7479:35;7531:19;;3894:85:0;7155:401:1;3894:85:0;3990:67;450:10;4013:7;4022:34;4041:15;4022:16;:34;:::i;3990:67::-;-1:-1:-1;4077:4:0;;3712:377;-1:-1:-1;;;3712:377:0:o;2540:175::-;2626:4;2643:42;450:10;2667:9;2678:6;2643:9;:42::i;12702:211::-;12779:15;;-1:-1:-1;;;;;12779:15:0;12765:10;:29;12757:38;;;;;;12806:24;12823:6;12806:16;:24::i;:::-;12849:15;;12841:57;;-1:-1:-1;;;;;12849:15:0;12876:21;12841:34;:57::i;11358:93::-;6657:6;;-1:-1:-1;;;;;6657:6:0;450:10;6719:23;6711:68;;;;-1:-1:-1;;;6711:68:0;;;;;;;:::i;:::-;11424:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;11424:19:0::1;-1:-1:-1::0;;;;11424:19:0;;::::1;::::0;;;::::1;::::0;;11358:93::o;12292:134::-;6657:6;;-1:-1:-1;;;;;6657:6:0;450:10;6719:23;6711:68;;;;-1:-1:-1;;;6711:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12384:26:0;;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:34;;-1:-1:-1;;12384:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12292:134::o;6909:192::-;6657:6;;-1:-1:-1;;;;;6657:6:0;450:10;6719:23;6711:68;;;;-1:-1:-1;;;6711:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6998:22:0;::::1;6990:73;;;::::0;-1:-1:-1;;;6990:73:0;;7763:2:1;6990:73:0::1;::::0;::::1;7745:21:1::0;7802:2;7782:18;;;7775:30;7841:34;7821:18;;;7814:62;-1:-1:-1;;;7892:18:1;;;7885:36;7938:19;;6990:73:0::1;7561:402:1::0;6990:73:0::1;7074:19;7084:8;7074:9;:19::i;5554:346::-:0;-1:-1:-1;;;;;5656:19:0;;5648:68;;;;-1:-1:-1;;;5648:68:0;;8170:2:1;5648:68:0;;;8152:21:1;8209:2;8189:18;;;8182:30;8248:34;8228:18;;;8221:62;-1:-1:-1;;;8299:18:1;;;8292:34;8343:19;;5648:68:0;7968:400:1;5648:68:0;-1:-1:-1;;;;;5735:21:0;;5727:68;;;;-1:-1:-1;;;5727:68:0;;8575:2:1;5727:68:0;;;8557:21:1;8614:2;8594:18;;;8587:30;8653:34;8633:18;;;8626:62;-1:-1:-1;;;8704:18:1;;;8697:32;8746:19;;5727:68:0;8373:398:1;5727:68:0;-1:-1:-1;;;;;5808:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5860:32;;160:25:1;;;5860:32:0;;133:18:1;5860:32:0;;;;;;;5554:346;;;:::o;9344:1102::-;9460:1;9451:6;:10;9443:64;;;;-1:-1:-1;;;9443:64:0;;8978:2:1;9443:64:0;;;8960:21:1;9017:2;8997:18;;;8990:30;9056:34;9036:18;;;9029:62;-1:-1:-1;;;9107:18:1;;;9100:39;9156:19;;9443:64:0;8776:405:1;9443:64:0;-1:-1:-1;;;;;9550:24:0;;;;;;:16;:24;;;;;;;;9549:25;:57;;;;-1:-1:-1;;;;;;9579:27:0;;;;;;:16;:27;;;;;;;;9578:28;9549:57;:70;;;;-1:-1:-1;9611:8:0;;-1:-1:-1;;;9611:8:0;;;;9610:9;9549:70;9546:401;;;9643:14;;-1:-1:-1;;;9643:14:0;;;;9635:49;;;;-1:-1:-1;;;9635:49:0;;9388:2:1;9635:49:0;;;9370:21:1;9427:2;9407:18;;;9400:30;-1:-1:-1;;;9446:18:1;;;9439:52;9508:18;;9635:49:0;9186:346:1;9635:49:0;9717:20;;9707:6;:30;;9699:72;;;;-1:-1:-1;;;9699:72:0;;9739:2:1;9699:72:0;;;9721:21:1;9778:2;9758:18;;;9751:30;9817:31;9797:18;;;9790:59;9866:18;;9699:72:0;9537:353:1;9699:72:0;9802:4;;-1:-1:-1;;;;;9789:17:0;;;9802:4;;9789:17;9786:150;;9867:15;;9857:6;9834:20;9844:9;-1:-1:-1;;;;;2506:18:0;2479:7;2506:18;;;;;;;;;;;;2405:127;9834:20;:29;;;;:::i;:::-;:48;;9826:94;;;;-1:-1:-1;;;9826:94:0;;10097:2:1;9826:94:0;;;10079:21:1;10136:2;10116:18;;;10109:30;10175:34;10155:18;;;10148:62;-1:-1:-1;;;10226:18:1;;;10219:31;10267:19;;9826:94:0;9895:397:1;9826:94:0;9999:8;;9959:11;;-1:-1:-1;;;9999:8:0;;;;;:36;;-1:-1:-1;;;;;;10011:24:0;;;;;;:16;:24;;;;;;;;9999:36;:67;;;-1:-1:-1;;;;;;10039:27:0;;;;;;:16;:27;;;;;;;;9999:67;9995:231;;;-1:-1:-1;10074:1:0;9995:231;;;10134:4;;-1:-1:-1;;;;;10134:4:0;;;10121:17;;;;10118:96;;10166:3;10155:8;;10146:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;10140:29;;10118:96;;;10211:3;10204:4;;10195:6;:13;;;;:::i;:::-;:19;;;;:::i;:::-;10189:25;;10118:96;10252:11;;-1:-1:-1;;;10252:11:0;;;;:24;;;;-1:-1:-1;10268:8:0;;-1:-1:-1;;;10268:8:0;;;;10267:9;10252:24;:42;;;;-1:-1:-1;10290:4:0;;-1:-1:-1;;;;;10280:14:0;;;10290:4;;10280:14;;10252:42;10248:61;;;10296:13;:11;:13::i;:::-;10322:48;10338:6;10346:9;10357:12;10366:3;10357:6;:12;:::i;:::-;10322:15;:48::i;:::-;10384:7;;10381:55;;10393:43;10409:6;10425:4;10432:3;10393:15;:43::i;:::-;9432:1014;9344:1102;;;:::o;7109:173::-;7184:6;;;-1:-1:-1;;;;;7201:17:0;;;-1:-1:-1;;;;;;7201:17:0;;;;;;;7234:40;;7184:6;;;7201:17;7184:6;;7234:40;;7165:16;;7234:40;7154:128;7109:173;:::o;6029:317::-;6144:6;6119:21;:31;;6111:73;;;;-1:-1:-1;;;6111:73:0;;10894:2:1;6111:73:0;;;10876:21:1;10933:2;10913:18;;;10906:30;10972:31;10952:18;;;10945:59;11021:18;;6111:73:0;10692:353:1;6111:73:0;6198:12;6216:9;-1:-1:-1;;;;;6216:14:0;6238:6;6216:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6197:52;;;6268:7;6260:78;;;;-1:-1:-1;;;6260:78:0;;11462:2:1;6260:78:0;;;11444:21:1;11501:2;11481:18;;;11474:30;11540:34;11520:18;;;11513:62;11611:28;11591:18;;;11584:56;11657:19;;6260:78:0;11260:422:1;10838:400:0;10928:16;;;10942:1;10928:16;;;;;;;;10904:21;;10928:16;;;;;;;;;;-1:-1:-1;10928:16:0;10904:40;;10973:4;10955;10960:1;10955:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10955:23:0;;;:7;;;;;;;;;;:23;;;;10999:6;;:13;;;-1:-1:-1;;;10999:13:0;;;;:6;;;;;:11;;:13;;;;;10955:7;;10999:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10989:4;10994:1;10989:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10989:23:0;;;:7;;;;;;;;;:23;11057:6;;11025:53;;11042:4;;11057:6;11066:11;11025:8;:53::i;:::-;11117:6;;:111;;-1:-1:-1;;;11117:111:0;;-1:-1:-1;;;;;11117:6:0;;;;:57;;:111;;11175:11;;11117:6;;11191:4;;11205;;11212:15;;11117:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10893:345;10838:400;:::o;10455:373::-;8749:8;;-1:-1:-1;;;8749:8:0;;;;8744:104;;8774:8;:15;;-1:-1:-1;;;;8774:15:0;-1:-1:-1;;;8774:15:0;;;10548:4:::1;-1:-1:-1::0;2506:18:0;;;;;;;;;;;10504:50:::1;;10588:13;;10569:15;:32;10565:96;;10618:31;10635:13;;10618:16;:31::i;:::-;10700:21;10735:22:::0;;10732:89:::1;;10774:35;10787:21;10774:12;:35::i;:::-;-1:-1:-1::0;;8820:8:0;:16;;-1:-1:-1;;;;8820:16:0;;;10455:373::o;4097:604::-;-1:-1:-1;;;;;4203:20:0;;4195:70;;;;-1:-1:-1;;;4195:70:0;;13394:2:1;4195:70:0;;;13376:21:1;13433:2;13413:18;;;13406:30;13472:34;13452:18;;;13445:62;-1:-1:-1;;;13523:18:1;;;13516:35;13568:19;;4195:70:0;13192:401:1;4195:70:0;-1:-1:-1;;;;;4284:23:0;;4276:71;;;;-1:-1:-1;;;4276:71:0;;13800:2:1;4276:71:0;;;13782:21:1;13839:2;13819:18;;;13812:30;13878:34;13858:18;;;13851:62;-1:-1:-1;;;13929:18:1;;;13922:33;13972:19;;4276:71:0;13598:399:1;4276:71:0;-1:-1:-1;;;;;4444:17:0;;4420:21;4444:17;;;;;;;;;;;4480:23;;;;4472:74;;;;-1:-1:-1;;;4472:74:0;;14204:2:1;4472:74:0;;;14186:21:1;14243:2;14223:18;;;14216:30;14282:34;14262:18;;;14255:62;-1:-1:-1;;;14333:18:1;;;14326:36;14379:19;;4472:74:0;14002:402:1;4472:74:0;4577:22;4593:6;4577:13;:22;:::i;:::-;-1:-1:-1;;;;;4557:17:0;;;:9;:17;;;;;;;;;;;:42;;;;4610:20;;;;;;;;:30;;4634:6;;4557:9;4610:30;;4634:6;;4610:30;:::i;:::-;;;;;;;;4675:9;-1:-1:-1;;;;;4658:35:0;4667:6;-1:-1:-1;;;;;4658:35:0;;4686:6;4658:35;;;;160:25:1;;148:2;133:18;;14:177;4658:35:0;;;;;;;;4184:517;4097:604;;;:::o;11246:106::-;11311:15;;11303:41;;-1:-1:-1;;;;;11311:15:0;;;;11303:41;;;;;11337:6;;11311:15;11303:41;11311:15;11303:41;11337:6;11311:15;11303:41;;;;;;;;;;;;;;;;;;;;;11246:106;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:248::-;2323:6;2331;2384:2;2372:9;2363:7;2359:23;2355:32;2352:52;;;2400:1;2397;2390:12;2352:52;-1:-1:-1;;2423:23:1;;;2493:2;2478:18;;;2465:32;;-1:-1:-1;2255:248:1:o;2508:403::-;2591:6;2599;2652:2;2640:9;2631:7;2627:23;2623:32;2620:52;;;2668:1;2665;2658:12;2620:52;2707:9;2694:23;2726:31;2751:5;2726:31;:::i;:::-;2776:5;-1:-1:-1;2833:2:1;2818:18;;2805:32;2846:33;2805:32;2846:33;:::i;:::-;2898:7;2888:17;;;2508:403;;;;;:::o;2916:180::-;2975:6;3028:2;3016:9;3007:7;3003:23;2999:32;2996:52;;;3044:1;3041;3034:12;2996:52;-1:-1:-1;3067:23:1;;2916:180;-1:-1:-1;2916:180:1:o;3101:247::-;3160:6;3213:2;3201:9;3192:7;3188:23;3184:32;3181:52;;;3229:1;3226;3219:12;3181:52;3268:9;3255:23;3287:31;3312:5;3287:31;:::i;:::-;3337:5;3101:247;-1:-1:-1;;;3101:247:1:o;3746:118::-;3832:5;3825:13;3818:21;3811:5;3808:32;3798:60;;3854:1;3851;3844:12;3869:241;3925:6;3978:2;3966:9;3957:7;3953:23;3949:32;3946:52;;;3994:1;3991;3984:12;3946:52;4033:9;4020:23;4052:28;4074:5;4052:28;:::i;4115:382::-;4180:6;4188;4241:2;4229:9;4220:7;4216:23;4212:32;4209:52;;;4257:1;4254;4247:12;4209:52;4296:9;4283:23;4315:31;4340:5;4315:31;:::i;:::-;4365:5;-1:-1:-1;4422:2:1;4407:18;;4394:32;4435:30;4394:32;4435:30;:::i;4725:380::-;4804:1;4800:12;;;;4847;;;4868:61;;4922:4;4914:6;4910:17;4900:27;;4868:61;4975:2;4967:6;4964:14;4944:18;4941:38;4938:161;;5021:10;5016:3;5012:20;5009:1;5002:31;5056:4;5053:1;5046:15;5084:4;5081:1;5074:15;4938:161;;4725:380;;;:::o;5519:127::-;5580:10;5575:3;5571:20;5568:1;5561:31;5611:4;5608:1;5601:15;5635:4;5632:1;5625:15;5651:128;5718:9;;;5739:11;;;5736:37;;;5753:18;;:::i;5784:356::-;5986:2;5968:21;;;6005:18;;;5998:30;6064:34;6059:2;6044:18;;6037:62;6131:2;6116:18;;5784:356::o;6145:125::-;6210:9;;;6231:10;;;6228:36;;;6244:18;;:::i;6905:245::-;6972:6;7025:2;7013:9;7004:7;7000:23;6996:32;6993:52;;;7041:1;7038;7031:12;6993:52;7073:9;7067:16;7092:28;7114:5;7092:28;:::i;10297:168::-;10370:9;;;10401;;10418:15;;;10412:22;;10398:37;10388:71;;10439:18;;:::i;10470:217::-;10510:1;10536;10526:132;;10580:10;10575:3;10571:20;10568:1;10561:31;10615:4;10612:1;10605:15;10643:4;10640:1;10633:15;10526:132;-1:-1:-1;10672:9:1;;10470:217::o;11819:127::-;11880:10;11875:3;11871:20;11868:1;11861:31;11911:4;11908:1;11901:15;11935:4;11932:1;11925:15;11951:251;12021:6;12074:2;12062:9;12053:7;12049:23;12045:32;12042:52;;;12090:1;12087;12080:12;12042:52;12122:9;12116:16;12141:31;12166:5;12141:31;:::i;12207:980::-;12469:4;12517:3;12506:9;12502:19;12548:6;12537:9;12530:25;12574:2;12612:6;12607:2;12596:9;12592:18;12585:34;12655:3;12650:2;12639:9;12635:18;12628:31;12679:6;12714;12708:13;12745:6;12737;12730:22;12783:3;12772:9;12768:19;12761:26;;12822:2;12814:6;12810:15;12796:29;;12843:1;12853:195;12867:6;12864:1;12861:13;12853:195;;;12932:13;;-1:-1:-1;;;;;12928:39:1;12916:52;;13023:15;;;;12988:12;;;;12964:1;12882:9;12853:195;;;-1:-1:-1;;;;;;;13104:32:1;;;;13099:2;13084:18;;13077:60;-1:-1:-1;;;13168:3:1;13153:19;13146:35;13065:3;12207:980;-1:-1:-1;;;12207:980:1:o

Swarm Source

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