ETH Price: $2,370.73 (-3.73%)

Token

Communism (COMMUNISM)
 

Overview

Max Total Supply

100,000,000 COMMUNISM

Holders

31

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,600,000 COMMUNISM

Value
$0.00
0x9f897fa6ef3b410035d087aa52db9eb4286bc221
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:
Communism

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 512 runs

Other Settings:
default evmVersion
File 1 of 1 : fakeCom.sol
// Telegram: https://t.me/portaltocommunism
// Website:  https://communism.network/
// Twitter:  https://twitter.com/purecommunism

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.12;

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(address(0), 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 Communism is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;
    bool public enableMarketingFee;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;
    
    uint256 public swapThreshold = 10_000 * 10e18;
    uint256 public maxTxAmount = 2_000_000 * 10**18;
    uint256 public maxWalletAmount = 2_000_000 * 10**18;
    
    address public marketingWallet = 0xc9C3f5a08B18957C222d9a99f3c0cf160874f111;
    address public devWallet = 0xc9C3f5a08B18957C222d9a99f3c0cf160874f111;
    
    struct Taxes {
        uint256 marketing;
        uint256 liquidity; 
        uint256 dev;
    }
    
    Taxes public taxes = Taxes(10,0,10);
    Taxes public sellTaxes = Taxes(45,0,45);
    uint256 public totTax = 20;
    uint256 public totSellTax = 90;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) private isBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("Communism", "COMMUNISM") {
        _mint(msg.sender, 1e8 * 10 ** decimals());
        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;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            if(genesis_block + deadblocks > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "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 * totSellTax / 100;
            else fee = amount * totTax / 100;
        }
        

        if (swapEnabled && !swapping && sender != pair && fee > 0) 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) {

            uint256 denominator = totSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(toSwap);
    
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
    
            if(ethToAddLiquidityWith > 0){
                // Add liquidity to Uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
    
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
            
            uint256 devAmt = unitBalance * 2 * sellTaxes.dev;
            if(devAmt > 0){
                payable(devWallet).sendValue(devAmt);
            }
        }
    }


    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 addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallet,
            block.timestamp
        );
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

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

    function enableTrading(uint256 numOfDeadBlocks) external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
        enableMarketingFee = true;
        genesis_block = block.number;
        deadblocks = numOfDeadBlocks;
    }

    function setBuyTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{
        taxes = Taxes(_marketing, _liquidity, _dev);
        totTax = _marketing + _liquidity + _dev;
    }

    function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{
        sellTaxes = Taxes(_marketing, _liquidity, _dev);
        totSellTax = _marketing + _liquidity + _dev;
    }
    
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
    
    function updateDevWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }

    function enableMarketingFeeTake(bool state) external onlyOwner{
        enableMarketingFee = state;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
    
    function addBots(address[] memory isBot_) public onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
    }
    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

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

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

    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }

    // fallbacks
    receive() external payable {}
    
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 512
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

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":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableMarketingFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"enableMarketingFeeTake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numOfDeadBlocks","type":"uint256"}],"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":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":"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":"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":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","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":[],"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":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","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":"newWallet","type":"address"}],"name":"updateDevWallet","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":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","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"}]

6080604052600060095569152d02c7e14af6800000600a556a01a784379d99db42000000600b556a01a784379d99db42000000600c5573c9c3f5a08b18957c222d9a99f3c0cf160874f111600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c9c3f5a08b18957c222d9a99f3c0cf160874f111600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060600160405280600a815260200160008152602001600a815250600f60008201518160000155602082015181600101556040820151816002015550506040518060600160405280602d815260200160008152602001602d815250601260008201518160000155602082015181600101556040820151816002015550506014601555605a6016553480156200017657600080fd5b506040518060400160405280600981526020017f436f6d6d756e69736d00000000000000000000000000000000000000000000008152506040518060400160405280600981526020017f434f4d4d554e49534d00000000000000000000000000000000000000000000008152508160039081620001f4919062000ad3565b50806004908162000206919062000ad3565b505050620002296200021d6200061960201b60201c565b6200062160201b60201c565b62000269336200023e620006e760201b60201c565b600a6200024c919062000d4a565b6305f5e1006200025d919062000d9b565b620006f060201b60201c565b6001601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000328573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034e919062000e50565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003dc919062000e50565b6040518363ffffffff1660e01b8152600401620003fb92919062000e93565b6020604051808303816000875af11580156200041b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000441919062000e50565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000fac565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000762576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007599062000f21565b60405180910390fd5b62000776600083836200085460201b60201c565b80600260008282546200078a919062000f43565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620007e1919062000f43565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000848919062000f8f565b60405180910390a35050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008db57607f821691505b602082108103620008f157620008f062000893565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200095b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200091c565b6200096786836200091c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009b4620009ae620009a8846200097f565b62000989565b6200097f565b9050919050565b6000819050919050565b620009d08362000993565b620009e8620009df82620009bb565b84845462000929565b825550505050565b600090565b620009ff620009f0565b62000a0c818484620009c5565b505050565b5b8181101562000a345762000a28600082620009f5565b60018101905062000a12565b5050565b601f82111562000a835762000a4d81620008f7565b62000a58846200090c565b8101602085101562000a68578190505b62000a8062000a77856200090c565b83018262000a11565b50505b505050565b600082821c905092915050565b600062000aa86000198460080262000a88565b1980831691505092915050565b600062000ac3838362000a95565b9150826002028217905092915050565b62000ade8262000859565b67ffffffffffffffff81111562000afa5762000af962000864565b5b62000b068254620008c2565b62000b1382828562000a38565b600060209050601f83116001811462000b4b576000841562000b36578287015190505b62000b42858262000ab5565b86555062000bb2565b601f19841662000b5b86620008f7565b60005b8281101562000b855784890151825560018201915060208501945060208101905062000b5e565b8683101562000ba5578489015162000ba1601f89168262000a95565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c485780860481111562000c205762000c1f62000bba565b5b600185161562000c305780820291505b808102905062000c408562000be9565b945062000c00565b94509492505050565b60008262000c63576001905062000d36565b8162000c73576000905062000d36565b816001811462000c8c576002811462000c975762000ccd565b600191505062000d36565b60ff84111562000cac5762000cab62000bba565b5b8360020a91508482111562000cc65762000cc562000bba565b5b5062000d36565b5060208310610133831016604e8410600b841016171562000d075782820a90508381111562000d015762000d0062000bba565b5b62000d36565b62000d16848484600162000bf6565b9250905081840481111562000d305762000d2f62000bba565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d57826200097f565b915062000d648362000d3d565b925062000d937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c51565b905092915050565b600062000da8826200097f565b915062000db5836200097f565b925082820262000dc5816200097f565b9150828204841483151762000ddf5762000dde62000bba565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e188262000deb565b9050919050565b62000e2a8162000e0b565b811462000e3657600080fd5b50565b60008151905062000e4a8162000e1f565b92915050565b60006020828403121562000e695762000e6862000de6565b5b600062000e798482850162000e39565b91505092915050565b62000e8d8162000e0b565b82525050565b600060408201905062000eaa600083018562000e82565b62000eb9602083018462000e82565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000f09601f8362000ec0565b915062000f168262000ed1565b602082019050919050565b6000602082019050818103600083015262000f3c8162000efa565b9050919050565b600062000f50826200097f565b915062000f5d836200097f565b925082820190508082111562000f785762000f7762000bba565b5b92915050565b62000f89816200097f565b82525050565b600060208201905062000fa6600083018462000f7e565b92915050565b6147d28062000fbc6000396000f3fe6080604052600436106102fc5760003560e01c8063728f8eea1161019a578063a9059cbb116100e1578063dd62ed3e1161008a578063f2fde38b11610064578063f2fde38b14610aca578063f66895a314610af3578063f887ea4014610b2057610303565b8063dd62ed3e14610a3b578063e01af92c14610a78578063e545fd6d14610aa157610303565b8063c18bc195116100bb578063c18bc195146109ac578063d34628cc146109d5578063dbe66ca0146109fe57610303565b8063a9059cbb1461091b578063aa4bde2814610958578063aacebbe31461098357610303565b80638ea5220f116101435780639e252f001161011d5780639e252f001461088a578063a457c2d7146108b3578063a8aa1b31146108f057610303565b80638ea5220f1461080b57806395d89b41146108365780639d0014b11461086157610303565b80638c0b5e22116101745780638c0b5e221461078c5780638cd4426d146107b75780638da5cb5b146107e057610303565b8063728f8eea1461070b57806375f0a8741461073857806382aa7c681461076357610303565b8063274a533c1161025e57806350c9a88f116102075780636f5ccf61116101e15780636f5ccf611461068c57806370a08231146106b7578063715018a6146106f457610303565b806350c9a88f1461060d5780636256d181146106385780636ddd17131461066157610303565b80633950935111610238578063395093511461057c57806340b28c2f146105b95780634ada218b146105e257610303565b8063274a533c146104fb578063293b7ef414610526578063313ce5671461055157610303565b80631816467f116102c05780632253163d1161029a5780632253163d1461046a57806323b872dd1461049557806326b5d32f146104d257610303565b80631816467f146103ef5780631870517a146104185780631e2044d01461044157610303565b80630445b6671461030857806306fdde0314610333578063087332141461035e578063095ea7b31461038757806318160ddd146103c457610303565b3661030357005b600080fd5b34801561031457600080fd5b5061031d610b4b565b60405161032a91906132d4565b60405180910390f35b34801561033f57600080fd5b50610348610b51565b604051610355919061337f565b60405180910390f35b34801561036a57600080fd5b50610385600480360381019061038091906133e1565b610be3565b005b34801561039357600080fd5b506103ae60048036038101906103a99190613492565b610cbf565b6040516103bb91906134ed565b60405180910390f35b3480156103d057600080fd5b506103d9610cdd565b6040516103e691906132d4565b60405180910390f35b3480156103fb57600080fd5b5061041660048036038101906104119190613508565b610ce7565b005b34801561042457600080fd5b5061043f600480360381019061043a91906133e1565b610da7565b005b34801561044d57600080fd5b5061046860048036038101906104639190613561565b610e83565b005b34801561047657600080fd5b5061047f610f1c565b60405161048c91906132d4565b60405180910390f35b3480156104a157600080fd5b506104bc60048036038101906104b7919061358e565b610f22565b6040516104c991906134ed565b60405180910390f35b3480156104de57600080fd5b506104f960048036038101906104f491906133e1565b611023565b005b34801561050757600080fd5b506105106111b0565b60405161051d91906132d4565b60405180910390f35b34801561053257600080fd5b5061053b6111b6565b60405161054891906132d4565b60405180910390f35b34801561055d57600080fd5b506105666111bc565b60405161057391906135fd565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e9190613492565b6111c5565b6040516105b091906134ed565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db9190613656565b611271565b005b3480156105ee57600080fd5b506105f7611373565b60405161060491906134ed565b60405180910390f35b34801561061957600080fd5b50610622611386565b60405161062f91906132d4565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a9190613696565b61138c565b005b34801561066d57600080fd5b50610676611425565b60405161068391906134ed565b60405180910390f35b34801561069857600080fd5b506106a1611438565b6040516106ae91906134ed565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d99190613508565b61144b565b6040516106eb91906132d4565b60405180910390f35b34801561070057600080fd5b50610709611493565b005b34801561071757600080fd5b5061072061151b565b60405161072f939291906136c3565b60405180910390f35b34801561074457600080fd5b5061074d611533565b60405161075a9190613709565b60405180910390f35b34801561076f57600080fd5b5061078a60048036038101906107859190613696565b611559565b005b34801561079857600080fd5b506107a1611687565b6040516107ae91906132d4565b60405180910390f35b3480156107c357600080fd5b506107de60048036038101906107d99190613492565b61168d565b005b3480156107ec57600080fd5b506107f5611793565b6040516108029190613709565b60405180910390f35b34801561081757600080fd5b506108206117bd565b60405161082d9190613709565b60405180910390f35b34801561084257600080fd5b5061084b6117e3565b604051610858919061337f565b60405180910390f35b34801561086d57600080fd5b5061088860048036038101906108839190613696565b611875565b005b34801561089657600080fd5b506108b160048036038101906108ac9190613696565b6118fb565b005b3480156108bf57600080fd5b506108da60048036038101906108d59190613492565b6119aa565b6040516108e791906134ed565b60405180910390f35b3480156108fc57600080fd5b50610905611a9e565b6040516109129190613709565b60405180910390f35b34801561092757600080fd5b50610942600480360381019061093d9190613492565b611ac4565b60405161094f91906134ed565b60405180910390f35b34801561096457600080fd5b5061096d611ae2565b60405161097a91906132d4565b60405180910390f35b34801561098f57600080fd5b506109aa60048036038101906109a59190613508565b611ae8565b005b3480156109b857600080fd5b506109d360048036038101906109ce9190613696565b611ba8565b005b3480156109e157600080fd5b506109fc60048036038101906109f7919061386c565b611c41565b005b348015610a0a57600080fd5b50610a256004803603810190610a209190613508565b611d52565b604051610a3291906134ed565b60405180910390f35b348015610a4757600080fd5b50610a626004803603810190610a5d91906138b5565b611d72565b604051610a6f91906132d4565b60405180910390f35b348015610a8457600080fd5b50610a9f6004803603810190610a9a9190613561565b611df9565b005b348015610aad57600080fd5b50610ac86004803603810190610ac391906138f5565b611e92565b005b348015610ad657600080fd5b50610af16004803603810190610aec9190613508565b611f69565b005b348015610aff57600080fd5b50610b08612060565b604051610b17939291906136c3565b60405180910390f35b348015610b2c57600080fd5b50610b35612078565b604051610b429190613994565b60405180910390f35b600a5481565b606060038054610b60906139de565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8c906139de565b8015610bd95780601f10610bae57610100808354040283529160200191610bd9565b820191906000526020600020905b815481529060010190602001808311610bbc57829003601f168201915b5050505050905090565b610beb61209e565b73ffffffffffffffffffffffffffffffffffffffff16610c09611793565b73ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5690613a5b565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050808284610caa9190613aaa565b610cb49190613aaa565b601681905550505050565b6000610cd3610ccc61209e565b84846120a6565b6001905092915050565b6000600254905090565b610cef61209e565b73ffffffffffffffffffffffffffffffffffffffff16610d0d611793565b73ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a90613a5b565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610daf61209e565b73ffffffffffffffffffffffffffffffffffffffff16610dcd611793565b73ffffffffffffffffffffffffffffffffffffffff1614610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a90613a5b565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050808284610e6e9190613aaa565b610e789190613aaa565b601581905550505050565b610e8b61209e565b73ffffffffffffffffffffffffffffffffffffffff16610ea9611793565b73ffffffffffffffffffffffffffffffffffffffff1614610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef690613a5b565b60405180910390fd5b80600760176101000a81548160ff02191690831515021790555050565b60165481565b6000610f2f84848461226f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f7a61209e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190613b50565b60405180910390fd5b6110178561100661209e565b85846110129190613b70565b6120a6565b60019150509392505050565b61102b61209e565b73ffffffffffffffffffffffffffffffffffffffff16611049611793565b73ffffffffffffffffffffffffffffffffffffffff161461109f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109690613a5b565b60405180910390fd5b60004790506110ad84612938565b600081476110bb9190613b70565b905060008311156111335761113283856110d59190613aaa565b84836110e19190613ba4565b6110eb9190613c15565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7b90919063ffffffff16565b5b60008411156111a9576111a8838561114b9190613aaa565b85836111579190613ba4565b6111619190613c15565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7b90919063ffffffff16565b5b5050505050565b60085481565b60155481565b60006012905090565b60006112676111d261209e565b8484600160006111e061209e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112629190613aaa565b6120a6565b6001905092915050565b61127961209e565b73ffffffffffffffffffffffffffffffffffffffff16611297611793565b73ffffffffffffffffffffffffffffffffffffffff16146112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490613a5b565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b60095481565b61139461209e565b73ffffffffffffffffffffffffffffffffffffffff166113b2611793565b73ffffffffffffffffffffffffffffffffffffffff1614611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ff90613a5b565b60405180910390fd5b670de0b6b3a76400008161141c9190613ba4565b600b8190555050565b600760159054906101000a900460ff1681565b600760179054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61149b61209e565b73ffffffffffffffffffffffffffffffffffffffff166114b9611793565b73ffffffffffffffffffffffffffffffffffffffff161461150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690613a5b565b60405180910390fd5b6115196000612c6f565b565b600f8060000154908060010154908060020154905083565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61156161209e565b73ffffffffffffffffffffffffffffffffffffffff1661157f611793565b73ffffffffffffffffffffffffffffffffffffffff16146115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc90613a5b565b60405180910390fd5b600760169054906101000a900460ff1615611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161c90613c92565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055506001600760176101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b61169561209e565b73ffffffffffffffffffffffffffffffffffffffff166116b3611793565b73ffffffffffffffffffffffffffffffffffffffff1614611709576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170090613a5b565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61172d611793565b836040518363ffffffff1660e01b815260040161174b929190613cb2565b6020604051808303816000875af115801561176a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178e9190613cf0565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546117f2906139de565b80601f016020809104026020016040519081016040528092919081815260200182805461181e906139de565b801561186b5780601f106118405761010080835404028352916020019161186b565b820191906000526020600020905b81548152906001019060200180831161184e57829003601f168201915b5050505050905090565b61187d61209e565b73ffffffffffffffffffffffffffffffffffffffff1661189b611793565b73ffffffffffffffffffffffffffffffffffffffff16146118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e890613a5b565b60405180910390fd5b80600a8190555050565b61190361209e565b73ffffffffffffffffffffffffffffffffffffffff16611921611793565b73ffffffffffffffffffffffffffffffffffffffff1614611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e90613a5b565b60405180910390fd5b6119a781611983611793565b73ffffffffffffffffffffffffffffffffffffffff16612b7b90919063ffffffff16565b50565b600080600160006119b961209e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90613d8f565b60405180910390fd5b611a93611a8161209e565b858584611a8e9190613b70565b6120a6565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611ad8611ad161209e565b848461226f565b6001905092915050565b600c5481565b611af061209e565b73ffffffffffffffffffffffffffffffffffffffff16611b0e611793565b73ffffffffffffffffffffffffffffffffffffffff1614611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b90613a5b565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611bb061209e565b73ffffffffffffffffffffffffffffffffffffffff16611bce611793565b73ffffffffffffffffffffffffffffffffffffffff1614611c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1b90613a5b565b60405180910390fd5b670de0b6b3a764000081611c389190613ba4565b600c8190555050565b611c4961209e565b73ffffffffffffffffffffffffffffffffffffffff16611c67611793565b73ffffffffffffffffffffffffffffffffffffffff1614611cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb490613a5b565b60405180910390fd5b60005b8151811015611d4e57600160186000848481518110611ce257611ce1613daf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d4690613dde565b915050611cc0565b5050565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e0161209e565b73ffffffffffffffffffffffffffffffffffffffff16611e1f611793565b73ffffffffffffffffffffffffffffffffffffffff1614611e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6c90613a5b565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611e9a61209e565b73ffffffffffffffffffffffffffffffffffffffff16611eb8611793565b73ffffffffffffffffffffffffffffffffffffffff1614611f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0590613a5b565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611f7161209e565b73ffffffffffffffffffffffffffffffffffffffff16611f8f611793565b73ffffffffffffffffffffffffffffffffffffffff1614611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc90613a5b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204b90613e98565b60405180910390fd5b61205d81612c6f565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210c90613f2a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b90613fbc565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161226291906132d4565b60405180910390a3505050565b600081116122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a99061404e565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123565750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238c906140ba565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124395750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124525750600760149054906101000a900460ff16155b1561270e57600760169054906101000a900460ff166124a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249d90614126565b60405180910390fd5b436009546008546124b79190613aaa565b111561261a57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461256b576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612619576001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b5481111561265f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265690614192565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461270d57600c54816126c18461144b565b6126cb9190613aaa565b111561270c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270390614224565b60405180910390fd5b5b5b6000600760149054906101000a900460ff16806127745750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127c85750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127d6576000905061286a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361284c5760646016548361283b9190613ba4565b6128459190613c15565b9050612869565b60646015548361285c9190613ba4565b6128669190613c15565b90505b5b600760159054906101000a900460ff1680156128935750600760149054906101000a900460ff16155b80156128ed5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128f95750600081115b1561290757612906612d35565b5b61291d848483856129189190613b70565b612f39565b600081111561293257612931843083612f39565b5b50505050565b6000600267ffffffffffffffff81111561295557612954613729565b5b6040519080825280602002602001820160405280156129835781602001602082028036833780820191505090505b509050308160008151811061299b5761299a613daf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a669190614259565b81600181518110612a7a57612a79613daf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ae130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b4595949392919061437f565b600060405180830381600087803b158015612b5f57600080fd5b505af1158015612b73573d6000803e3d6000fd5b505050505050565b80471015612bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb590614425565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612be490614476565b60006040518083038185875af1925050503d8060008114612c21576040519150601f19603f3d011682016040523d82523d6000602084013e612c26565b606091505b5050905080612c6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c61906144fd565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612f37576001600760146101000a81548160ff0219169083151502179055506000612d6f3061144b565b9050600a548110612f1a5760006002601654612d8b9190613ba4565b905060008160126001015484612da19190613ba4565b612dab9190613c15565b905060008184612dbb9190613b70565b90506000479050612dcb82612938565b60008147612dd99190613b70565b9050600060126001015486612dee9190613b70565b82612df99190613c15565b9050600060126001015482612e0e9190613ba4565b90506000811115612e2457612e2386826131b6565b5b6000601260000154600284612e399190613ba4565b612e439190613ba4565b90506000811115612e9a57612e9981600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7b90919063ffffffff16565b5b6000601260020154600285612eaf9190613ba4565b612eb99190613ba4565b90506000811115612f1057612f0f81600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7b90919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9f9061458f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300e90614621565b60405180910390fd5b6130228383836132b6565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156130a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161309f906146b3565b60405180910390fd5b81816130b49190613b70565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131449190613aaa565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131a891906132d4565b60405180910390a350505050565b6131e330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161326c969594939291906146d3565b60606040518083038185885af115801561328a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132af9190614749565b5050505050565b505050565b6000819050919050565b6132ce816132bb565b82525050565b60006020820190506132e960008301846132c5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561332957808201518184015260208101905061330e565b60008484015250505050565b6000601f19601f8301169050919050565b6000613351826132ef565b61335b81856132fa565b935061336b81856020860161330b565b61337481613335565b840191505092915050565b600060208201905081810360008301526133998184613346565b905092915050565b6000604051905090565b600080fd5b600080fd5b6133be816132bb565b81146133c957600080fd5b50565b6000813590506133db816133b5565b92915050565b6000806000606084860312156133fa576133f96133ab565b5b6000613408868287016133cc565b9350506020613419868287016133cc565b925050604061342a868287016133cc565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061345f82613434565b9050919050565b61346f81613454565b811461347a57600080fd5b50565b60008135905061348c81613466565b92915050565b600080604083850312156134a9576134a86133ab565b5b60006134b78582860161347d565b92505060206134c8858286016133cc565b9150509250929050565b60008115159050919050565b6134e7816134d2565b82525050565b600060208201905061350260008301846134de565b92915050565b60006020828403121561351e5761351d6133ab565b5b600061352c8482850161347d565b91505092915050565b61353e816134d2565b811461354957600080fd5b50565b60008135905061355b81613535565b92915050565b600060208284031215613577576135766133ab565b5b60006135858482850161354c565b91505092915050565b6000806000606084860312156135a7576135a66133ab565b5b60006135b58682870161347d565b93505060206135c68682870161347d565b92505060406135d7868287016133cc565b9150509250925092565b600060ff82169050919050565b6135f7816135e1565b82525050565b600060208201905061361260008301846135ee565b92915050565b600061362382613454565b9050919050565b61363381613618565b811461363e57600080fd5b50565b6000813590506136508161362a565b92915050565b6000806040838503121561366d5761366c6133ab565b5b600061367b85828601613641565b925050602061368c8582860161347d565b9150509250929050565b6000602082840312156136ac576136ab6133ab565b5b60006136ba848285016133cc565b91505092915050565b60006060820190506136d860008301866132c5565b6136e560208301856132c5565b6136f260408301846132c5565b949350505050565b61370381613454565b82525050565b600060208201905061371e60008301846136fa565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61376182613335565b810181811067ffffffffffffffff821117156137805761377f613729565b5b80604052505050565b60006137936133a1565b905061379f8282613758565b919050565b600067ffffffffffffffff8211156137bf576137be613729565b5b602082029050602081019050919050565b600080fd5b60006137e86137e3846137a4565b613789565b9050808382526020820190506020840283018581111561380b5761380a6137d0565b5b835b818110156138345780613820888261347d565b84526020840193505060208101905061380d565b5050509392505050565b600082601f83011261385357613852613724565b5b81356138638482602086016137d5565b91505092915050565b600060208284031215613882576138816133ab565b5b600082013567ffffffffffffffff8111156138a05761389f6133b0565b5b6138ac8482850161383e565b91505092915050565b600080604083850312156138cc576138cb6133ab565b5b60006138da8582860161347d565b92505060206138eb8582860161347d565b9150509250929050565b6000806040838503121561390c5761390b6133ab565b5b600061391a8582860161347d565b925050602061392b8582860161354c565b9150509250929050565b6000819050919050565b600061395a61395561395084613434565b613935565b613434565b9050919050565b600061396c8261393f565b9050919050565b600061397e82613961565b9050919050565b61398e81613973565b82525050565b60006020820190506139a96000830184613985565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139f657607f821691505b602082108103613a0957613a086139af565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a456020836132fa565b9150613a5082613a0f565b602082019050919050565b60006020820190508181036000830152613a7481613a38565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ab5826132bb565b9150613ac0836132bb565b9250828201905080821115613ad857613ad7613a7b565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613b3a6028836132fa565b9150613b4582613ade565b604082019050919050565b60006020820190508181036000830152613b6981613b2d565b9050919050565b6000613b7b826132bb565b9150613b86836132bb565b9250828203905081811115613b9e57613b9d613a7b565b5b92915050565b6000613baf826132bb565b9150613bba836132bb565b9250828202613bc8816132bb565b91508282048414831517613bdf57613bde613a7b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c20826132bb565b9150613c2b836132bb565b925082613c3b57613c3a613be6565b5b828204905092915050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000613c7c6016836132fa565b9150613c8782613c46565b602082019050919050565b60006020820190508181036000830152613cab81613c6f565b9050919050565b6000604082019050613cc760008301856136fa565b613cd460208301846132c5565b9392505050565b600081519050613cea81613535565b92915050565b600060208284031215613d0657613d056133ab565b5b6000613d1484828501613cdb565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d796025836132fa565b9150613d8482613d1d565b604082019050919050565b60006020820190508181036000830152613da881613d6c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613de9826132bb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e1b57613e1a613a7b565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e826026836132fa565b9150613e8d82613e26565b604082019050919050565b60006020820190508181036000830152613eb181613e75565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f146024836132fa565b9150613f1f82613eb8565b604082019050919050565b60006020820190508181036000830152613f4381613f07565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fa66022836132fa565b9150613fb182613f4a565b604082019050919050565b60006020820190508181036000830152613fd581613f99565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006140386029836132fa565b915061404382613fdc565b604082019050919050565b600060208201905081810360008301526140678161402b565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b60006140a46019836132fa565b91506140af8261406e565b602082019050919050565b600060208201905081810360008301526140d381614097565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b60006141106016836132fa565b915061411b826140da565b602082019050919050565b6000602082019050818103600083015261413f81614103565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b600061417c601d836132fa565b915061418782614146565b602082019050919050565b600060208201905081810360008301526141ab8161416f565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061420e6021836132fa565b9150614219826141b2565b604082019050919050565b6000602082019050818103600083015261423d81614201565b9050919050565b60008151905061425381613466565b92915050565b60006020828403121561426f5761426e6133ab565b5b600061427d84828501614244565b91505092915050565b6000819050919050565b60006142ab6142a66142a184614286565b613935565b6132bb565b9050919050565b6142bb81614290565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142f681613454565b82525050565b600061430883836142ed565b60208301905092915050565b6000602082019050919050565b600061432c826142c1565b61433681856142cc565b9350614341836142dd565b8060005b8381101561437257815161435988826142fc565b975061436483614314565b925050600181019050614345565b5085935050505092915050565b600060a08201905061439460008301886132c5565b6143a160208301876142b2565b81810360408301526143b38186614321565b90506143c260608301856136fa565b6143cf60808301846132c5565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061440f601d836132fa565b915061441a826143d9565b602082019050919050565b6000602082019050818103600083015261443e81614402565b9050919050565b600081905092915050565b50565b6000614460600083614445565b915061446b82614450565b600082019050919050565b600061448182614453565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006144e7603a836132fa565b91506144f28261448b565b604082019050919050565b60006020820190508181036000830152614516816144da565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006145796025836132fa565b91506145848261451d565b604082019050919050565b600060208201905081810360008301526145a88161456c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061460b6023836132fa565b9150614616826145af565b604082019050919050565b6000602082019050818103600083015261463a816145fe565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061469d6026836132fa565b91506146a882614641565b604082019050919050565b600060208201905081810360008301526146cc81614690565b9050919050565b600060c0820190506146e860008301896136fa565b6146f560208301886132c5565b61470260408301876142b2565b61470f60608301866142b2565b61471c60808301856136fa565b61472960a08301846132c5565b979650505050505050565b600081519050614743816133b5565b92915050565b600080600060608486031215614762576147616133ab565b5b600061477086828701614734565b935050602061478186828701614734565b925050604061479286828701614734565b915050925092509256fea2646970667358221220074096213109040dadf34b2292f604c43a0296f0c44a13a48d091ecd076a13df64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102fc5760003560e01c8063728f8eea1161019a578063a9059cbb116100e1578063dd62ed3e1161008a578063f2fde38b11610064578063f2fde38b14610aca578063f66895a314610af3578063f887ea4014610b2057610303565b8063dd62ed3e14610a3b578063e01af92c14610a78578063e545fd6d14610aa157610303565b8063c18bc195116100bb578063c18bc195146109ac578063d34628cc146109d5578063dbe66ca0146109fe57610303565b8063a9059cbb1461091b578063aa4bde2814610958578063aacebbe31461098357610303565b80638ea5220f116101435780639e252f001161011d5780639e252f001461088a578063a457c2d7146108b3578063a8aa1b31146108f057610303565b80638ea5220f1461080b57806395d89b41146108365780639d0014b11461086157610303565b80638c0b5e22116101745780638c0b5e221461078c5780638cd4426d146107b75780638da5cb5b146107e057610303565b8063728f8eea1461070b57806375f0a8741461073857806382aa7c681461076357610303565b8063274a533c1161025e57806350c9a88f116102075780636f5ccf61116101e15780636f5ccf611461068c57806370a08231146106b7578063715018a6146106f457610303565b806350c9a88f1461060d5780636256d181146106385780636ddd17131461066157610303565b80633950935111610238578063395093511461057c57806340b28c2f146105b95780634ada218b146105e257610303565b8063274a533c146104fb578063293b7ef414610526578063313ce5671461055157610303565b80631816467f116102c05780632253163d1161029a5780632253163d1461046a57806323b872dd1461049557806326b5d32f146104d257610303565b80631816467f146103ef5780631870517a146104185780631e2044d01461044157610303565b80630445b6671461030857806306fdde0314610333578063087332141461035e578063095ea7b31461038757806318160ddd146103c457610303565b3661030357005b600080fd5b34801561031457600080fd5b5061031d610b4b565b60405161032a91906132d4565b60405180910390f35b34801561033f57600080fd5b50610348610b51565b604051610355919061337f565b60405180910390f35b34801561036a57600080fd5b50610385600480360381019061038091906133e1565b610be3565b005b34801561039357600080fd5b506103ae60048036038101906103a99190613492565b610cbf565b6040516103bb91906134ed565b60405180910390f35b3480156103d057600080fd5b506103d9610cdd565b6040516103e691906132d4565b60405180910390f35b3480156103fb57600080fd5b5061041660048036038101906104119190613508565b610ce7565b005b34801561042457600080fd5b5061043f600480360381019061043a91906133e1565b610da7565b005b34801561044d57600080fd5b5061046860048036038101906104639190613561565b610e83565b005b34801561047657600080fd5b5061047f610f1c565b60405161048c91906132d4565b60405180910390f35b3480156104a157600080fd5b506104bc60048036038101906104b7919061358e565b610f22565b6040516104c991906134ed565b60405180910390f35b3480156104de57600080fd5b506104f960048036038101906104f491906133e1565b611023565b005b34801561050757600080fd5b506105106111b0565b60405161051d91906132d4565b60405180910390f35b34801561053257600080fd5b5061053b6111b6565b60405161054891906132d4565b60405180910390f35b34801561055d57600080fd5b506105666111bc565b60405161057391906135fd565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e9190613492565b6111c5565b6040516105b091906134ed565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db9190613656565b611271565b005b3480156105ee57600080fd5b506105f7611373565b60405161060491906134ed565b60405180910390f35b34801561061957600080fd5b50610622611386565b60405161062f91906132d4565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a9190613696565b61138c565b005b34801561066d57600080fd5b50610676611425565b60405161068391906134ed565b60405180910390f35b34801561069857600080fd5b506106a1611438565b6040516106ae91906134ed565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d99190613508565b61144b565b6040516106eb91906132d4565b60405180910390f35b34801561070057600080fd5b50610709611493565b005b34801561071757600080fd5b5061072061151b565b60405161072f939291906136c3565b60405180910390f35b34801561074457600080fd5b5061074d611533565b60405161075a9190613709565b60405180910390f35b34801561076f57600080fd5b5061078a60048036038101906107859190613696565b611559565b005b34801561079857600080fd5b506107a1611687565b6040516107ae91906132d4565b60405180910390f35b3480156107c357600080fd5b506107de60048036038101906107d99190613492565b61168d565b005b3480156107ec57600080fd5b506107f5611793565b6040516108029190613709565b60405180910390f35b34801561081757600080fd5b506108206117bd565b60405161082d9190613709565b60405180910390f35b34801561084257600080fd5b5061084b6117e3565b604051610858919061337f565b60405180910390f35b34801561086d57600080fd5b5061088860048036038101906108839190613696565b611875565b005b34801561089657600080fd5b506108b160048036038101906108ac9190613696565b6118fb565b005b3480156108bf57600080fd5b506108da60048036038101906108d59190613492565b6119aa565b6040516108e791906134ed565b60405180910390f35b3480156108fc57600080fd5b50610905611a9e565b6040516109129190613709565b60405180910390f35b34801561092757600080fd5b50610942600480360381019061093d9190613492565b611ac4565b60405161094f91906134ed565b60405180910390f35b34801561096457600080fd5b5061096d611ae2565b60405161097a91906132d4565b60405180910390f35b34801561098f57600080fd5b506109aa60048036038101906109a59190613508565b611ae8565b005b3480156109b857600080fd5b506109d360048036038101906109ce9190613696565b611ba8565b005b3480156109e157600080fd5b506109fc60048036038101906109f7919061386c565b611c41565b005b348015610a0a57600080fd5b50610a256004803603810190610a209190613508565b611d52565b604051610a3291906134ed565b60405180910390f35b348015610a4757600080fd5b50610a626004803603810190610a5d91906138b5565b611d72565b604051610a6f91906132d4565b60405180910390f35b348015610a8457600080fd5b50610a9f6004803603810190610a9a9190613561565b611df9565b005b348015610aad57600080fd5b50610ac86004803603810190610ac391906138f5565b611e92565b005b348015610ad657600080fd5b50610af16004803603810190610aec9190613508565b611f69565b005b348015610aff57600080fd5b50610b08612060565b604051610b17939291906136c3565b60405180910390f35b348015610b2c57600080fd5b50610b35612078565b604051610b429190613994565b60405180910390f35b600a5481565b606060038054610b60906139de565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8c906139de565b8015610bd95780601f10610bae57610100808354040283529160200191610bd9565b820191906000526020600020905b815481529060010190602001808311610bbc57829003601f168201915b5050505050905090565b610beb61209e565b73ffffffffffffffffffffffffffffffffffffffff16610c09611793565b73ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5690613a5b565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050808284610caa9190613aaa565b610cb49190613aaa565b601681905550505050565b6000610cd3610ccc61209e565b84846120a6565b6001905092915050565b6000600254905090565b610cef61209e565b73ffffffffffffffffffffffffffffffffffffffff16610d0d611793565b73ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a90613a5b565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610daf61209e565b73ffffffffffffffffffffffffffffffffffffffff16610dcd611793565b73ffffffffffffffffffffffffffffffffffffffff1614610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a90613a5b565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050808284610e6e9190613aaa565b610e789190613aaa565b601581905550505050565b610e8b61209e565b73ffffffffffffffffffffffffffffffffffffffff16610ea9611793565b73ffffffffffffffffffffffffffffffffffffffff1614610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef690613a5b565b60405180910390fd5b80600760176101000a81548160ff02191690831515021790555050565b60165481565b6000610f2f84848461226f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f7a61209e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190613b50565b60405180910390fd5b6110178561100661209e565b85846110129190613b70565b6120a6565b60019150509392505050565b61102b61209e565b73ffffffffffffffffffffffffffffffffffffffff16611049611793565b73ffffffffffffffffffffffffffffffffffffffff161461109f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109690613a5b565b60405180910390fd5b60004790506110ad84612938565b600081476110bb9190613b70565b905060008311156111335761113283856110d59190613aaa565b84836110e19190613ba4565b6110eb9190613c15565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7b90919063ffffffff16565b5b60008411156111a9576111a8838561114b9190613aaa565b85836111579190613ba4565b6111619190613c15565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7b90919063ffffffff16565b5b5050505050565b60085481565b60155481565b60006012905090565b60006112676111d261209e565b8484600160006111e061209e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112629190613aaa565b6120a6565b6001905092915050565b61127961209e565b73ffffffffffffffffffffffffffffffffffffffff16611297611793565b73ffffffffffffffffffffffffffffffffffffffff16146112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490613a5b565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b60095481565b61139461209e565b73ffffffffffffffffffffffffffffffffffffffff166113b2611793565b73ffffffffffffffffffffffffffffffffffffffff1614611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ff90613a5b565b60405180910390fd5b670de0b6b3a76400008161141c9190613ba4565b600b8190555050565b600760159054906101000a900460ff1681565b600760179054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61149b61209e565b73ffffffffffffffffffffffffffffffffffffffff166114b9611793565b73ffffffffffffffffffffffffffffffffffffffff161461150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690613a5b565b60405180910390fd5b6115196000612c6f565b565b600f8060000154908060010154908060020154905083565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61156161209e565b73ffffffffffffffffffffffffffffffffffffffff1661157f611793565b73ffffffffffffffffffffffffffffffffffffffff16146115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cc90613a5b565b60405180910390fd5b600760169054906101000a900460ff1615611625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161c90613c92565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055506001600760176101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b61169561209e565b73ffffffffffffffffffffffffffffffffffffffff166116b3611793565b73ffffffffffffffffffffffffffffffffffffffff1614611709576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170090613a5b565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61172d611793565b836040518363ffffffff1660e01b815260040161174b929190613cb2565b6020604051808303816000875af115801561176a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178e9190613cf0565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546117f2906139de565b80601f016020809104026020016040519081016040528092919081815260200182805461181e906139de565b801561186b5780601f106118405761010080835404028352916020019161186b565b820191906000526020600020905b81548152906001019060200180831161184e57829003601f168201915b5050505050905090565b61187d61209e565b73ffffffffffffffffffffffffffffffffffffffff1661189b611793565b73ffffffffffffffffffffffffffffffffffffffff16146118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e890613a5b565b60405180910390fd5b80600a8190555050565b61190361209e565b73ffffffffffffffffffffffffffffffffffffffff16611921611793565b73ffffffffffffffffffffffffffffffffffffffff1614611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e90613a5b565b60405180910390fd5b6119a781611983611793565b73ffffffffffffffffffffffffffffffffffffffff16612b7b90919063ffffffff16565b50565b600080600160006119b961209e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90613d8f565b60405180910390fd5b611a93611a8161209e565b858584611a8e9190613b70565b6120a6565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611ad8611ad161209e565b848461226f565b6001905092915050565b600c5481565b611af061209e565b73ffffffffffffffffffffffffffffffffffffffff16611b0e611793565b73ffffffffffffffffffffffffffffffffffffffff1614611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b90613a5b565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611bb061209e565b73ffffffffffffffffffffffffffffffffffffffff16611bce611793565b73ffffffffffffffffffffffffffffffffffffffff1614611c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1b90613a5b565b60405180910390fd5b670de0b6b3a764000081611c389190613ba4565b600c8190555050565b611c4961209e565b73ffffffffffffffffffffffffffffffffffffffff16611c67611793565b73ffffffffffffffffffffffffffffffffffffffff1614611cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb490613a5b565b60405180910390fd5b60005b8151811015611d4e57600160186000848481518110611ce257611ce1613daf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d4690613dde565b915050611cc0565b5050565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e0161209e565b73ffffffffffffffffffffffffffffffffffffffff16611e1f611793565b73ffffffffffffffffffffffffffffffffffffffff1614611e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6c90613a5b565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611e9a61209e565b73ffffffffffffffffffffffffffffffffffffffff16611eb8611793565b73ffffffffffffffffffffffffffffffffffffffff1614611f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0590613a5b565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611f7161209e565b73ffffffffffffffffffffffffffffffffffffffff16611f8f611793565b73ffffffffffffffffffffffffffffffffffffffff1614611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc90613a5b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204b90613e98565b60405180910390fd5b61205d81612c6f565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210c90613f2a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b90613fbc565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161226291906132d4565b60405180910390a3505050565b600081116122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a99061404e565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123565750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238c906140ba565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124395750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124525750600760149054906101000a900460ff16155b1561270e57600760169054906101000a900460ff166124a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249d90614126565b60405180910390fd5b436009546008546124b79190613aaa565b111561261a57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461256b576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612619576001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b5481111561265f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265690614192565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461270d57600c54816126c18461144b565b6126cb9190613aaa565b111561270c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270390614224565b60405180910390fd5b5b5b6000600760149054906101000a900460ff16806127745750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127c85750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127d6576000905061286a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361284c5760646016548361283b9190613ba4565b6128459190613c15565b9050612869565b60646015548361285c9190613ba4565b6128669190613c15565b90505b5b600760159054906101000a900460ff1680156128935750600760149054906101000a900460ff16155b80156128ed5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128f95750600081115b1561290757612906612d35565b5b61291d848483856129189190613b70565b612f39565b600081111561293257612931843083612f39565b5b50505050565b6000600267ffffffffffffffff81111561295557612954613729565b5b6040519080825280602002602001820160405280156129835781602001602082028036833780820191505090505b509050308160008151811061299b5761299a613daf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a669190614259565b81600181518110612a7a57612a79613daf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ae130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b4595949392919061437f565b600060405180830381600087803b158015612b5f57600080fd5b505af1158015612b73573d6000803e3d6000fd5b505050505050565b80471015612bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb590614425565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612be490614476565b60006040518083038185875af1925050503d8060008114612c21576040519150601f19603f3d011682016040523d82523d6000602084013e612c26565b606091505b5050905080612c6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c61906144fd565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612f37576001600760146101000a81548160ff0219169083151502179055506000612d6f3061144b565b9050600a548110612f1a5760006002601654612d8b9190613ba4565b905060008160126001015484612da19190613ba4565b612dab9190613c15565b905060008184612dbb9190613b70565b90506000479050612dcb82612938565b60008147612dd99190613b70565b9050600060126001015486612dee9190613b70565b82612df99190613c15565b9050600060126001015482612e0e9190613ba4565b90506000811115612e2457612e2386826131b6565b5b6000601260000154600284612e399190613ba4565b612e439190613ba4565b90506000811115612e9a57612e9981600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7b90919063ffffffff16565b5b6000601260020154600285612eaf9190613ba4565b612eb99190613ba4565b90506000811115612f1057612f0f81600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b7b90919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9f9061458f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300e90614621565b60405180910390fd5b6130228383836132b6565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156130a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161309f906146b3565b60405180910390fd5b81816130b49190613b70565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131449190613aaa565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131a891906132d4565b60405180910390a350505050565b6131e330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161326c969594939291906146d3565b60606040518083038185885af115801561328a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132af9190614749565b5050505050565b505050565b6000819050919050565b6132ce816132bb565b82525050565b60006020820190506132e960008301846132c5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561332957808201518184015260208101905061330e565b60008484015250505050565b6000601f19601f8301169050919050565b6000613351826132ef565b61335b81856132fa565b935061336b81856020860161330b565b61337481613335565b840191505092915050565b600060208201905081810360008301526133998184613346565b905092915050565b6000604051905090565b600080fd5b600080fd5b6133be816132bb565b81146133c957600080fd5b50565b6000813590506133db816133b5565b92915050565b6000806000606084860312156133fa576133f96133ab565b5b6000613408868287016133cc565b9350506020613419868287016133cc565b925050604061342a868287016133cc565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061345f82613434565b9050919050565b61346f81613454565b811461347a57600080fd5b50565b60008135905061348c81613466565b92915050565b600080604083850312156134a9576134a86133ab565b5b60006134b78582860161347d565b92505060206134c8858286016133cc565b9150509250929050565b60008115159050919050565b6134e7816134d2565b82525050565b600060208201905061350260008301846134de565b92915050565b60006020828403121561351e5761351d6133ab565b5b600061352c8482850161347d565b91505092915050565b61353e816134d2565b811461354957600080fd5b50565b60008135905061355b81613535565b92915050565b600060208284031215613577576135766133ab565b5b60006135858482850161354c565b91505092915050565b6000806000606084860312156135a7576135a66133ab565b5b60006135b58682870161347d565b93505060206135c68682870161347d565b92505060406135d7868287016133cc565b9150509250925092565b600060ff82169050919050565b6135f7816135e1565b82525050565b600060208201905061361260008301846135ee565b92915050565b600061362382613454565b9050919050565b61363381613618565b811461363e57600080fd5b50565b6000813590506136508161362a565b92915050565b6000806040838503121561366d5761366c6133ab565b5b600061367b85828601613641565b925050602061368c8582860161347d565b9150509250929050565b6000602082840312156136ac576136ab6133ab565b5b60006136ba848285016133cc565b91505092915050565b60006060820190506136d860008301866132c5565b6136e560208301856132c5565b6136f260408301846132c5565b949350505050565b61370381613454565b82525050565b600060208201905061371e60008301846136fa565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61376182613335565b810181811067ffffffffffffffff821117156137805761377f613729565b5b80604052505050565b60006137936133a1565b905061379f8282613758565b919050565b600067ffffffffffffffff8211156137bf576137be613729565b5b602082029050602081019050919050565b600080fd5b60006137e86137e3846137a4565b613789565b9050808382526020820190506020840283018581111561380b5761380a6137d0565b5b835b818110156138345780613820888261347d565b84526020840193505060208101905061380d565b5050509392505050565b600082601f83011261385357613852613724565b5b81356138638482602086016137d5565b91505092915050565b600060208284031215613882576138816133ab565b5b600082013567ffffffffffffffff8111156138a05761389f6133b0565b5b6138ac8482850161383e565b91505092915050565b600080604083850312156138cc576138cb6133ab565b5b60006138da8582860161347d565b92505060206138eb8582860161347d565b9150509250929050565b6000806040838503121561390c5761390b6133ab565b5b600061391a8582860161347d565b925050602061392b8582860161354c565b9150509250929050565b6000819050919050565b600061395a61395561395084613434565b613935565b613434565b9050919050565b600061396c8261393f565b9050919050565b600061397e82613961565b9050919050565b61398e81613973565b82525050565b60006020820190506139a96000830184613985565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139f657607f821691505b602082108103613a0957613a086139af565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a456020836132fa565b9150613a5082613a0f565b602082019050919050565b60006020820190508181036000830152613a7481613a38565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ab5826132bb565b9150613ac0836132bb565b9250828201905080821115613ad857613ad7613a7b565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613b3a6028836132fa565b9150613b4582613ade565b604082019050919050565b60006020820190508181036000830152613b6981613b2d565b9050919050565b6000613b7b826132bb565b9150613b86836132bb565b9250828203905081811115613b9e57613b9d613a7b565b5b92915050565b6000613baf826132bb565b9150613bba836132bb565b9250828202613bc8816132bb565b91508282048414831517613bdf57613bde613a7b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c20826132bb565b9150613c2b836132bb565b925082613c3b57613c3a613be6565b5b828204905092915050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000613c7c6016836132fa565b9150613c8782613c46565b602082019050919050565b60006020820190508181036000830152613cab81613c6f565b9050919050565b6000604082019050613cc760008301856136fa565b613cd460208301846132c5565b9392505050565b600081519050613cea81613535565b92915050565b600060208284031215613d0657613d056133ab565b5b6000613d1484828501613cdb565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d796025836132fa565b9150613d8482613d1d565b604082019050919050565b60006020820190508181036000830152613da881613d6c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613de9826132bb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e1b57613e1a613a7b565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e826026836132fa565b9150613e8d82613e26565b604082019050919050565b60006020820190508181036000830152613eb181613e75565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f146024836132fa565b9150613f1f82613eb8565b604082019050919050565b60006020820190508181036000830152613f4381613f07565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fa66022836132fa565b9150613fb182613f4a565b604082019050919050565b60006020820190508181036000830152613fd581613f99565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006140386029836132fa565b915061404382613fdc565b604082019050919050565b600060208201905081810360008301526140678161402b565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b60006140a46019836132fa565b91506140af8261406e565b602082019050919050565b600060208201905081810360008301526140d381614097565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b60006141106016836132fa565b915061411b826140da565b602082019050919050565b6000602082019050818103600083015261413f81614103565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b600061417c601d836132fa565b915061418782614146565b602082019050919050565b600060208201905081810360008301526141ab8161416f565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061420e6021836132fa565b9150614219826141b2565b604082019050919050565b6000602082019050818103600083015261423d81614201565b9050919050565b60008151905061425381613466565b92915050565b60006020828403121561426f5761426e6133ab565b5b600061427d84828501614244565b91505092915050565b6000819050919050565b60006142ab6142a66142a184614286565b613935565b6132bb565b9050919050565b6142bb81614290565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142f681613454565b82525050565b600061430883836142ed565b60208301905092915050565b6000602082019050919050565b600061432c826142c1565b61433681856142cc565b9350614341836142dd565b8060005b8381101561437257815161435988826142fc565b975061436483614314565b925050600181019050614345565b5085935050505092915050565b600060a08201905061439460008301886132c5565b6143a160208301876142b2565b81810360408301526143b38186614321565b90506143c260608301856136fa565b6143cf60808301846132c5565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061440f601d836132fa565b915061441a826143d9565b602082019050919050565b6000602082019050818103600083015261443e81614402565b9050919050565b600081905092915050565b50565b6000614460600083614445565b915061446b82614450565b600082019050919050565b600061448182614453565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006144e7603a836132fa565b91506144f28261448b565b604082019050919050565b60006020820190508181036000830152614516816144da565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006145796025836132fa565b91506145848261451d565b604082019050919050565b600060208201905081810360008301526145a88161456c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061460b6023836132fa565b9150614616826145af565b604082019050919050565b6000602082019050818103600083015261463a816145fe565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061469d6026836132fa565b91506146a882614641565b604082019050919050565b600060208201905081810360008301526146cc81614690565b9050919050565b600060c0820190506146e860008301896136fa565b6146f560208301886132c5565b61470260408301876142b2565b61470f60608301866142b2565b61471c60808301856136fa565b61472960a08301846132c5565b979650505050505050565b600081519050614743816133b5565b92915050565b600080600060608486031215614762576147616133ab565b5b600061477086828701614734565b935050602061478186828701614734565b925050604061479286828701614734565b915050925092509256fea2646970667358221220074096213109040dadf34b2292f604c43a0296f0c44a13a48d091ecd076a13df64736f6c63430008110033

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.