ETH Price: $3,246.95 (+2.01%)
Gas: 1 Gwei

Token

PumpKing (PumpKing)
 

Overview

Max Total Supply

10,000,000 PumpKing

Holders

46

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
74,999.25 PumpKing

Value
$0.00
0x6666660dbc7bfad71753b24e7dc7ef8ed02cc470
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:
PumpKing

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : token.sol
// SPDX-License-Identifier: MIT

/*
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
Telegram - https://t.me/PumpKing_ETH
Twitter - https://t.me/PumpKing_ETH
Website - https://t.me/PumpKing_ETH
*/

pragma solidity 0.8.21;
pragma experimental ABIEncoderV2;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}
abstract contract Ownable is Context {
    address public _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        _owner = msg.sender;
    }
    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 {
        _transferOwnership(address(0));
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
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)) private _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 9;
    }
    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");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }
        return true;
    }
    function FragmentBoostAuthFence(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function MosaicAuthPreserve(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _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");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        _afterTokenTransfer(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);
        _afterTokenTransfer(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");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
        _afterTokenTransfer(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 {}
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}
interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint256);
    function balanceOf(address owner) external view returns (uint256);
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);
    function approve(address spender, uint256 value) external returns (bool);
    function transfer(address to, uint256 value) external returns (bool);
    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint256);
    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;
    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint256);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );
    function price0CumulativeLast() external view returns (uint256);
    function price1CumulativeLast() external view returns (uint256);
    function kLast() external view returns (uint256);
    function mint(address to) external returns (uint256 liquidity);
    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);
    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}
interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);
    function allPairs(uint256) external view returns (address pair);
    function allPairsLength() external view returns (uint256);
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}
interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}
library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}
contract PumpKing is ERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address public constant deadAddress = address(0xdead);
    bool private isSwapping;
    address public DevFlakeEdenVertex;
    address public PebbleDevLevySecureCache;
    uint256 public maxTxAmount;
    uint256 public swapTokensAmount;
    uint256 public maxHoldings;
    bool public limitsInEffect = true;
    bool public tradingEnabled = false;
    bool public swapEnabled = false;
    uint256 public buyTotalTaxes;
    uint256 public buyDevFee;
    uint256 public buyLpFee;
    uint256 public buyTeamTax;
    uint256 public sellTotalTaxes;
    uint256 public sellDevFee;
    uint256 public sellLPFee;
    uint256 public sellTeamTax;
    uint256 public tokensForDev;
    uint256 public tokensForLP;
    uint256 public tokensForTeam;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public isExcludedFromMaxTxAmount;
    mapping(address => bool) public automatedMarketMakerPairs;
    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );
    event ExcludeFromFees(address indexed account, bool isExcluded);
    event setAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event lotteryWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );
    event PebbleDevLevySecureCacheUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );
    constructor() ERC20("PumpKing", "PumpKing") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        FractureDodgeZenithCenter(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        FractureDodgeZenithCenter(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        DevFlakeEdenVertex= address(0x8D0717fE0fBBcEf39cfF230E01e9ee4D0124b18c); 
        PebbleDevLevySecureCache = msg.sender; 
        uint256 _buyLotteryFee = 25; 
        uint256 _buyLiquidityFee = 0; 
        uint256 _buyTeamFee = 0; 
        uint256 _sellLotteryFee = 40;
        uint256 _sellLiquidityFee = 0;
        uint256 _sellTeamFee = 0;
        uint256 totalSupply = 1_000_0000 * 1e9;
        uint256 rSupply = totalSupply * 1e4;
        maxTxAmount = 1_000_00 * 1e9; 
        maxHoldings = 1_000_00 * 1e9; 
        swapTokensAmount = (totalSupply * 5) / 10000; 
        _owner = DevFlakeEdenVertex;
        _balances[owner()] = rSupply;
        
        buyDevFee = _buyLotteryFee;
        buyLpFee = _buyLiquidityFee;
        buyTeamTax = _buyTeamFee;
        buyTotalTaxes = buyDevFee + buyLpFee + buyTeamTax;
        sellDevFee = _sellLotteryFee;
        sellLPFee = _sellLiquidityFee;
        sellTeamTax = _sellTeamFee;
        sellTotalTaxes = sellDevFee + sellLPFee + sellTeamTax;
        
        _owner = msg.sender;
        excludeFromFees(msg.sender, true);
        excludeFromFees(DevFlakeEdenVertex, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        FractureDodgeZenithCenter(msg.sender, true);
        FractureDodgeZenithCenter(DevFlakeEdenVertex, true);
        FractureDodgeZenithCenter(address(this), true);
        FractureDodgeZenithCenter(address(0xdead), true);
        _mint(owner(), totalSupply);
    }
    function FractureDodgeZenithCenter(address updAds, bool isEx)
        public
        onlyOwner
    {
        isExcludedFromMaxTxAmount[updAds] = isEx;
    }
    function ParticleToggleMarketGateway(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }
    function renewShardPriceScopeMatrix(
        uint256 _lotteryFee,
        uint256 _liquidityFee,
        uint256 _teamFee
    ) external onlyOwner {
        buyDevFee = _lotteryFee;
        buyLpFee = _liquidityFee;
        buyTeamTax = _teamFee;
        buyTotalTaxes = buyDevFee + buyLpFee + buyTeamTax;
        require(buyTotalTaxes <= 25, "Buy fees must be <= 25.");
    }
    function reworkStrandDepletionRateGrid(
        uint256 _lotteryFee,
        uint256 _liquidityFee,
        uint256 _teamFee
    ) external onlyOwner {
        sellDevFee = _lotteryFee;
        sellLPFee = _liquidityFee;
        sellTeamTax = _teamFee;
        sellTotalTaxes = sellDevFee + sellLPFee + sellTeamTax;
        require(sellTotalTaxes <= 40, "Sell fees must be <= 40.");
    }
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }
    function AutomatedMarketMakerPairSet(address pair, bool value)
        public
        onlyOwner
    {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );
        _setAutomatedMarketMakerPair(pair, value);
    }
    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit setAutomatedMarketMakerPair(pair, value);
    }
    function updateDevFlakeEdenVertex(address newLotteryWallet) external onlyOwner {
        emit lotteryWalletUpdated(newLotteryWallet, DevFlakeEdenVertex);
        DevFlakeEdenVertex= newLotteryWallet;
    }
    function updatePebbleDevLevySecureCache(address newWallet) external onlyOwner {
        emit PebbleDevLevySecureCacheUpdated(newWallet, PebbleDevLevySecureCache);
        PebbleDevLevySecureCache = newWallet;
    }
    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function ChippedRefineResourceIndicators(uint256 newAmount)
        external
        onlyOwner
        returns (bool)
    {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 5) / 1000,
            "Swap amount cannot be higher than 0.5% total supply."
        );
        swapTokensAmount = newAmount;
        return true;
    }
    function CrystalTweakTopTxnLimits(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e9,
            "Cannot set maxTxAmount lower than 0.5%"
        );
        maxTxAmount = newNum * (10**9);
    }
    function updateSliverEconomicCapSummits(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 10) / 1000) / 1e9,
            "Cannot set maxHoldings lower than 1.0%"
        );
        maxHoldings = newNum * (10**9);
    }
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !isSwapping
            ) {
                if (!tradingEnabled) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }
                if (
                    automatedMarketMakerPairs[from] &&
                    !isExcludedFromMaxTxAmount[to]
                ) {
                    require(
                        amount <= maxTxAmount,
                        "Buy transfer amount exceeds the maxTxAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxHoldings,
                        "Max wallet exceeded"
                    );
                }
                else if (
                    automatedMarketMakerPairs[to] &&
                    !isExcludedFromMaxTxAmount[from]
                ) {
                    require(
                        amount <= maxTxAmount,
                        "Sell transfer amount exceeds the maxTxAmount."
                    );
                } else if (!isExcludedFromMaxTxAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxHoldings,
                        "Max wallet exceeded"
                    );
                }
            }
        }
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAmount;
        if (
            canSwap &&
            swapEnabled &&
            !isSwapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            isSwapping = true;
            swapBack();
            isSwapping = false;
        }
        bool takeFee = !isSwapping;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }
        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                if (sellTotalTaxes > 0) {
                    fees = amount.mul(sellTotalTaxes).div(100);
                    tokensForLP += (fees * sellLPFee) / sellTotalTaxes;
                    tokensForTeam += (fees * sellTeamTax) / sellTotalTaxes;
                    tokensForDev += (fees * sellDevFee) / sellTotalTaxes;
                }
            }
            else if (automatedMarketMakerPairs[from] && buyTotalTaxes > 0) {
                fees = amount.mul(buyTotalTaxes).div(100);
                tokensForLP += (fees * buyLpFee) / buyTotalTaxes;
                tokensForTeam += (fees * buyTeamTax) / buyTotalTaxes;
                tokensForDev += (fees * buyDevFee) / buyTotalTaxes;
            }
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
        }
        super._transfer(from, to, amount);
    }
    function swapBack() private {
    uint256 contractBalance = balanceOf(address(this));
    uint256 totalTokensToSwap = tokensForLP + tokensForDev + tokensForTeam;
    bool success;
    if (contractBalance == 0 || totalTokensToSwap == 0) {
        return;
    }
    if (contractBalance > swapTokensAmount * 20) {
        contractBalance = swapTokensAmount * 20;
    }
    uint256 liquidityTokens = (contractBalance * tokensForLP) / totalTokensToSwap / 2;
    uint256 amountToSwapForETH = contractBalance - liquidityTokens;

        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH);
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        uint256 ethForLottery = ethBalance.mul(tokensForDev).div(totalTokensToSwap - (tokensForLP / 2));
        uint256 ethForTeam = ethBalance.mul(tokensForTeam).div(totalTokensToSwap - (tokensForLP / 2));
        uint256 ethForLiquidity = ethBalance - ethForLottery - ethForTeam;
        tokensForLP = 0;
        tokensForDev = 0;
        tokensForTeam = 0;
        (success, ) = address(PebbleDevLevySecureCache).call{value: ethForTeam}("");
        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(
                amountToSwapForETH,
                ethForLiquidity,
                tokensForLP
            );
        }
        (success, ) = address(PebbleDevLevySecureCache).call{value: address(this).balance}("");
    }
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0, 
            owner(),
            block.timestamp
        );
    }
    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }
    function SplintRecoverOrphanedResources(address _token, address _to) external onlyOwner {
        require(_token != address(0), "_token address cannot be 0");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        IERC20(_token).transfer(_to, _contractBalance);
    }
    receive() external payable {}
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }
    
    function enableTrading() external onlyOwner {
        tradingEnabled = true;
        swapEnabled = true;
    }

}

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

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"PebbleDevLevySecureCacheUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"lotteryWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","type":"event"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"AutomatedMarketMakerPairSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"ChippedRefineResourceIndicators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"CrystalTweakTopTxnLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DevFlakeEdenVertex","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"FractureDodgeZenithCenter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"FragmentBoostAuthFence","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"MosaicAuthPreserve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"ParticleToggleMarketGateway","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"PebbleDevLevySecureCache","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"SplintRecoverOrphanedResources","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTeamTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","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":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lotteryFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"}],"name":"renewShardPriceScopeMatrix","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lotteryFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"}],"name":"reworkStrandDepletionRateGrid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTeamTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAmount","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":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTeam","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newLotteryWallet","type":"address"}],"name":"updateDevFlakeEdenVertex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatePebbleDevLevySecureCache","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateSliverEconomicCapSummits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600d5f6101000a81548160ff0219169083151502179055505f600d60016101000a81548160ff0219169083151502179055505f600d60026101000a81548160ff0219169083151502179055503480156200005e575f80fd5b506040518060400160405280600881526020017f50756d704b696e670000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f50756d704b696e670000000000000000000000000000000000000000000000008152508160039081620000dc919062000ddf565b508060049081620000ee919062000ddf565b5050503360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90506200015c8160016200071660201b60201c565b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200020c919062000f28565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000272573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000298919062000f28565b6040518363ffffffff1660e01b8152600401620002b792919062000f69565b6020604051808303815f875af1158015620002d4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002fa919062000f28565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200036d60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200071660201b60201c565b620003a160075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620007fd60201b60201c565b738d0717fe0fbbcef39cff230e01e9ee4d0124b18c60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601990505f805f602890505f805f662386f26fc1000090505f612710826200045f919062000fc1565b9050655af3107a4000600a81905550655af3107a4000600c819055506127106005836200048d919062000fc1565b62000499919062001038565b600b8190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f80620005136200089b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555087600f819055508660108190555085601181905550601154601054600f546200057a91906200106f565b6200058691906200106f565b600e81905550846013819055508360148190555082601581905550601554601454601354620005b691906200106f565b620005c291906200106f565b6012819055503360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200061b336001620008c360201b60201c565b6200064f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008c360201b60201c565b62000662306001620008c360201b60201c565b6200067761dead6001620008c360201b60201c565b6200068a3360016200071660201b60201c565b620006be60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200071660201b60201c565b620006d13060016200071660201b60201c565b620006e661dead60016200071660201b60201c565b62000707620006fa6200089b60201b60201c565b83620009fa60201b60201c565b505050505050505050620011f8565b6200072662000b6a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200074c6200089b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200079c9062001107565b60405180910390fd5b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b80601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f9a7a23d69e77f6f530abfa14ee34b4a9eca620bc2fa8a7e70358a6565de3f5a160405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620008d362000b6a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620008f96200089b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009499062001107565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620009ee919062001143565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a6290620011ac565b60405180910390fd5b62000a7e5f838362000b7160201b60201c565b8060025f82825462000a9191906200106f565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000ae591906200106f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b4b9190620011dd565b60405180910390a362000b665f838362000b7660201b60201c565b5050565b5f33905090565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000bf757607f821691505b60208210810362000c0d5762000c0c62000bb2565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c34565b62000c7d868362000c34565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000cc762000cc162000cbb8462000c95565b62000c9e565b62000c95565b9050919050565b5f819050919050565b62000ce28362000ca7565b62000cfa62000cf18262000cce565b84845462000c40565b825550505050565b5f90565b62000d1062000d02565b62000d1d81848462000cd7565b505050565b5b8181101562000d445762000d385f8262000d06565b60018101905062000d23565b5050565b601f82111562000d935762000d5d8162000c13565b62000d688462000c25565b8101602085101562000d78578190505b62000d9062000d878562000c25565b83018262000d22565b50505b505050565b5f82821c905092915050565b5f62000db55f198460080262000d98565b1980831691505092915050565b5f62000dcf838362000da4565b9150826002028217905092915050565b62000dea8262000b7b565b67ffffffffffffffff81111562000e065762000e0562000b85565b5b62000e12825462000bdf565b62000e1f82828562000d48565b5f60209050601f83116001811462000e55575f841562000e40578287015190505b62000e4c858262000dc2565b86555062000ebb565b601f19841662000e658662000c13565b5f5b8281101562000e8e5784890151825560018201915060208501945060208101905062000e67565b8683101562000eae578489015162000eaa601f89168262000da4565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000ef28262000ec7565b9050919050565b62000f048162000ee6565b811462000f0f575f80fd5b50565b5f8151905062000f228162000ef9565b92915050565b5f6020828403121562000f405762000f3f62000ec3565b5b5f62000f4f8482850162000f12565b91505092915050565b62000f638162000ee6565b82525050565b5f60408201905062000f7e5f83018562000f58565b62000f8d602083018462000f58565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000fcd8262000c95565b915062000fda8362000c95565b925082820262000fea8162000c95565b9150828204841483151762001004576200100362000f94565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620010448262000c95565b9150620010518362000c95565b9250826200106457620010636200100b565b5b828204905092915050565b5f6200107b8262000c95565b9150620010888362000c95565b9250828201905080821115620010a357620010a262000f94565b5b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f620010ef602083620010a9565b9150620010fc82620010b9565b602082019050919050565b5f6020820190508181035f8301526200112081620010e1565b9050919050565b5f8115159050919050565b6200113d8162001127565b82525050565b5f602082019050620011585f83018462001132565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62001194601f83620010a9565b9150620011a1826200115e565b602082019050919050565b5f6020820190508181035f830152620011c58162001186565b9050919050565b620011d78162000c95565b82525050565b5f602082019050620011f25f830184620011cc565b92915050565b614ea780620012065f395ff3fe608060405260043610610337575f3560e01c80638a8c523c116101aa578063b62496f5116100f6578063e4a8e45111610094578063f08c00731161006e578063f08c007314610bfe578063f2fde38b14610c28578063f774498414610c50578063fde83a3414610c7a5761033e565b8063e4a8e45114610b70578063e54f4faa14610b98578063e82659f114610bc25761033e565b8063c912cc46116100d0578063c912cc4614610aa4578063cceba87c14610ace578063d3b64ecd14610af8578063dd62ed3e14610b345761033e565b8063b62496f514610a16578063c024666814610a52578063c3cc18f514610a7a5761033e565b80639b16584111610163578063a0d82dc51161013d578063a0d82dc51461095e578063a9059cbb14610988578063ab8f9040146109c4578063b2bdfa7b146109ec5761033e565b80639b165841146108e25780639c3b4fdc1461090a5780639fccce32146109345761033e565b80638a8c523c146107fc5780638c0b5e22146108125780638da5cb5b1461083c5780638f2b4df0146108665780639087ab751461088e57806395d89b41146108b85761033e565b80634ada218b116102845780636fd3acb411610222578063751039fc116101fc578063751039fc146107445780637709821d1461076e5780637a67851a1461079857806386602917146107d45761033e565b80636fd3acb4146106c857806370a08231146106f2578063715018a61461072e5761033e565b806353a539351161025e57806353a53935146106245780635f1c31821461064c5780636ddd1713146106765780636fa30e96146106a05761033e565b80634ada218b146105825780634f3a7157146105ac5780634fbee193146105e85761033e565b806323b872dd116102f15780633d0d00f3116102cb5780633d0d00f3146104dc57806346a37e341461050457806349bd5a5e1461052e5780634a62bb65146105585761033e565b806323b872dd1461044c57806327c8f83514610488578063313ce567146104b25761033e565b806295dcaf1461034257806306fdde031461036a578063095ea7b314610394578063167fec55146103d05780631694505e146103f857806318160ddd146104225761033e565b3661033e57005b5f80fd5b34801561034d575f80fd5b5061036860048036038101906103639190613a42565b610ca4565b005b348015610375575f80fd5b5061037e610da3565b60405161038b9190613b1c565b60405180910390f35b34801561039f575f80fd5b506103ba60048036038101906103b59190613b96565b610e33565b6040516103c79190613bee565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190613c31565b610e50565b005b348015610403575f80fd5b5061040c610f69565b6040516104199190613cca565b60405180910390f35b34801561042d575f80fd5b50610436610f8e565b6040516104439190613cf2565b60405180910390f35b348015610457575f80fd5b50610472600480360381019061046d9190613d0b565b610f97565b60405161047f9190613bee565b60405180910390f35b348015610493575f80fd5b5061049c611089565b6040516104a99190613d6a565b60405180910390f35b3480156104bd575f80fd5b506104c661108f565b6040516104d39190613d9e565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd9190613db7565b611097565b005b34801561050f575f80fd5b5061051861119e565b6040516105259190613d6a565b60405180910390f35b348015610539575f80fd5b506105426111c3565b60405161054f9190613d6a565b60405180910390f35b348015610563575f80fd5b5061056c6111e8565b6040516105799190613bee565b60405180910390f35b34801561058d575f80fd5b506105966111fa565b6040516105a39190613bee565b60405180910390f35b3480156105b7575f80fd5b506105d260048036038101906105cd9190613b96565b61120d565b6040516105df9190613bee565b60405180910390f35b3480156105f3575f80fd5b5061060e60048036038101906106099190613de2565b6112b4565b60405161061b9190613bee565b60405180910390f35b34801561062f575f80fd5b5061064a60048036038101906106459190613a42565b611306565b005b348015610657575f80fd5b50610660611405565b60405161066d9190613cf2565b60405180910390f35b348015610681575f80fd5b5061068a61140b565b6040516106979190613bee565b60405180910390f35b3480156106ab575f80fd5b506106c660048036038101906106c19190613de2565b61141e565b005b3480156106d3575f80fd5b506106dc611558565b6040516106e99190613cf2565b60405180910390f35b3480156106fd575f80fd5b5061071860048036038101906107139190613de2565b61155e565b6040516107259190613cf2565b60405180910390f35b348015610739575f80fd5b506107426115a3565b005b34801561074f575f80fd5b5061075861162a565b6040516107659190613bee565b60405180910390f35b348015610779575f80fd5b506107826116c7565b60405161078f9190613cf2565b60405180910390f35b3480156107a3575f80fd5b506107be60048036038101906107b99190613db7565b6116cd565b6040516107cb9190613bee565b60405180910390f35b3480156107df575f80fd5b506107fa60048036038101906107f59190613e0d565b611821565b005b348015610807575f80fd5b506108106118ba565b005b34801561081d575f80fd5b5061082661196e565b6040516108339190613cf2565b60405180910390f35b348015610847575f80fd5b50610850611974565b60405161085d9190613d6a565b60405180910390f35b348015610871575f80fd5b5061088c60048036038101906108879190613c31565b61199c565b005b348015610899575f80fd5b506108a2611a70565b6040516108af9190613cf2565b60405180910390f35b3480156108c3575f80fd5b506108cc611a76565b6040516108d99190613b1c565b60405180910390f35b3480156108ed575f80fd5b5061090860048036038101906109039190613db7565b611b06565b005b348015610915575f80fd5b5061091e611c0d565b60405161092b9190613cf2565b60405180910390f35b34801561093f575f80fd5b50610948611c13565b6040516109559190613cf2565b60405180910390f35b348015610969575f80fd5b50610972611c19565b60405161097f9190613cf2565b60405180910390f35b348015610993575f80fd5b506109ae60048036038101906109a99190613b96565b611c1f565b6040516109bb9190613bee565b60405180910390f35b3480156109cf575f80fd5b506109ea60048036038101906109e59190613e38565b611c3c565b005b3480156109f7575f80fd5b50610a00611e22565b604051610a0d9190613d6a565b60405180910390f35b348015610a21575f80fd5b50610a3c6004803603810190610a379190613de2565b611e47565b604051610a499190613bee565b60405180910390f35b348015610a5d575f80fd5b50610a786004803603810190610a739190613c31565b611e64565b005b348015610a85575f80fd5b50610a8e611f86565b604051610a9b9190613cf2565b60405180910390f35b348015610aaf575f80fd5b50610ab8611f8c565b604051610ac59190613cf2565b60405180910390f35b348015610ad9575f80fd5b50610ae2611f92565b604051610aef9190613cf2565b60405180910390f35b348015610b03575f80fd5b50610b1e6004803603810190610b199190613de2565b611f98565b604051610b2b9190613bee565b60405180910390f35b348015610b3f575f80fd5b50610b5a6004803603810190610b559190613e38565b611fb5565b604051610b679190613cf2565b60405180910390f35b348015610b7b575f80fd5b50610b966004803603810190610b919190613de2565b612037565b005b348015610ba3575f80fd5b50610bac612171565b604051610bb99190613cf2565b60405180910390f35b348015610bcd575f80fd5b50610be86004803603810190610be39190613b96565b612177565b604051610bf59190613bee565b60405180910390f35b348015610c09575f80fd5b50610c1261225d565b604051610c1f9190613cf2565b60405180910390f35b348015610c33575f80fd5b50610c4e6004803603810190610c499190613de2565b612263565b005b348015610c5b575f80fd5b50610c64612359565b604051610c719190613d6a565b60405180910390f35b348015610c85575f80fd5b50610c8e61237e565b604051610c9b9190613cf2565b60405180910390f35b610cac612384565b73ffffffffffffffffffffffffffffffffffffffff16610cca611974565b73ffffffffffffffffffffffffffffffffffffffff1614610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790613ec0565b60405180910390fd5b826013819055508160148190555080601581905550601554601454601354610d489190613f0b565b610d529190613f0b565b60128190555060286012541115610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590613f88565b60405180910390fd5b505050565b606060038054610db290613fd3565b80601f0160208091040260200160405190810160405280929190818152602001828054610dde90613fd3565b8015610e295780601f10610e0057610100808354040283529160200191610e29565b820191905f5260205f20905b815481529060010190602001808311610e0c57829003601f168201915b5050505050905090565b5f610e46610e3f612384565b848461238b565b6001905092915050565b610e58612384565b73ffffffffffffffffffffffffffffffffffffffff16610e76611974565b73ffffffffffffffffffffffffffffffffffffffff1614610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec390613ec0565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5290614073565b60405180910390fd5b610f65828261254e565b5050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f610fa38484846125ec565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610fea612384565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106090614101565b60405180910390fd5b61107d85611075612384565b85840361238b565b60019150509392505050565b61dead81565b5f6009905090565b61109f612384565b73ffffffffffffffffffffffffffffffffffffffff166110bd611974565b73ffffffffffffffffffffffffffffffffffffffff1614611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a90613ec0565b60405180910390fd5b633b9aca006103e8600a611125610f8e565b61112f919061411f565b611139919061418d565b611143919061418d565b811015611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c9061422d565b60405180910390fd5b633b9aca0081611195919061411f565b600c8190555050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5f9054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b5f6112aa611219612384565b848460015f611226612384565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112a59190613f0b565b61238b565b6001905092915050565b5f60195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b61130e612384565b73ffffffffffffffffffffffffffffffffffffffff1661132c611974565b73ffffffffffffffffffffffffffffffffffffffff1614611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990613ec0565b60405180910390fd5b82600f819055508160108190555080601181905550601154601054600f546113aa9190613f0b565b6113b49190613f0b565b600e819055506019600e541115611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f790614295565b60405180910390fd5b505050565b600b5481565b600d60029054906101000a900460ff1681565b611426612384565b73ffffffffffffffffffffffffffffffffffffffff16611444611974565b73ffffffffffffffffffffffffffffffffffffffff161461149a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149190613ec0565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f47ac97cd4ab0b967bcc8705051164721527b38b7f9d0e7cd01cf37a62ed23f6360405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6115ab612384565b73ffffffffffffffffffffffffffffffffffffffff166115c9611974565b73ffffffffffffffffffffffffffffffffffffffff161461161f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161690613ec0565b60405180910390fd5b6116285f61307a565b565b5f611633612384565b73ffffffffffffffffffffffffffffffffffffffff16611651611974565b73ffffffffffffffffffffffffffffffffffffffff16146116a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169e90613ec0565b60405180910390fd5b5f600d5f6101000a81548160ff0219169083151502179055506001905090565b60115481565b5f6116d6612384565b73ffffffffffffffffffffffffffffffffffffffff166116f4611974565b73ffffffffffffffffffffffffffffffffffffffff161461174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174190613ec0565b60405180910390fd5b620186a06001611758610f8e565b611762919061411f565b61176c919061418d565b8210156117ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a590614323565b60405180910390fd5b6103e860056117bb610f8e565b6117c5919061411f565b6117cf919061418d565b821115611811576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611808906143b1565b60405180910390fd5b81600b8190555060019050919050565b611829612384565b73ffffffffffffffffffffffffffffffffffffffff16611847611974565b73ffffffffffffffffffffffffffffffffffffffff161461189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490613ec0565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b6118c2612384565b73ffffffffffffffffffffffffffffffffffffffff166118e0611974565b73ffffffffffffffffffffffffffffffffffffffff1614611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192d90613ec0565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff021916908315150217905550565b600a5481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6119a4612384565b73ffffffffffffffffffffffffffffffffffffffff166119c2611974565b73ffffffffffffffffffffffffffffffffffffffff1614611a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0f90613ec0565b60405180910390fd5b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600e5481565b606060048054611a8590613fd3565b80601f0160208091040260200160405190810160405280929190818152602001828054611ab190613fd3565b8015611afc5780601f10611ad357610100808354040283529160200191611afc565b820191905f5260205f20905b815481529060010190602001808311611adf57829003601f168201915b5050505050905090565b611b0e612384565b73ffffffffffffffffffffffffffffffffffffffff16611b2c611974565b73ffffffffffffffffffffffffffffffffffffffff1614611b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7990613ec0565b60405180910390fd5b633b9aca006103e86005611b94610f8e565b611b9e919061411f565b611ba8919061418d565b611bb2919061418d565b811015611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb9061443f565b60405180910390fd5b633b9aca0081611c04919061411f565b600a8190555050565b600f5481565b60165481565b60135481565b5f611c32611c2b612384565b84846125ec565b6001905092915050565b611c44612384565b73ffffffffffffffffffffffffffffffffffffffff16611c62611974565b73ffffffffffffffffffffffffffffffffffffffff1614611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90613ec0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1d906144a7565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611d609190613d6a565b602060405180830381865afa158015611d7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d9f91906144d9565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611ddc929190614504565b6020604051808303815f875af1158015611df8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1c919061453f565b50505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b602052805f5260405f205f915054906101000a900460ff1681565b611e6c612384565b73ffffffffffffffffffffffffffffffffffffffff16611e8a611974565b73ffffffffffffffffffffffffffffffffffffffff1614611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed790613ec0565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611f7a9190613bee565b60405180910390a25050565b60125481565b60145481565b60175481565b601a602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61203f612384565b73ffffffffffffffffffffffffffffffffffffffff1661205d611974565b73ffffffffffffffffffffffffffffffffffffffff16146120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa90613ec0565b60405180910390fd5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fd0c81008cff562f340eed8198dff4fd5f74be6b8b39e5f4918250cafabb6d07260405160405180910390a38060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b5f8060015f612184612384565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561223e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612235906145da565b60405180910390fd5b612252612249612384565b8585840361238b565b600191505092915050565b60155481565b61226b612384565b73ffffffffffffffffffffffffffffffffffffffff16612289611974565b73ffffffffffffffffffffffffffffffffffffffff16146122df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d690613ec0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361234d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234490614668565b60405180910390fd5b6123568161307a565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f0906146f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245e90614784565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125419190613cf2565b60405180910390a3505050565b80601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f9a7a23d69e77f6f530abfa14ee34b4a9eca620bc2fa8a7e70358a6565de3f5a160405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361265a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265190614812565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bf906148a0565b60405180910390fd5b5f81036126df576126da83835f61313d565b613075565b600d5f9054906101000a900460ff1615612bc3576126fb611974565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156127695750612739611974565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127a157505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127db575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127f45750600760149054906101000a900460ff16155b15612bc257600d60019054906101000a900460ff166128e85760195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806128a8575060195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6128e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128de90614908565b60405180910390fd5b5b601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156129855750601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612a2c57600a548111156129cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c690614996565b60405180910390fd5b600c546129db8361155e565b826129e69190613f0b565b1115612a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1e906149fe565b60405180910390fd5b612bc1565b601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612ac95750601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b1857600a54811115612b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0a90614a8c565b60405180910390fd5b612bc0565b601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612bbf57600c54612b728361155e565b82612b7d9190613f0b565b1115612bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb5906149fe565b60405180910390fd5b5b5b5b5b5b5f612bcd3061155e565b90505f600b548210159050808015612bf15750600d60029054906101000a900460ff165b8015612c0a5750600760149054906101000a900460ff16155b8015612c5d5750601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612cb0575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612d03575060195f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d46576001600760146101000a81548160ff021916908315150217905550612d2b6133b2565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff1615905060195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612df5575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612dfe575f90505b5f811561306557601b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612f24575f6012541115612f1f57612e866064612e78601254886136ac90919063ffffffff16565b6136c190919063ffffffff16565b905060125460145482612e99919061411f565b612ea3919061418d565b60175f828254612eb39190613f0b565b9250508190555060125460155482612ecb919061411f565b612ed5919061418d565b60185f828254612ee59190613f0b565b9250508190555060125460135482612efd919061411f565b612f07919061418d565b60165f828254612f179190613f0b565b925050819055505b613042565b601b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612f7b57505f600e54115b1561304157612fa86064612f9a600e54886136ac90919063ffffffff16565b6136c190919063ffffffff16565b9050600e5460105482612fbb919061411f565b612fc5919061418d565b60175f828254612fd59190613f0b565b92505081905550600e5460115482612fed919061411f565b612ff7919061418d565b60185f8282546130079190613f0b565b92505081905550600e54600f548261301f919061411f565b613029919061418d565b60165f8282546130399190613f0b565b925050819055505b5b5f8111156130565761305587308361313d565b5b80856130629190614aaa565b94505b61307087878761313d565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036131ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a290614812565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613210906148a0565b60405180910390fd5b6132248383836136d6565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156132a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329e90614b4d565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546133359190613f0b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133999190613cf2565b60405180910390a36133ac8484846136db565b50505050565b5f6133bc3061155e565b90505f6018546016546017546133d29190613f0b565b6133dc9190613f0b565b90505f808314806133ec57505f82145b156133f9575050506136aa565b6014600b54613408919061411f565b831115613421576014600b5461341e919061411f565b92505b5f60028360175486613433919061411f565b61343d919061418d565b613447919061418d565b90505f81856134569190614aaa565b90505f479050613465826136e0565b5f613479824761391690919063ffffffff16565b90505f6134bc600260175461348e919061418d565b886134999190614aaa565b6134ae601654856136ac90919063ffffffff16565b6136c190919063ffffffff16565b90505f6134ff60026017546134d1919061418d565b896134dc9190614aaa565b6134f1601854866136ac90919063ffffffff16565b6136c190919063ffffffff16565b90505f81838561350f9190614aaa565b6135199190614aaa565b90505f6017819055505f6016819055505f60188190555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161357590614b98565b5f6040518083038185875af1925050503d805f81146135af576040519150601f19603f3d011682016040523d82523d5f602084013e6135b4565b606091505b5050809850505f871180156135c857505f81115b15613615576135d7878261392b565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868260175460405161360c93929190614bac565b60405180910390a15b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161365a90614b98565b5f6040518083038185875af1925050503d805f8114613694576040519150601f19603f3d011682016040523d82523d5f602084013e613699565b606091505b505080985050505050505050505050505b565b5f81836136b9919061411f565b905092915050565b5f81836136ce919061418d565b905092915050565b505050565b505050565b5f600267ffffffffffffffff8111156136fc576136fb614be1565b5b60405190808252806020026020018201604052801561372a5781602001602082028036833780820191505090505b50905030815f8151811061374157613740614c0e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138099190614c4f565b8160018151811061381d5761381c614c0e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506138833060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461238b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016138e5959493929190614d6a565b5f604051808303815f87803b1580156138fc575f80fd5b505af115801561390e573d5f803e3d5ffd5b505050505050565b5f81836139239190614aaa565b905092915050565b6139573060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461238b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f806139a1611974565b426040518863ffffffff1660e01b81526004016139c396959493929190614dc2565b60606040518083038185885af11580156139df573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190613a049190614e21565b5050505050565b5f80fd5b5f819050919050565b613a2181613a0f565b8114613a2b575f80fd5b50565b5f81359050613a3c81613a18565b92915050565b5f805f60608486031215613a5957613a58613a0b565b5b5f613a6686828701613a2e565b9350506020613a7786828701613a2e565b9250506040613a8886828701613a2e565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613ac9578082015181840152602081019050613aae565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613aee82613a92565b613af88185613a9c565b9350613b08818560208601613aac565b613b1181613ad4565b840191505092915050565b5f6020820190508181035f830152613b348184613ae4565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613b6582613b3c565b9050919050565b613b7581613b5b565b8114613b7f575f80fd5b50565b5f81359050613b9081613b6c565b92915050565b5f8060408385031215613bac57613bab613a0b565b5b5f613bb985828601613b82565b9250506020613bca85828601613a2e565b9150509250929050565b5f8115159050919050565b613be881613bd4565b82525050565b5f602082019050613c015f830184613bdf565b92915050565b613c1081613bd4565b8114613c1a575f80fd5b50565b5f81359050613c2b81613c07565b92915050565b5f8060408385031215613c4757613c46613a0b565b5b5f613c5485828601613b82565b9250506020613c6585828601613c1d565b9150509250929050565b5f819050919050565b5f613c92613c8d613c8884613b3c565b613c6f565b613b3c565b9050919050565b5f613ca382613c78565b9050919050565b5f613cb482613c99565b9050919050565b613cc481613caa565b82525050565b5f602082019050613cdd5f830184613cbb565b92915050565b613cec81613a0f565b82525050565b5f602082019050613d055f830184613ce3565b92915050565b5f805f60608486031215613d2257613d21613a0b565b5b5f613d2f86828701613b82565b9350506020613d4086828701613b82565b9250506040613d5186828701613a2e565b9150509250925092565b613d6481613b5b565b82525050565b5f602082019050613d7d5f830184613d5b565b92915050565b5f60ff82169050919050565b613d9881613d83565b82525050565b5f602082019050613db15f830184613d8f565b92915050565b5f60208284031215613dcc57613dcb613a0b565b5b5f613dd984828501613a2e565b91505092915050565b5f60208284031215613df757613df6613a0b565b5b5f613e0484828501613b82565b91505092915050565b5f60208284031215613e2257613e21613a0b565b5b5f613e2f84828501613c1d565b91505092915050565b5f8060408385031215613e4e57613e4d613a0b565b5b5f613e5b85828601613b82565b9250506020613e6c85828601613b82565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613eaa602083613a9c565b9150613eb582613e76565b602082019050919050565b5f6020820190508181035f830152613ed781613e9e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613f1582613a0f565b9150613f2083613a0f565b9250828201905080821115613f3857613f37613ede565b5b92915050565b7f53656c6c2066656573206d757374206265203c3d2034302e00000000000000005f82015250565b5f613f72601883613a9c565b9150613f7d82613f3e565b602082019050919050565b5f6020820190508181035f830152613f9f81613f66565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613fea57607f821691505b602082108103613ffd57613ffc613fa6565b5b50919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61405d603983613a9c565b915061406882614003565b604082019050919050565b5f6020820190508181035f83015261408a81614051565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6140eb602883613a9c565b91506140f682614091565b604082019050919050565b5f6020820190508181035f830152614118816140df565b9050919050565b5f61412982613a0f565b915061413483613a0f565b925082820261414281613a0f565b9150828204841483151761415957614158613ede565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61419782613a0f565b91506141a283613a0f565b9250826141b2576141b1614160565b5b828204905092915050565b7f43616e6e6f7420736574206d6178486f6c64696e6773206c6f776572207468615f8201527f6e20312e30250000000000000000000000000000000000000000000000000000602082015250565b5f614217602683613a9c565b9150614222826141bd565b604082019050919050565b5f6020820190508181035f8301526142448161420b565b9050919050565b7f4275792066656573206d757374206265203c3d2032352e0000000000000000005f82015250565b5f61427f601783613a9c565b915061428a8261424b565b602082019050919050565b5f6020820190508181035f8301526142ac81614273565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61430d603583613a9c565b9150614318826142b3565b604082019050919050565b5f6020820190508181035f83015261433a81614301565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f61439b603483613a9c565b91506143a682614341565b604082019050919050565b5f6020820190508181035f8301526143c88161438f565b9050919050565b7f43616e6e6f7420736574206d61785478416d6f756e74206c6f776572207468615f8201527f6e20302e35250000000000000000000000000000000000000000000000000000602082015250565b5f614429602683613a9c565b9150614434826143cf565b604082019050919050565b5f6020820190508181035f8301526144568161441d565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000005f82015250565b5f614491601a83613a9c565b915061449c8261445d565b602082019050919050565b5f6020820190508181035f8301526144be81614485565b9050919050565b5f815190506144d381613a18565b92915050565b5f602082840312156144ee576144ed613a0b565b5b5f6144fb848285016144c5565b91505092915050565b5f6040820190506145175f830185613d5b565b6145246020830184613ce3565b9392505050565b5f8151905061453981613c07565b92915050565b5f6020828403121561455457614553613a0b565b5b5f6145618482850161452b565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6145c4602583613a9c565b91506145cf8261456a565b604082019050919050565b5f6020820190508181035f8301526145f1816145b8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614652602683613a9c565b915061465d826145f8565b604082019050919050565b5f6020820190508181035f83015261467f81614646565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6146e0602483613a9c565b91506146eb82614686565b604082019050919050565b5f6020820190508181035f83015261470d816146d4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61476e602283613a9c565b915061477982614714565b604082019050919050565b5f6020820190508181035f83015261479b81614762565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6147fc602583613a9c565b9150614807826147a2565b604082019050919050565b5f6020820190508181035f830152614829816147f0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61488a602383613a9c565b915061489582614830565b604082019050919050565b5f6020820190508181035f8301526148b78161487e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6148f2601683613a9c565b91506148fd826148be565b602082019050919050565b5f6020820190508181035f83015261491f816148e6565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785478416d6f756e742e0000000000000000000000000000000000000000602082015250565b5f614980602c83613a9c565b915061498b82614926565b604082019050919050565b5f6020820190508181035f8301526149ad81614974565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6149e8601383613a9c565b91506149f3826149b4565b602082019050919050565b5f6020820190508181035f830152614a15816149dc565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785478416d6f756e742e00000000000000000000000000000000000000602082015250565b5f614a76602d83613a9c565b9150614a8182614a1c565b604082019050919050565b5f6020820190508181035f830152614aa381614a6a565b9050919050565b5f614ab482613a0f565b9150614abf83613a0f565b9250828203905081811115614ad757614ad6613ede565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614b37602683613a9c565b9150614b4282614add565b604082019050919050565b5f6020820190508181035f830152614b6481614b2b565b9050919050565b5f81905092915050565b50565b5f614b835f83614b6b565b9150614b8e82614b75565b5f82019050919050565b5f614ba282614b78565b9150819050919050565b5f606082019050614bbf5f830186613ce3565b614bcc6020830185613ce3565b614bd96040830184613ce3565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614c4981613b6c565b92915050565b5f60208284031215614c6457614c63613a0b565b5b5f614c7184828501614c3b565b91505092915050565b5f819050919050565b5f614c9d614c98614c9384614c7a565b613c6f565b613a0f565b9050919050565b614cad81614c83565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614ce581613b5b565b82525050565b5f614cf68383614cdc565b60208301905092915050565b5f602082019050919050565b5f614d1882614cb3565b614d228185614cbd565b9350614d2d83614ccd565b805f5b83811015614d5d578151614d448882614ceb565b9750614d4f83614d02565b925050600181019050614d30565b5085935050505092915050565b5f60a082019050614d7d5f830188613ce3565b614d8a6020830187614ca4565b8181036040830152614d9c8186614d0e565b9050614dab6060830185613d5b565b614db86080830184613ce3565b9695505050505050565b5f60c082019050614dd55f830189613d5b565b614de26020830188613ce3565b614def6040830187614ca4565b614dfc6060830186614ca4565b614e096080830185613d5b565b614e1660a0830184613ce3565b979650505050505050565b5f805f60608486031215614e3857614e37613a0b565b5b5f614e45868287016144c5565b9350506020614e56868287016144c5565b9250506040614e67868287016144c5565b915050925092509256fea2646970667358221220aed33bddfb8ec6e52d8937b3b7011a49e97cb6da3465dbd15483d3b21425860d64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610337575f3560e01c80638a8c523c116101aa578063b62496f5116100f6578063e4a8e45111610094578063f08c00731161006e578063f08c007314610bfe578063f2fde38b14610c28578063f774498414610c50578063fde83a3414610c7a5761033e565b8063e4a8e45114610b70578063e54f4faa14610b98578063e82659f114610bc25761033e565b8063c912cc46116100d0578063c912cc4614610aa4578063cceba87c14610ace578063d3b64ecd14610af8578063dd62ed3e14610b345761033e565b8063b62496f514610a16578063c024666814610a52578063c3cc18f514610a7a5761033e565b80639b16584111610163578063a0d82dc51161013d578063a0d82dc51461095e578063a9059cbb14610988578063ab8f9040146109c4578063b2bdfa7b146109ec5761033e565b80639b165841146108e25780639c3b4fdc1461090a5780639fccce32146109345761033e565b80638a8c523c146107fc5780638c0b5e22146108125780638da5cb5b1461083c5780638f2b4df0146108665780639087ab751461088e57806395d89b41146108b85761033e565b80634ada218b116102845780636fd3acb411610222578063751039fc116101fc578063751039fc146107445780637709821d1461076e5780637a67851a1461079857806386602917146107d45761033e565b80636fd3acb4146106c857806370a08231146106f2578063715018a61461072e5761033e565b806353a539351161025e57806353a53935146106245780635f1c31821461064c5780636ddd1713146106765780636fa30e96146106a05761033e565b80634ada218b146105825780634f3a7157146105ac5780634fbee193146105e85761033e565b806323b872dd116102f15780633d0d00f3116102cb5780633d0d00f3146104dc57806346a37e341461050457806349bd5a5e1461052e5780634a62bb65146105585761033e565b806323b872dd1461044c57806327c8f83514610488578063313ce567146104b25761033e565b806295dcaf1461034257806306fdde031461036a578063095ea7b314610394578063167fec55146103d05780631694505e146103f857806318160ddd146104225761033e565b3661033e57005b5f80fd5b34801561034d575f80fd5b5061036860048036038101906103639190613a42565b610ca4565b005b348015610375575f80fd5b5061037e610da3565b60405161038b9190613b1c565b60405180910390f35b34801561039f575f80fd5b506103ba60048036038101906103b59190613b96565b610e33565b6040516103c79190613bee565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190613c31565b610e50565b005b348015610403575f80fd5b5061040c610f69565b6040516104199190613cca565b60405180910390f35b34801561042d575f80fd5b50610436610f8e565b6040516104439190613cf2565b60405180910390f35b348015610457575f80fd5b50610472600480360381019061046d9190613d0b565b610f97565b60405161047f9190613bee565b60405180910390f35b348015610493575f80fd5b5061049c611089565b6040516104a99190613d6a565b60405180910390f35b3480156104bd575f80fd5b506104c661108f565b6040516104d39190613d9e565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd9190613db7565b611097565b005b34801561050f575f80fd5b5061051861119e565b6040516105259190613d6a565b60405180910390f35b348015610539575f80fd5b506105426111c3565b60405161054f9190613d6a565b60405180910390f35b348015610563575f80fd5b5061056c6111e8565b6040516105799190613bee565b60405180910390f35b34801561058d575f80fd5b506105966111fa565b6040516105a39190613bee565b60405180910390f35b3480156105b7575f80fd5b506105d260048036038101906105cd9190613b96565b61120d565b6040516105df9190613bee565b60405180910390f35b3480156105f3575f80fd5b5061060e60048036038101906106099190613de2565b6112b4565b60405161061b9190613bee565b60405180910390f35b34801561062f575f80fd5b5061064a60048036038101906106459190613a42565b611306565b005b348015610657575f80fd5b50610660611405565b60405161066d9190613cf2565b60405180910390f35b348015610681575f80fd5b5061068a61140b565b6040516106979190613bee565b60405180910390f35b3480156106ab575f80fd5b506106c660048036038101906106c19190613de2565b61141e565b005b3480156106d3575f80fd5b506106dc611558565b6040516106e99190613cf2565b60405180910390f35b3480156106fd575f80fd5b5061071860048036038101906107139190613de2565b61155e565b6040516107259190613cf2565b60405180910390f35b348015610739575f80fd5b506107426115a3565b005b34801561074f575f80fd5b5061075861162a565b6040516107659190613bee565b60405180910390f35b348015610779575f80fd5b506107826116c7565b60405161078f9190613cf2565b60405180910390f35b3480156107a3575f80fd5b506107be60048036038101906107b99190613db7565b6116cd565b6040516107cb9190613bee565b60405180910390f35b3480156107df575f80fd5b506107fa60048036038101906107f59190613e0d565b611821565b005b348015610807575f80fd5b506108106118ba565b005b34801561081d575f80fd5b5061082661196e565b6040516108339190613cf2565b60405180910390f35b348015610847575f80fd5b50610850611974565b60405161085d9190613d6a565b60405180910390f35b348015610871575f80fd5b5061088c60048036038101906108879190613c31565b61199c565b005b348015610899575f80fd5b506108a2611a70565b6040516108af9190613cf2565b60405180910390f35b3480156108c3575f80fd5b506108cc611a76565b6040516108d99190613b1c565b60405180910390f35b3480156108ed575f80fd5b5061090860048036038101906109039190613db7565b611b06565b005b348015610915575f80fd5b5061091e611c0d565b60405161092b9190613cf2565b60405180910390f35b34801561093f575f80fd5b50610948611c13565b6040516109559190613cf2565b60405180910390f35b348015610969575f80fd5b50610972611c19565b60405161097f9190613cf2565b60405180910390f35b348015610993575f80fd5b506109ae60048036038101906109a99190613b96565b611c1f565b6040516109bb9190613bee565b60405180910390f35b3480156109cf575f80fd5b506109ea60048036038101906109e59190613e38565b611c3c565b005b3480156109f7575f80fd5b50610a00611e22565b604051610a0d9190613d6a565b60405180910390f35b348015610a21575f80fd5b50610a3c6004803603810190610a379190613de2565b611e47565b604051610a499190613bee565b60405180910390f35b348015610a5d575f80fd5b50610a786004803603810190610a739190613c31565b611e64565b005b348015610a85575f80fd5b50610a8e611f86565b604051610a9b9190613cf2565b60405180910390f35b348015610aaf575f80fd5b50610ab8611f8c565b604051610ac59190613cf2565b60405180910390f35b348015610ad9575f80fd5b50610ae2611f92565b604051610aef9190613cf2565b60405180910390f35b348015610b03575f80fd5b50610b1e6004803603810190610b199190613de2565b611f98565b604051610b2b9190613bee565b60405180910390f35b348015610b3f575f80fd5b50610b5a6004803603810190610b559190613e38565b611fb5565b604051610b679190613cf2565b60405180910390f35b348015610b7b575f80fd5b50610b966004803603810190610b919190613de2565b612037565b005b348015610ba3575f80fd5b50610bac612171565b604051610bb99190613cf2565b60405180910390f35b348015610bcd575f80fd5b50610be86004803603810190610be39190613b96565b612177565b604051610bf59190613bee565b60405180910390f35b348015610c09575f80fd5b50610c1261225d565b604051610c1f9190613cf2565b60405180910390f35b348015610c33575f80fd5b50610c4e6004803603810190610c499190613de2565b612263565b005b348015610c5b575f80fd5b50610c64612359565b604051610c719190613d6a565b60405180910390f35b348015610c85575f80fd5b50610c8e61237e565b604051610c9b9190613cf2565b60405180910390f35b610cac612384565b73ffffffffffffffffffffffffffffffffffffffff16610cca611974565b73ffffffffffffffffffffffffffffffffffffffff1614610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790613ec0565b60405180910390fd5b826013819055508160148190555080601581905550601554601454601354610d489190613f0b565b610d529190613f0b565b60128190555060286012541115610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590613f88565b60405180910390fd5b505050565b606060038054610db290613fd3565b80601f0160208091040260200160405190810160405280929190818152602001828054610dde90613fd3565b8015610e295780601f10610e0057610100808354040283529160200191610e29565b820191905f5260205f20905b815481529060010190602001808311610e0c57829003601f168201915b5050505050905090565b5f610e46610e3f612384565b848461238b565b6001905092915050565b610e58612384565b73ffffffffffffffffffffffffffffffffffffffff16610e76611974565b73ffffffffffffffffffffffffffffffffffffffff1614610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec390613ec0565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5290614073565b60405180910390fd5b610f65828261254e565b5050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f610fa38484846125ec565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610fea612384565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106090614101565b60405180910390fd5b61107d85611075612384565b85840361238b565b60019150509392505050565b61dead81565b5f6009905090565b61109f612384565b73ffffffffffffffffffffffffffffffffffffffff166110bd611974565b73ffffffffffffffffffffffffffffffffffffffff1614611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a90613ec0565b60405180910390fd5b633b9aca006103e8600a611125610f8e565b61112f919061411f565b611139919061418d565b611143919061418d565b811015611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c9061422d565b60405180910390fd5b633b9aca0081611195919061411f565b600c8190555050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5f9054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b5f6112aa611219612384565b848460015f611226612384565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112a59190613f0b565b61238b565b6001905092915050565b5f60195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b61130e612384565b73ffffffffffffffffffffffffffffffffffffffff1661132c611974565b73ffffffffffffffffffffffffffffffffffffffff1614611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990613ec0565b60405180910390fd5b82600f819055508160108190555080601181905550601154601054600f546113aa9190613f0b565b6113b49190613f0b565b600e819055506019600e541115611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f790614295565b60405180910390fd5b505050565b600b5481565b600d60029054906101000a900460ff1681565b611426612384565b73ffffffffffffffffffffffffffffffffffffffff16611444611974565b73ffffffffffffffffffffffffffffffffffffffff161461149a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149190613ec0565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f47ac97cd4ab0b967bcc8705051164721527b38b7f9d0e7cd01cf37a62ed23f6360405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6115ab612384565b73ffffffffffffffffffffffffffffffffffffffff166115c9611974565b73ffffffffffffffffffffffffffffffffffffffff161461161f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161690613ec0565b60405180910390fd5b6116285f61307a565b565b5f611633612384565b73ffffffffffffffffffffffffffffffffffffffff16611651611974565b73ffffffffffffffffffffffffffffffffffffffff16146116a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169e90613ec0565b60405180910390fd5b5f600d5f6101000a81548160ff0219169083151502179055506001905090565b60115481565b5f6116d6612384565b73ffffffffffffffffffffffffffffffffffffffff166116f4611974565b73ffffffffffffffffffffffffffffffffffffffff161461174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174190613ec0565b60405180910390fd5b620186a06001611758610f8e565b611762919061411f565b61176c919061418d565b8210156117ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a590614323565b60405180910390fd5b6103e860056117bb610f8e565b6117c5919061411f565b6117cf919061418d565b821115611811576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611808906143b1565b60405180910390fd5b81600b8190555060019050919050565b611829612384565b73ffffffffffffffffffffffffffffffffffffffff16611847611974565b73ffffffffffffffffffffffffffffffffffffffff161461189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490613ec0565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b6118c2612384565b73ffffffffffffffffffffffffffffffffffffffff166118e0611974565b73ffffffffffffffffffffffffffffffffffffffff1614611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192d90613ec0565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff021916908315150217905550565b600a5481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6119a4612384565b73ffffffffffffffffffffffffffffffffffffffff166119c2611974565b73ffffffffffffffffffffffffffffffffffffffff1614611a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0f90613ec0565b60405180910390fd5b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600e5481565b606060048054611a8590613fd3565b80601f0160208091040260200160405190810160405280929190818152602001828054611ab190613fd3565b8015611afc5780601f10611ad357610100808354040283529160200191611afc565b820191905f5260205f20905b815481529060010190602001808311611adf57829003601f168201915b5050505050905090565b611b0e612384565b73ffffffffffffffffffffffffffffffffffffffff16611b2c611974565b73ffffffffffffffffffffffffffffffffffffffff1614611b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7990613ec0565b60405180910390fd5b633b9aca006103e86005611b94610f8e565b611b9e919061411f565b611ba8919061418d565b611bb2919061418d565b811015611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb9061443f565b60405180910390fd5b633b9aca0081611c04919061411f565b600a8190555050565b600f5481565b60165481565b60135481565b5f611c32611c2b612384565b84846125ec565b6001905092915050565b611c44612384565b73ffffffffffffffffffffffffffffffffffffffff16611c62611974565b73ffffffffffffffffffffffffffffffffffffffff1614611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90613ec0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1d906144a7565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611d609190613d6a565b602060405180830381865afa158015611d7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d9f91906144d9565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611ddc929190614504565b6020604051808303815f875af1158015611df8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1c919061453f565b50505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b602052805f5260405f205f915054906101000a900460ff1681565b611e6c612384565b73ffffffffffffffffffffffffffffffffffffffff16611e8a611974565b73ffffffffffffffffffffffffffffffffffffffff1614611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed790613ec0565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611f7a9190613bee565b60405180910390a25050565b60125481565b60145481565b60175481565b601a602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61203f612384565b73ffffffffffffffffffffffffffffffffffffffff1661205d611974565b73ffffffffffffffffffffffffffffffffffffffff16146120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa90613ec0565b60405180910390fd5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fd0c81008cff562f340eed8198dff4fd5f74be6b8b39e5f4918250cafabb6d07260405160405180910390a38060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b5f8060015f612184612384565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561223e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612235906145da565b60405180910390fd5b612252612249612384565b8585840361238b565b600191505092915050565b60155481565b61226b612384565b73ffffffffffffffffffffffffffffffffffffffff16612289611974565b73ffffffffffffffffffffffffffffffffffffffff16146122df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d690613ec0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361234d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234490614668565b60405180910390fd5b6123568161307a565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f0906146f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245e90614784565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125419190613cf2565b60405180910390a3505050565b80601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f9a7a23d69e77f6f530abfa14ee34b4a9eca620bc2fa8a7e70358a6565de3f5a160405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361265a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265190614812565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bf906148a0565b60405180910390fd5b5f81036126df576126da83835f61313d565b613075565b600d5f9054906101000a900460ff1615612bc3576126fb611974565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156127695750612739611974565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127a157505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127db575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127f45750600760149054906101000a900460ff16155b15612bc257600d60019054906101000a900460ff166128e85760195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806128a8575060195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6128e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128de90614908565b60405180910390fd5b5b601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156129855750601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612a2c57600a548111156129cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c690614996565b60405180910390fd5b600c546129db8361155e565b826129e69190613f0b565b1115612a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1e906149fe565b60405180910390fd5b612bc1565b601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612ac95750601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b1857600a54811115612b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0a90614a8c565b60405180910390fd5b612bc0565b601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612bbf57600c54612b728361155e565b82612b7d9190613f0b565b1115612bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb5906149fe565b60405180910390fd5b5b5b5b5b5b5f612bcd3061155e565b90505f600b548210159050808015612bf15750600d60029054906101000a900460ff165b8015612c0a5750600760149054906101000a900460ff16155b8015612c5d5750601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612cb0575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612d03575060195f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d46576001600760146101000a81548160ff021916908315150217905550612d2b6133b2565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff1615905060195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612df5575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612dfe575f90505b5f811561306557601b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612f24575f6012541115612f1f57612e866064612e78601254886136ac90919063ffffffff16565b6136c190919063ffffffff16565b905060125460145482612e99919061411f565b612ea3919061418d565b60175f828254612eb39190613f0b565b9250508190555060125460155482612ecb919061411f565b612ed5919061418d565b60185f828254612ee59190613f0b565b9250508190555060125460135482612efd919061411f565b612f07919061418d565b60165f828254612f179190613f0b565b925050819055505b613042565b601b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612f7b57505f600e54115b1561304157612fa86064612f9a600e54886136ac90919063ffffffff16565b6136c190919063ffffffff16565b9050600e5460105482612fbb919061411f565b612fc5919061418d565b60175f828254612fd59190613f0b565b92505081905550600e5460115482612fed919061411f565b612ff7919061418d565b60185f8282546130079190613f0b565b92505081905550600e54600f548261301f919061411f565b613029919061418d565b60165f8282546130399190613f0b565b925050819055505b5b5f8111156130565761305587308361313d565b5b80856130629190614aaa565b94505b61307087878761313d565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036131ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a290614812565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613210906148a0565b60405180910390fd5b6132248383836136d6565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156132a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329e90614b4d565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546133359190613f0b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133999190613cf2565b60405180910390a36133ac8484846136db565b50505050565b5f6133bc3061155e565b90505f6018546016546017546133d29190613f0b565b6133dc9190613f0b565b90505f808314806133ec57505f82145b156133f9575050506136aa565b6014600b54613408919061411f565b831115613421576014600b5461341e919061411f565b92505b5f60028360175486613433919061411f565b61343d919061418d565b613447919061418d565b90505f81856134569190614aaa565b90505f479050613465826136e0565b5f613479824761391690919063ffffffff16565b90505f6134bc600260175461348e919061418d565b886134999190614aaa565b6134ae601654856136ac90919063ffffffff16565b6136c190919063ffffffff16565b90505f6134ff60026017546134d1919061418d565b896134dc9190614aaa565b6134f1601854866136ac90919063ffffffff16565b6136c190919063ffffffff16565b90505f81838561350f9190614aaa565b6135199190614aaa565b90505f6017819055505f6016819055505f60188190555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161357590614b98565b5f6040518083038185875af1925050503d805f81146135af576040519150601f19603f3d011682016040523d82523d5f602084013e6135b4565b606091505b5050809850505f871180156135c857505f81115b15613615576135d7878261392b565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868260175460405161360c93929190614bac565b60405180910390a15b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161365a90614b98565b5f6040518083038185875af1925050503d805f8114613694576040519150601f19603f3d011682016040523d82523d5f602084013e613699565b606091505b505080985050505050505050505050505b565b5f81836136b9919061411f565b905092915050565b5f81836136ce919061418d565b905092915050565b505050565b505050565b5f600267ffffffffffffffff8111156136fc576136fb614be1565b5b60405190808252806020026020018201604052801561372a5781602001602082028036833780820191505090505b50905030815f8151811061374157613740614c0e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138099190614c4f565b8160018151811061381d5761381c614c0e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506138833060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461238b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016138e5959493929190614d6a565b5f604051808303815f87803b1580156138fc575f80fd5b505af115801561390e573d5f803e3d5ffd5b505050505050565b5f81836139239190614aaa565b905092915050565b6139573060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461238b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f806139a1611974565b426040518863ffffffff1660e01b81526004016139c396959493929190614dc2565b60606040518083038185885af11580156139df573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190613a049190614e21565b5050505050565b5f80fd5b5f819050919050565b613a2181613a0f565b8114613a2b575f80fd5b50565b5f81359050613a3c81613a18565b92915050565b5f805f60608486031215613a5957613a58613a0b565b5b5f613a6686828701613a2e565b9350506020613a7786828701613a2e565b9250506040613a8886828701613a2e565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613ac9578082015181840152602081019050613aae565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613aee82613a92565b613af88185613a9c565b9350613b08818560208601613aac565b613b1181613ad4565b840191505092915050565b5f6020820190508181035f830152613b348184613ae4565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613b6582613b3c565b9050919050565b613b7581613b5b565b8114613b7f575f80fd5b50565b5f81359050613b9081613b6c565b92915050565b5f8060408385031215613bac57613bab613a0b565b5b5f613bb985828601613b82565b9250506020613bca85828601613a2e565b9150509250929050565b5f8115159050919050565b613be881613bd4565b82525050565b5f602082019050613c015f830184613bdf565b92915050565b613c1081613bd4565b8114613c1a575f80fd5b50565b5f81359050613c2b81613c07565b92915050565b5f8060408385031215613c4757613c46613a0b565b5b5f613c5485828601613b82565b9250506020613c6585828601613c1d565b9150509250929050565b5f819050919050565b5f613c92613c8d613c8884613b3c565b613c6f565b613b3c565b9050919050565b5f613ca382613c78565b9050919050565b5f613cb482613c99565b9050919050565b613cc481613caa565b82525050565b5f602082019050613cdd5f830184613cbb565b92915050565b613cec81613a0f565b82525050565b5f602082019050613d055f830184613ce3565b92915050565b5f805f60608486031215613d2257613d21613a0b565b5b5f613d2f86828701613b82565b9350506020613d4086828701613b82565b9250506040613d5186828701613a2e565b9150509250925092565b613d6481613b5b565b82525050565b5f602082019050613d7d5f830184613d5b565b92915050565b5f60ff82169050919050565b613d9881613d83565b82525050565b5f602082019050613db15f830184613d8f565b92915050565b5f60208284031215613dcc57613dcb613a0b565b5b5f613dd984828501613a2e565b91505092915050565b5f60208284031215613df757613df6613a0b565b5b5f613e0484828501613b82565b91505092915050565b5f60208284031215613e2257613e21613a0b565b5b5f613e2f84828501613c1d565b91505092915050565b5f8060408385031215613e4e57613e4d613a0b565b5b5f613e5b85828601613b82565b9250506020613e6c85828601613b82565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613eaa602083613a9c565b9150613eb582613e76565b602082019050919050565b5f6020820190508181035f830152613ed781613e9e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613f1582613a0f565b9150613f2083613a0f565b9250828201905080821115613f3857613f37613ede565b5b92915050565b7f53656c6c2066656573206d757374206265203c3d2034302e00000000000000005f82015250565b5f613f72601883613a9c565b9150613f7d82613f3e565b602082019050919050565b5f6020820190508181035f830152613f9f81613f66565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613fea57607f821691505b602082108103613ffd57613ffc613fa6565b5b50919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61405d603983613a9c565b915061406882614003565b604082019050919050565b5f6020820190508181035f83015261408a81614051565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6140eb602883613a9c565b91506140f682614091565b604082019050919050565b5f6020820190508181035f830152614118816140df565b9050919050565b5f61412982613a0f565b915061413483613a0f565b925082820261414281613a0f565b9150828204841483151761415957614158613ede565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61419782613a0f565b91506141a283613a0f565b9250826141b2576141b1614160565b5b828204905092915050565b7f43616e6e6f7420736574206d6178486f6c64696e6773206c6f776572207468615f8201527f6e20312e30250000000000000000000000000000000000000000000000000000602082015250565b5f614217602683613a9c565b9150614222826141bd565b604082019050919050565b5f6020820190508181035f8301526142448161420b565b9050919050565b7f4275792066656573206d757374206265203c3d2032352e0000000000000000005f82015250565b5f61427f601783613a9c565b915061428a8261424b565b602082019050919050565b5f6020820190508181035f8301526142ac81614273565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61430d603583613a9c565b9150614318826142b3565b604082019050919050565b5f6020820190508181035f83015261433a81614301565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f61439b603483613a9c565b91506143a682614341565b604082019050919050565b5f6020820190508181035f8301526143c88161438f565b9050919050565b7f43616e6e6f7420736574206d61785478416d6f756e74206c6f776572207468615f8201527f6e20302e35250000000000000000000000000000000000000000000000000000602082015250565b5f614429602683613a9c565b9150614434826143cf565b604082019050919050565b5f6020820190508181035f8301526144568161441d565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000005f82015250565b5f614491601a83613a9c565b915061449c8261445d565b602082019050919050565b5f6020820190508181035f8301526144be81614485565b9050919050565b5f815190506144d381613a18565b92915050565b5f602082840312156144ee576144ed613a0b565b5b5f6144fb848285016144c5565b91505092915050565b5f6040820190506145175f830185613d5b565b6145246020830184613ce3565b9392505050565b5f8151905061453981613c07565b92915050565b5f6020828403121561455457614553613a0b565b5b5f6145618482850161452b565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6145c4602583613a9c565b91506145cf8261456a565b604082019050919050565b5f6020820190508181035f8301526145f1816145b8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614652602683613a9c565b915061465d826145f8565b604082019050919050565b5f6020820190508181035f83015261467f81614646565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6146e0602483613a9c565b91506146eb82614686565b604082019050919050565b5f6020820190508181035f83015261470d816146d4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61476e602283613a9c565b915061477982614714565b604082019050919050565b5f6020820190508181035f83015261479b81614762565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6147fc602583613a9c565b9150614807826147a2565b604082019050919050565b5f6020820190508181035f830152614829816147f0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61488a602383613a9c565b915061489582614830565b604082019050919050565b5f6020820190508181035f8301526148b78161487e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6148f2601683613a9c565b91506148fd826148be565b602082019050919050565b5f6020820190508181035f83015261491f816148e6565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785478416d6f756e742e0000000000000000000000000000000000000000602082015250565b5f614980602c83613a9c565b915061498b82614926565b604082019050919050565b5f6020820190508181035f8301526149ad81614974565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6149e8601383613a9c565b91506149f3826149b4565b602082019050919050565b5f6020820190508181035f830152614a15816149dc565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785478416d6f756e742e00000000000000000000000000000000000000602082015250565b5f614a76602d83613a9c565b9150614a8182614a1c565b604082019050919050565b5f6020820190508181035f830152614aa381614a6a565b9050919050565b5f614ab482613a0f565b9150614abf83613a0f565b9250828203905081811115614ad757614ad6613ede565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614b37602683613a9c565b9150614b4282614add565b604082019050919050565b5f6020820190508181035f830152614b6481614b2b565b9050919050565b5f81905092915050565b50565b5f614b835f83614b6b565b9150614b8e82614b75565b5f82019050919050565b5f614ba282614b78565b9150819050919050565b5f606082019050614bbf5f830186613ce3565b614bcc6020830185613ce3565b614bd96040830184613ce3565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614c4981613b6c565b92915050565b5f60208284031215614c6457614c63613a0b565b5b5f614c7184828501614c3b565b91505092915050565b5f819050919050565b5f614c9d614c98614c9384614c7a565b613c6f565b613a0f565b9050919050565b614cad81614c83565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614ce581613b5b565b82525050565b5f614cf68383614cdc565b60208301905092915050565b5f602082019050919050565b5f614d1882614cb3565b614d228185614cbd565b9350614d2d83614ccd565b805f5b83811015614d5d578151614d448882614ceb565b9750614d4f83614d02565b925050600181019050614d30565b5085935050505092915050565b5f60a082019050614d7d5f830188613ce3565b614d8a6020830187614ca4565b8181036040830152614d9c8186614d0e565b9050614dab6060830185613d5b565b614db86080830184613ce3565b9695505050505050565b5f60c082019050614dd55f830189613d5b565b614de26020830188613ce3565b614def6040830187614ca4565b614dfc6060830186614ca4565b614e096080830185613d5b565b614e1660a0830184613ce3565b979650505050505050565b5f805f60608486031215614e3857614e37613a0b565b5b5f614e45868287016144c5565b9350506020614e56868287016144c5565b9250506040614e67868287016144c5565b915050925092509256fea2646970667358221220aed33bddfb8ec6e52d8937b3b7011a49e97cb6da3465dbd15483d3b21425860d64736f6c63430008150033

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.