ETH Price: $2,544.80 (+3.27%)

Contract

0x84c056acdcfEdC1AB79A32993Aa3125EEceF5d9a
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve201072782024-06-16 22:17:1173 days ago1718576231IN
0x84c056ac...EEceF5d9a
0 ETH0.000195394.1402253
Approve195392742024-03-29 11:09:59152 days ago1711710599IN
0x84c056ac...EEceF5d9a
0 ETH0.0010443722.10085967
Approve190842712024-01-25 14:37:23216 days ago1706193443IN
0x84c056ac...EEceF5d9a
0 ETH0.0015793233.46387418
Approve189333612024-01-04 10:25:47237 days ago1704363947IN
0x84c056ac...EEceF5d9a
0 ETH0.000558618.72556193
Approve189241352024-01-03 3:23:47239 days ago1704252227IN
0x84c056ac...EEceF5d9a
0 ETH0.0003610913.36458672
Approve189241262024-01-03 3:21:59239 days ago1704252119IN
0x84c056ac...EEceF5d9a
0 ETH0.0006216713.24985671
Approve185397032023-11-10 6:17:35293 days ago1699597055IN
0x84c056ac...EEceF5d9a
0 ETH0.0015871933.5878251
Approve183736102023-10-18 0:16:23316 days ago1697588183IN
0x84c056ac...EEceF5d9a
0 ETH0.000331147.00753068
Approve182638662023-10-02 15:52:59331 days ago1696261979IN
0x84c056ac...EEceF5d9a
0 ETH0.0006545921.9345847
Approve180626782023-09-04 11:00:35359 days ago1693825235IN
0x84c056ac...EEceF5d9a
0 ETH0.0005797712.28462016
Approve180624972023-09-04 10:24:23359 days ago1693823063IN
0x84c056ac...EEceF5d9a
0 ETH0.0005454711.55786105
Approve178715162023-08-08 16:52:59386 days ago1691513579IN
0x84c056ac...EEceF5d9a
0 ETH0.0015557532.92258775
Approve178367232023-08-03 20:02:23391 days ago1691092943IN
0x84c056ac...EEceF5d9a
0 ETH0.0007844726.29735027
Approve178366752023-08-03 19:52:47391 days ago1691092367IN
0x84c056ac...EEceF5d9a
0 ETH0.0006786525.11752355
Approve178365652023-08-03 19:30:35391 days ago1691091035IN
0x84c056ac...EEceF5d9a
0 ETH0.0006933325.66115957
Approve178299122023-08-02 21:10:47392 days ago1691010647IN
0x84c056ac...EEceF5d9a
0 ETH0.0006505724.07843016
Approve178299082023-08-02 21:09:59392 days ago1691010599IN
0x84c056ac...EEceF5d9a
0 ETH0.0006387723.64167256
Approve178299022023-08-02 21:08:47392 days ago1691010527IN
0x84c056ac...EEceF5d9a
0 ETH0.001088523.1996646
Approve178127912023-07-31 11:48:23394 days ago1690804103IN
0x84c056ac...EEceF5d9a
0 ETH0.0006811914.43358701
Approve176847252023-07-13 12:58:23412 days ago1689253103IN
0x84c056ac...EEceF5d9a
0 ETH0.000409615.14632
Approve176847242023-07-13 12:58:11412 days ago1689253091IN
0x84c056ac...EEceF5d9a
0 ETH0.0007193315.32351986
Approve175614352023-06-26 5:09:47430 days ago1687756187IN
0x84c056ac...EEceF5d9a
0 ETH0.0006028912.75826438
Approve174434952023-06-09 15:15:11446 days ago1686323711IN
0x84c056ac...EEceF5d9a
0 ETH0.0009586932.12460236
Approve174355132023-06-08 12:11:59447 days ago1686226319IN
0x84c056ac...EEceF5d9a
0 ETH0.0008797918.64180053
Approve174344052023-06-08 8:27:59448 days ago1686212879IN
0x84c056ac...EEceF5d9a
0 ETH0.0009682120.63052717
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Pepechu

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT


pragma solidity ^0.8.18;


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);
}


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

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


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => bool) public isCharging;
    mapping(address => uint256) public lastChargeTime;

    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 18;
    }

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

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

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

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

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

    


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

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

        return true;
    }

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

    
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        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 charge() public {
        isCharging[msg.sender] = true;
        lastChargeTime[msg.sender] = block.timestamp;
    }

    function discharge() public {
        require(block.timestamp >= lastChargeTime[msg.sender] + 2 hours, "Must wait 2 hours to discharge");
        isCharging[msg.sender] = false;
    }

  
    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 {}
}


abstract contract Ownable is Context {
    address private _owner;

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

   
    constructor() {
    }

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

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

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

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

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


abstract contract Pausable is Context {
  
    event Paused(address account);

    
    event Unpaused(address account);

    bool private _paused;

   
    constructor() {
        _paused = false;
    }

    
    function paused() public view virtual returns (bool) {
        return _paused;
    }

  
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

  
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

   
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

  
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

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

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

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

contract Pepechu is ERC20, Ownable, Pausable {

    // variables
    
    uint256 private initialSupply;
   
    uint256 private denominator = 100;

    uint256 private swapThreshold = 0.0000009 ether; 
    
    uint256 private devTaxBuy;
    uint256 private liquidityTaxBuy;
   
    
    uint256 private devTaxSell;
    uint256 private liquidityTaxSell;
    uint256 public maxWallet;
    
    address private devTaxWallet;
    address private liquidityTaxWallet;
    
    
    // Mappings
    
    mapping (address => bool) private excludeList;
   
    
    mapping (string => uint256) private buyTaxes;
    mapping (string => uint256) private sellTaxes;
    mapping (string => address) private taxWallets;
    
    bool public taxStatus = true;
    
    IUniswapV2Router02 private uniswapV2Router02;
    IUniswapV2Factory private uniswapV2Factory;
    IUniswapV2Pair private uniswapV2Pair;
    
    constructor(string memory _tokenName,string memory _tokenSymbol,uint256 _supply) ERC20(_tokenName, _tokenSymbol) payable
    {
        initialSupply =_supply * (10**18);
        maxWallet = initialSupply * 2 / 100; 
        _setOwner(msg.sender);
        uniswapV2Router02 = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Factory = IUniswapV2Factory(uniswapV2Router02.factory());
        uniswapV2Pair = IUniswapV2Pair(uniswapV2Factory.createPair(address(this), uniswapV2Router02.WETH()));
        taxWallets["liquidity"] = address(0);
        setBuyTax(0,0); //dev tax, liquidity tax
        setSellTax(4,95); //dev tax, liquidity tax
        setTaxWallets(0x5692F3a8AED608e3a0051E545B27e488f96FAC6E); // replace this with your wallet
        exclude(msg.sender);
        exclude(address(this));
        exclude(devTaxWallet);
        _mint(msg.sender, initialSupply);
    }
    
    
    uint256 private devTokens;
    uint256 private liquidityTokens;
    
    
   
    function handleTax(address from, address to, uint256 amount) private returns (uint256) {
        address[] memory sellPath = new address[](2);
        sellPath[0] = address(this);
        sellPath[1] = uniswapV2Router02.WETH();
        
        if(!isExcluded(from) && !isExcluded(to)) {
            uint256 tax;
            uint256 baseUnit = amount / denominator;
            if(from == address(uniswapV2Pair)) {
                tax += baseUnit * buyTaxes["dev"];
                tax += baseUnit * buyTaxes["liquidity"];
               
                
                if(tax > 0) {
                    _transfer(from, address(this), tax);   
                }
                
                
                devTokens += baseUnit * buyTaxes["dev"];
                liquidityTokens += baseUnit * buyTaxes["liquidity"];

            } else if(to == address(uniswapV2Pair)) {
                
                tax += baseUnit * sellTaxes["dev"];
                tax += baseUnit * sellTaxes["liquidity"];
                
                
                if(tax > 0) {
                    _transfer(from, address(this), tax);   
                }
                
               
                devTokens += baseUnit * sellTaxes["dev"];
                liquidityTokens += baseUnit * sellTaxes["liquidity"];
                
                
                uint256 taxSum =  devTokens + liquidityTokens;
                
                if(taxSum == 0) return amount;
                
                uint256 ethValue = uniswapV2Router02.getAmountsOut( devTokens + liquidityTokens, sellPath)[1];
                
                if(ethValue >= swapThreshold) {
                    uint256 startBalance = address(this).balance;

                    uint256 toSell = devTokens + liquidityTokens / 2 ;
                    
                    _approve(address(this), address(uniswapV2Router02), toSell);
            
                    uniswapV2Router02.swapExactTokensForETH(
                        toSell,
                        0,
                        sellPath,
                        address(this),
                        block.timestamp
                    );
                    
                    uint256 ethGained = address(this).balance - startBalance;
                    
                    uint256 liquidityToken = liquidityTokens / 2;
                    uint256 liquidityETH = (ethGained * ((liquidityTokens / 2 * 10**18) / taxSum)) / 10**18;
                    
                    
                    uint256 devETH = (ethGained * ((devTokens * 10**18) / taxSum)) / 10**18;
                   
                    
                    _approve(address(this), address(uniswapV2Router02), liquidityToken);
                    
                    uniswapV2Router02.addLiquidityETH{value: liquidityETH}(
                        address(this),
                        liquidityToken,
                        0,
                        0,
                        taxWallets["liquidity"],
                        block.timestamp
                    );
                    
                    uint256 remainingTokens = (devTokens + liquidityTokens) - (toSell + liquidityToken);
                    
                    if(remainingTokens > 0) {
                        _transfer(address(this), taxWallets["dev"], remainingTokens);
                    }
                    
                    
                   (bool success,) = taxWallets["dev"].call{value: devETH}("");
                   require(success, "transfer to  dev wallet failed");
                    
                    
                    if(ethGained - ( devETH + liquidityETH) > 0) {
                       (bool success1,) = taxWallets["dev"].call{value: ethGained - (devETH + liquidityETH)}("");
                        require(success1, "transfer to  dev wallet failed");
                    }

                    
                    
                    
                    devTokens = 0;
                    liquidityTokens = 0;
                    
                }
                
            }
            
            amount -= tax;
            if (to != address(uniswapV2Pair)){
                require(balanceOf(to) + amount <= maxWallet, "maxWallet limit exceeded");
            }
           
        }
        
        return amount;
    }
    
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override virtual {
        require(!paused(), "ERC20: token transfer while paused");
       
        
        if(taxStatus) {
            amount = handleTax(sender, recipient, amount);   
        }

        super._transfer(sender, recipient, amount);
    }
    
   
    function triggerTax() public onlyOwner {
        handleTax(address(0), address(uniswapV2Pair), 0);
    }
    
    
    function pause() public onlyOwner {
        require(!paused(), "ERC20: Contract is already paused");
        _pause();
    }

   
    function unpause() public onlyOwner {
        require(paused(), "ERC20: Contract is not paused");
        _unpause();
    }

    

    function setMaxWallet (uint256 amount) external onlyOwner {
        require (amount > 10000, "NO rug pull");
        maxWallet = amount * 10**18;
    }
    
  
    function burn(uint256 amount) public onlyOwner {
        _burn(msg.sender, amount);
    }
    
    
   
    
  
    
    function exclude(address account) public onlyOwner {
        require(!isExcluded(account), "ERC20: Account is already excluded");
        excludeList[account] = true;
    }
    
  
    function removeExclude(address account) public onlyOwner {
        require(isExcluded(account), "ERC20: Account is not excluded");
        excludeList[account] = false;
    }
    
   
    function setBuyTax(uint256 dev,uint256 liquidity) public onlyOwner {
        buyTaxes["dev"] = dev;
        buyTaxes["liquidity"] = liquidity;
       
    }
    
    
    function setSellTax(uint256 dev, uint256 liquidity) public onlyOwner {

        sellTaxes["dev"] = dev;
        sellTaxes["liquidity"] = liquidity;
        
    }
    
    
    function setTaxWallets(address dev) public onlyOwner {
        taxWallets["dev"] = dev;
        
    }

    function claimStuckTokens(address _token) external onlyOwner {
 
        if (_token == address(0x0)) {
            payable(owner()).transfer(address(this).balance);
            return;
        }
        IERC20 erc20token = IERC20(_token);
        uint256 balance = erc20token.balanceOf(address(this));
        erc20token.transfer(owner(), balance);
    }
    
    
    function enableTax() public onlyOwner {
        require(!taxStatus, "ERC20: Tax is already enabled");
        taxStatus = true;
    }
    
    
    function disableTax() public onlyOwner {
        require(taxStatus, "ERC20: Tax is already disabled");
        taxStatus = false;
    }
    

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

    
    
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_tokenName","type":"string"},{"internalType":"string","name":"_tokenSymbol","type":"string"},{"internalType":"uint256","name":"_supply","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"charge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"discharge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"exclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isCharging","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastChargeTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"dev","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"triggerTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052606460095564d18c2e2800600a556001601660006101000a81548160ff02191690831515021790555060405162005e2538038062005e25833981810160405281019062000052919062000d21565b8282816005908162000065919062000ffc565b50806006908162000077919062000ffc565b5050506000600760146101000a81548160ff021916908315150217905550670de0b6b3a764000081620000ab919062001112565b60088190555060646002600854620000c4919062001112565b620000d091906200118c565b600f81905550620000e733620004a460201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d601660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d0919062001229565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e3919062001229565b6040518363ffffffff1660e01b8152600401620003029291906200126c565b6020604051808303816000875af115801562000322573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000348919062001229565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060156040516200039a90620012f4565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003f96000806200056a60201b60201c565b6200040d6004605f6200064360201b60201c565b62000432735692f3a8aed608e3a0051e545b27e488f96fac6e6200071c60201b60201c565b62000443336200080b60201b60201c565b62000454306200080b60201b60201c565b62000487601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200080b60201b60201c565b6200049b336008546200094960201b60201c565b50505062001568565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200057a62000ac160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005a062000ac960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620005f9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005f0906200136c565b60405180910390fd5b8160136040516200060a90620013de565b9081526020016040518091039020819055508060136040516200062d90620012f4565b9081526020016040518091039020819055505050565b6200065362000ac160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200067962000ac960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006c9906200136c565b60405180910390fd5b816014604051620006e390620013de565b9081526020016040518091039020819055508060146040516200070690620012f4565b9081526020016040518091039020819055505050565b6200072c62000ac160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200075262000ac960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007ab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007a2906200136c565b60405180910390fd5b806015604051620007bc90620013de565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6200081b62000ac160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200084162000ac960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000891906200136c565b60405180910390fd5b620008ab8162000af360201b60201c565b15620008ee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008e5906200146b565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620009bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009b290620014dd565b60405180910390fd5b620009cf6000838362000b4960201b60201c565b8060046000828254620009e39190620014ff565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a3a9190620014ff565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000aa191906200154b565b60405180910390a362000abd6000838362000b4e60201b60201c565b5050565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000bbc8262000b71565b810181811067ffffffffffffffff8211171562000bde5762000bdd62000b82565b5b80604052505050565b600062000bf362000b53565b905062000c01828262000bb1565b919050565b600067ffffffffffffffff82111562000c245762000c2362000b82565b5b62000c2f8262000b71565b9050602081019050919050565b60005b8381101562000c5c57808201518184015260208101905062000c3f565b60008484015250505050565b600062000c7f62000c798462000c06565b62000be7565b90508281526020810184848401111562000c9e5762000c9d62000b6c565b5b62000cab84828562000c3c565b509392505050565b600082601f83011262000ccb5762000cca62000b67565b5b815162000cdd84826020860162000c68565b91505092915050565b6000819050919050565b62000cfb8162000ce6565b811462000d0757600080fd5b50565b60008151905062000d1b8162000cf0565b92915050565b60008060006060848603121562000d3d5762000d3c62000b5d565b5b600084015167ffffffffffffffff81111562000d5e5762000d5d62000b62565b5b62000d6c8682870162000cb3565b935050602084015167ffffffffffffffff81111562000d905762000d8f62000b62565b5b62000d9e8682870162000cb3565b925050604062000db18682870162000d0a565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e0e57607f821691505b60208210810362000e245762000e2362000dc6565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000e8e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000e4f565b62000e9a868362000e4f565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000edd62000ed762000ed18462000ce6565b62000eb2565b62000ce6565b9050919050565b6000819050919050565b62000ef98362000ebc565b62000f1162000f088262000ee4565b84845462000e5c565b825550505050565b600090565b62000f2862000f19565b62000f3581848462000eee565b505050565b5b8181101562000f5d5762000f5160008262000f1e565b60018101905062000f3b565b5050565b601f82111562000fac5762000f768162000e2a565b62000f818462000e3f565b8101602085101562000f91578190505b62000fa962000fa08562000e3f565b83018262000f3a565b50505b505050565b600082821c905092915050565b600062000fd16000198460080262000fb1565b1980831691505092915050565b600062000fec838362000fbe565b9150826002028217905092915050565b620010078262000dbb565b67ffffffffffffffff81111562001023576200102262000b82565b5b6200102f825462000df5565b6200103c82828562000f61565b600060209050601f8311600181146200107457600084156200105f578287015190505b6200106b858262000fde565b865550620010db565b601f198416620010848662000e2a565b60005b82811015620010ae5784890151825560018201915060208501945060208101905062001087565b86831015620010ce5784890151620010ca601f89168262000fbe565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200111f8262000ce6565b91506200112c8362000ce6565b92508282026200113c8162000ce6565b91508282048414831517620011565762001155620010e3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011998262000ce6565b9150620011a68362000ce6565b925082620011b957620011b86200115d565b5b828204905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011f182620011c4565b9050919050565b6200120381620011e4565b81146200120f57600080fd5b50565b6000815190506200122381620011f8565b92915050565b60006020828403121562001242576200124162000b5d565b5b6000620012528482850162001212565b91505092915050565b6200126681620011e4565b82525050565b60006040820190506200128360008301856200125b565b6200129260208301846200125b565b9392505050565b600081905092915050565b7f6c69717569646974790000000000000000000000000000000000000000000000600082015250565b6000620012dc60098362001299565b9150620012e982620012a4565b600982019050919050565b60006200130182620012cd565b9150819050919050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620013546020836200130b565b915062001361826200131c565b602082019050919050565b60006020820190508181036000830152620013878162001345565b9050919050565b7f6465760000000000000000000000000000000000000000000000000000000000600082015250565b6000620013c660038362001299565b9150620013d3826200138e565b600382019050919050565b6000620013eb82620013b7565b9150819050919050565b7f45524332303a204163636f756e7420697320616c7265616479206578636c756460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b6000620014536022836200130b565b91506200146082620013f5565b604082019050919050565b60006020820190508181036000830152620014868162001444565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620014c5601f836200130b565b9150620014d2826200148d565b602082019050919050565b60006020820190508181036000830152620014f881620014b6565b9050919050565b60006200150c8262000ce6565b9150620015198362000ce6565b9250828201905080821115620015345762001533620010e3565b5b92915050565b620015458162000ce6565b82525050565b60006020820190506200156260008301846200153a565b92915050565b6148ad80620015786000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063b2885927116100a0578063d01dc84b1161006f578063d01dc84b14610714578063dd62ed3e1461073d578063f2fde38b1461077a578063f8b45b05146107a3578063f9d0831a146107ce5761020f565b8063b288592714610646578063c5a928ae14610683578063cba0e996146106c0578063ced695a4146106fd5761020f565b806395d89b41116100e757806395d89b4114610561578063a457c2d71461058c578063a9059cbb146105c9578063abe4f11d14610606578063afb090c81461062f5761020f565b806370a08231146104cb578063715018a6146105085780638456cb591461051f5780638da5cb5b146105365761020f565b8063313ce5671161019b5780634febf53d1161016a5780634febf53d1461042057806353eb3bcf1461044957806355161913146104605780635c975abb146104775780635d0044ca146104a25761020f565b8063313ce5671461037857806339509351146103a35780633f4ba83a146103e057806342966c68146103f75761020f565b806323a38a38116101d757806323a38a38146102d057806323b872dd146102fb578063247b912d146103385780632c32abc2146103615761020f565b806305a1f36d1461021457806306fdde031461023d578063095ea7b31461026857806318160ddd146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190613178565b6107f7565b005b34801561024957600080fd5b506102526108b9565b60405161025f9190613248565b60405180910390f35b34801561027457600080fd5b5061028f600480360381019061028a91906132c8565b61094b565b60405161029c9190613323565b60405180910390f35b3480156102b157600080fd5b506102ba610969565b6040516102c7919061334d565b60405180910390f35b3480156102dc57600080fd5b506102e5610973565b6040516102f29190613323565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190613368565b610986565b60405161032f9190613323565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190613178565b610a7e565b005b34801561036d57600080fd5b50610376610b40565b005b34801561038457600080fd5b5061038d610bee565b60405161039a91906133d7565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c591906132c8565b610bf7565b6040516103d79190613323565b60405180910390f35b3480156103ec57600080fd5b506103f5610ca3565b005b34801561040357600080fd5b5061041e600480360381019061041991906133f2565b610d70565b005b34801561042c57600080fd5b506104476004803603810190610442919061341f565b610df9565b005b34801561045557600080fd5b5061045e610f19565b005b34801561046c57600080fd5b50610475611002565b005b34801561048357600080fd5b5061048c61109f565b6040516104999190613323565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c491906133f2565b6110b6565b005b3480156104d757600080fd5b506104f260048036038101906104ed919061341f565b611193565b6040516104ff919061334d565b60405180910390f35b34801561051457600080fd5b5061051d6111db565b005b34801561052b57600080fd5b50610534611263565b005b34801561054257600080fd5b5061054b611331565b604051610558919061345b565b60405180910390f35b34801561056d57600080fd5b5061057661135b565b6040516105839190613248565b60405180910390f35b34801561059857600080fd5b506105b360048036038101906105ae91906132c8565b6113ed565b6040516105c09190613323565b60405180910390f35b3480156105d557600080fd5b506105f060048036038101906105eb91906132c8565b6114d8565b6040516105fd9190613323565b60405180910390f35b34801561061257600080fd5b5061062d6004803603810190610628919061341f565b6114f6565b005b34801561063b57600080fd5b50610644611615565b005b34801561065257600080fd5b5061066d6004803603810190610668919061341f565b6116fe565b60405161067a919061334d565b60405180910390f35b34801561068f57600080fd5b506106aa60048036038101906106a5919061341f565b611716565b6040516106b79190613323565b60405180910390f35b3480156106cc57600080fd5b506106e760048036038101906106e2919061341f565b611736565b6040516106f49190613323565b60405180910390f35b34801561070957600080fd5b5061071261178c565b005b34801561072057600080fd5b5061073b6004803603810190610736919061341f565b611874565b005b34801561074957600080fd5b50610764600480360381019061075f9190613476565b61194e565b604051610771919061334d565b60405180910390f35b34801561078657600080fd5b506107a1600480360381019061079c919061341f565b6119d5565b005b3480156107af57600080fd5b506107b8611acc565b6040516107c5919061334d565b60405180910390f35b3480156107da57600080fd5b506107f560048036038101906107f0919061341f565b611ad2565b005b6107ff611ce4565b73ffffffffffffffffffffffffffffffffffffffff1661081d611331565b73ffffffffffffffffffffffffffffffffffffffff1614610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086a90613502565b60405180910390fd5b81601360405161088290613579565b9081526020016040518091039020819055508060136040516108a3906135da565b9081526020016040518091039020819055505050565b6060600580546108c89061361e565b80601f01602080910402602001604051908101604052809291908181526020018280546108f49061361e565b80156109415780601f1061091657610100808354040283529160200191610941565b820191906000526020600020905b81548152906001019060200180831161092457829003601f168201915b5050505050905090565b600061095f610958611ce4565b8484611cec565b6001905092915050565b6000600454905090565b601660009054906101000a900460ff1681565b6000610993848484611eb5565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109de611ce4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a55906136c1565b60405180910390fd5b610a7285610a6a611ce4565b858403611cec565b60019150509392505050565b610a86611ce4565b73ffffffffffffffffffffffffffffffffffffffff16610aa4611331565b73ffffffffffffffffffffffffffffffffffffffff1614610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af190613502565b60405180910390fd5b816014604051610b0990613579565b908152602001604051809103902081905550806014604051610b2a906135da565b9081526020016040518091039020819055505050565b610b48611ce4565b73ffffffffffffffffffffffffffffffffffffffff16610b66611331565b73ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390613502565b60405180910390fd5b610beb6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611f30565b50565b60006012905090565b6000610c99610c04611ce4565b848460036000610c12611ce4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c949190613710565b611cec565b6001905092915050565b610cab611ce4565b73ffffffffffffffffffffffffffffffffffffffff16610cc9611331565b73ffffffffffffffffffffffffffffffffffffffff1614610d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1690613502565b60405180910390fd5b610d2761109f565b610d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5d90613790565b60405180910390fd5b610d6e612ac4565b565b610d78611ce4565b73ffffffffffffffffffffffffffffffffffffffff16610d96611331565b73ffffffffffffffffffffffffffffffffffffffff1614610dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de390613502565b60405180910390fd5b610df63382612b66565b50565b610e01611ce4565b73ffffffffffffffffffffffffffffffffffffffff16610e1f611331565b73ffffffffffffffffffffffffffffffffffffffff1614610e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6c90613502565b60405180910390fd5b610e7e81611736565b15610ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb590613822565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f21611ce4565b73ffffffffffffffffffffffffffffffffffffffff16610f3f611331565b73ffffffffffffffffffffffffffffffffffffffff1614610f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8c90613502565b60405180910390fd5b601660009054906101000a900460ff1615610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc9061388e565b60405180910390fd5b6001601660006101000a81548160ff021916908315150217905550565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555042600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b6000600760149054906101000a900460ff16905090565b6110be611ce4565b73ffffffffffffffffffffffffffffffffffffffff166110dc611331565b73ffffffffffffffffffffffffffffffffffffffff1614611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112990613502565b60405180910390fd5b6127108111611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d906138fa565b60405180910390fd5b670de0b6b3a76400008161118a919061391a565b600f8190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111e3611ce4565b73ffffffffffffffffffffffffffffffffffffffff16611201611331565b73ffffffffffffffffffffffffffffffffffffffff1614611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124e90613502565b60405180910390fd5b6112616000612d3c565b565b61126b611ce4565b73ffffffffffffffffffffffffffffffffffffffff16611289611331565b73ffffffffffffffffffffffffffffffffffffffff16146112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d690613502565b60405180910390fd5b6112e761109f565b15611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e906139ce565b60405180910390fd5b61132f612e02565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461136a9061361e565b80601f01602080910402602001604051908101604052809291908181526020018280546113969061361e565b80156113e35780601f106113b8576101008083540402835291602001916113e3565b820191906000526020600020905b8154815290600101906020018083116113c657829003601f168201915b5050505050905090565b600080600360006113fc611ce4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b090613a60565b60405180910390fd5b6114cd6114c4611ce4565b85858403611cec565b600191505092915050565b60006114ec6114e5611ce4565b8484611eb5565b6001905092915050565b6114fe611ce4565b73ffffffffffffffffffffffffffffffffffffffff1661151c611331565b73ffffffffffffffffffffffffffffffffffffffff1614611572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156990613502565b60405180910390fd5b61157b81611736565b6115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b190613acc565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c20600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116629190613710565b4210156116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90613b38565b60405180910390fd5b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b60026020528060005260406000206000915090505481565b60016020528060005260406000206000915054906101000a900460ff1681565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611794611ce4565b73ffffffffffffffffffffffffffffffffffffffff166117b2611331565b73ffffffffffffffffffffffffffffffffffffffff1614611808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ff90613502565b60405180910390fd5b601660009054906101000a900460ff16611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90613ba4565b60405180910390fd5b6000601660006101000a81548160ff021916908315150217905550565b61187c611ce4565b73ffffffffffffffffffffffffffffffffffffffff1661189a611331565b73ffffffffffffffffffffffffffffffffffffffff16146118f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e790613502565b60405180910390fd5b8060156040516118ff90613579565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119dd611ce4565b73ffffffffffffffffffffffffffffffffffffffff166119fb611331565b73ffffffffffffffffffffffffffffffffffffffff1614611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890613502565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790613c36565b60405180910390fd5b611ac981612d3c565b50565b600f5481565b611ada611ce4565b73ffffffffffffffffffffffffffffffffffffffff16611af8611331565b73ffffffffffffffffffffffffffffffffffffffff1614611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4590613502565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bd557611b8a611331565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611bcf573d6000803e3d6000fd5b50611ce1565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611c15919061345b565b602060405180830381865afa158015611c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c569190613c6b565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611c7c611331565b836040518363ffffffff1660e01b8152600401611c9a929190613c98565b6020604051808303816000875af1158015611cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdd9190613ced565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5290613d8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc190613e1e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ea8919061334d565b60405180910390a3505050565b611ebd61109f565b15611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490613eb0565b60405180910390fd5b601660009054906101000a900460ff1615611f2057611f1d838383611f30565b90505b611f2b838383612ea5565b505050565b600080600267ffffffffffffffff811115611f4e57611f4d613ed0565b5b604051908082528060200260200182016040528015611f7c5781602001602082028036833780820191505090505b5090503081600081518110611f9457611f93613eff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561203b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205f9190613f43565b8160018151811061207357612072613eff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120b685611736565b1580156120c957506120c784611736565b155b15612ab857600080600954856120df9190613f9f565b9050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff160361223a57601360405161214490613579565b9081526020016040518091039020548161215e919061391a565b826121699190613710565b91506013604051612179906135da565b90815260200160405180910390205481612193919061391a565b8261219e9190613710565b915060008211156121b5576121b4873084611eb5565b5b60136040516121c390613579565b908152602001604051809103902054816121dd919061391a565b601960008282546121ee9190613710565b925050819055506013604051612203906135da565b9081526020016040518091039020548161221d919061391a565b601a600082825461222e9190613710565b925050819055506129f9565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036129f857601460405161229d90613579565b908152602001604051809103902054816122b7919061391a565b826122c29190613710565b915060146040516122d2906135da565b908152602001604051809103902054816122ec919061391a565b826122f79190613710565b9150600082111561230e5761230d873084611eb5565b5b601460405161231c90613579565b90815260200160405180910390205481612336919061391a565b601960008282546123479190613710565b92505081905550601460405161235c906135da565b90815260200160405180910390205481612376919061391a565b601a60008282546123879190613710565b925050819055506000601a546019546123a09190613710565b9050600081036123b65785945050505050612abd565b6000601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f601a546019546124069190613710565b876040518363ffffffff1660e01b815260040161242492919061408e565b600060405180830381865afa158015612441573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061246a91906141d7565b60018151811061247d5761247c613eff565b5b60200260200101519050600a5481106129f557600047905060006002601a546124a69190613f9f565b6019546124b39190613710565b90506124e230601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611cec565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe58260008a30426040518663ffffffff1660e01b8152600401612546959493929190614265565b6000604051808303816000875af1158015612565573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061258e91906141d7565b506000824761259d91906142bf565b905060006002601a546125b09190613f9f565b90506000670de0b6b3a764000087670de0b6b3a76400006002601a546125d69190613f9f565b6125e0919061391a565b6125ea9190613f9f565b846125f5919061391a565b6125ff9190613f9f565b90506000670de0b6b3a764000088670de0b6b3a7640000601954612623919061391a565b61262d9190613f9f565b85612638919061391a565b6126429190613f9f565b905061267130601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611cec565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008060156040516126c3906135da565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612714969594939291906142f3565b60606040518083038185885af1158015612732573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127579190614354565b505050600083866127689190613710565b601a546019546127789190613710565b61278291906142bf565b905060008111156127d5576127d430601560405161279f90613579565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611eb5565b5b600060156040516127e590613579565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612837906143d8565b60006040518083038185875af1925050503d8060008114612874576040519150601f19603f3d011682016040523d82523d6000602084013e612879565b606091505b50509050806128bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b490614439565b60405180910390fd5b600084846128cb9190613710565b876128d691906142bf565b11156129dc57600060156040516128ec90613579565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16858561293d9190613710565b8861294891906142bf565b604051612954906143d8565b60006040518083038185875af1925050503d8060008114612991576040519150601f19603f3d011682016040523d82523d6000602084013e612996565b606091505b50509050806129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190614439565b60405180910390fd5b505b60006019819055506000601a8190555050505050505050505b50505b5b8185612a0591906142bf565b9450601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612ab557600f5485612a6988611193565b612a739190613710565b1115612ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aab906144a5565b60405180910390fd5b5b50505b829150505b9392505050565b612acc61109f565b612b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0290614511565b60405180910390fd5b6000600760146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612b4f611ce4565b604051612b5c919061345b565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bcc906145a3565b60405180910390fd5b612be182600083613124565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5e90614635565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160046000828254612cbe91906142bf565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d23919061334d565b60405180910390a3612d3783600084613129565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612e0a61109f565b15612e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e41906146a1565b60405180910390fd5b6001600760146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612e8e611ce4565b604051612e9b919061345b565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0b90614733565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f7a906147c5565b60405180910390fd5b612f8e838383613124565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300b90614857565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130a79190613710565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161310b919061334d565b60405180910390a361311e848484613129565b50505050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61315581613142565b811461316057600080fd5b50565b6000813590506131728161314c565b92915050565b6000806040838503121561318f5761318e613138565b5b600061319d85828601613163565b92505060206131ae85828601613163565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131f25780820151818401526020810190506131d7565b60008484015250505050565b6000601f19601f8301169050919050565b600061321a826131b8565b61322481856131c3565b93506132348185602086016131d4565b61323d816131fe565b840191505092915050565b60006020820190508181036000830152613262818461320f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132958261326a565b9050919050565b6132a58161328a565b81146132b057600080fd5b50565b6000813590506132c28161329c565b92915050565b600080604083850312156132df576132de613138565b5b60006132ed858286016132b3565b92505060206132fe85828601613163565b9150509250929050565b60008115159050919050565b61331d81613308565b82525050565b60006020820190506133386000830184613314565b92915050565b61334781613142565b82525050565b6000602082019050613362600083018461333e565b92915050565b60008060006060848603121561338157613380613138565b5b600061338f868287016132b3565b93505060206133a0868287016132b3565b92505060406133b186828701613163565b9150509250925092565b600060ff82169050919050565b6133d1816133bb565b82525050565b60006020820190506133ec60008301846133c8565b92915050565b60006020828403121561340857613407613138565b5b600061341684828501613163565b91505092915050565b60006020828403121561343557613434613138565b5b6000613443848285016132b3565b91505092915050565b6134558161328a565b82525050565b6000602082019050613470600083018461344c565b92915050565b6000806040838503121561348d5761348c613138565b5b600061349b858286016132b3565b92505060206134ac858286016132b3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134ec6020836131c3565b91506134f7826134b6565b602082019050919050565b6000602082019050818103600083015261351b816134df565b9050919050565b600081905092915050565b7f6465760000000000000000000000000000000000000000000000000000000000600082015250565b6000613563600383613522565b915061356e8261352d565b600382019050919050565b600061358482613556565b9150819050919050565b7f6c69717569646974790000000000000000000000000000000000000000000000600082015250565b60006135c4600983613522565b91506135cf8261358e565b600982019050919050565b60006135e5826135b7565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061363657607f821691505b602082108103613649576136486135ef565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006136ab6028836131c3565b91506136b68261364f565b604082019050919050565b600060208201905081810360008301526136da8161369e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061371b82613142565b915061372683613142565b925082820190508082111561373e5761373d6136e1565b5b92915050565b7f45524332303a20436f6e7472616374206973206e6f7420706175736564000000600082015250565b600061377a601d836131c3565b915061378582613744565b602082019050919050565b600060208201905081810360008301526137a98161376d565b9050919050565b7f45524332303a204163636f756e7420697320616c7265616479206578636c756460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b600061380c6022836131c3565b9150613817826137b0565b604082019050919050565b6000602082019050818103600083015261383b816137ff565b9050919050565b7f45524332303a2054617820697320616c726561647920656e61626c6564000000600082015250565b6000613878601d836131c3565b915061388382613842565b602082019050919050565b600060208201905081810360008301526138a78161386b565b9050919050565b7f4e4f207275672070756c6c000000000000000000000000000000000000000000600082015250565b60006138e4600b836131c3565b91506138ef826138ae565b602082019050919050565b60006020820190508181036000830152613913816138d7565b9050919050565b600061392582613142565b915061393083613142565b925082820261393e81613142565b91508282048414831517613955576139546136e1565b5b5092915050565b7f45524332303a20436f6e747261637420697320616c726561647920706175736560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006139b86021836131c3565b91506139c38261395c565b604082019050919050565b600060208201905081810360008301526139e7816139ab565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613a4a6025836131c3565b9150613a55826139ee565b604082019050919050565b60006020820190508181036000830152613a7981613a3d565b9050919050565b7f45524332303a204163636f756e74206973206e6f74206578636c756465640000600082015250565b6000613ab6601e836131c3565b9150613ac182613a80565b602082019050919050565b60006020820190508181036000830152613ae581613aa9565b9050919050565b7f4d7573742077616974203220686f75727320746f206469736368617267650000600082015250565b6000613b22601e836131c3565b9150613b2d82613aec565b602082019050919050565b60006020820190508181036000830152613b5181613b15565b9050919050565b7f45524332303a2054617820697320616c72656164792064697361626c65640000600082015250565b6000613b8e601e836131c3565b9150613b9982613b58565b602082019050919050565b60006020820190508181036000830152613bbd81613b81565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c206026836131c3565b9150613c2b82613bc4565b604082019050919050565b60006020820190508181036000830152613c4f81613c13565b9050919050565b600081519050613c658161314c565b92915050565b600060208284031215613c8157613c80613138565b5b6000613c8f84828501613c56565b91505092915050565b6000604082019050613cad600083018561344c565b613cba602083018461333e565b9392505050565b613cca81613308565b8114613cd557600080fd5b50565b600081519050613ce781613cc1565b92915050565b600060208284031215613d0357613d02613138565b5b6000613d1184828501613cd8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d766024836131c3565b9150613d8182613d1a565b604082019050919050565b60006020820190508181036000830152613da581613d69565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e086022836131c3565b9150613e1382613dac565b604082019050919050565b60006020820190508181036000830152613e3781613dfb565b9050919050565b7f45524332303a20746f6b656e207472616e73666572207768696c65207061757360008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e9a6022836131c3565b9150613ea582613e3e565b604082019050919050565b60006020820190508181036000830152613ec981613e8d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613f3d8161329c565b92915050565b600060208284031215613f5957613f58613138565b5b6000613f6784828501613f2e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613faa82613142565b9150613fb583613142565b925082613fc557613fc4613f70565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140058161328a565b82525050565b60006140178383613ffc565b60208301905092915050565b6000602082019050919050565b600061403b82613fd0565b6140458185613fdb565b935061405083613fec565b8060005b83811015614081578151614068888261400b565b975061407383614023565b925050600181019050614054565b5085935050505092915050565b60006040820190506140a3600083018561333e565b81810360208301526140b58184614030565b90509392505050565b600080fd5b6140cc826131fe565b810181811067ffffffffffffffff821117156140eb576140ea613ed0565b5b80604052505050565b60006140fe61312e565b905061410a82826140c3565b919050565b600067ffffffffffffffff82111561412a57614129613ed0565b5b602082029050602081019050919050565b600080fd5b600061415361414e8461410f565b6140f4565b905080838252602082019050602084028301858111156141765761417561413b565b5b835b8181101561419f578061418b8882613c56565b845260208401935050602081019050614178565b5050509392505050565b600082601f8301126141be576141bd6140be565b5b81516141ce848260208601614140565b91505092915050565b6000602082840312156141ed576141ec613138565b5b600082015167ffffffffffffffff81111561420b5761420a61313d565b5b614217848285016141a9565b91505092915050565b6000819050919050565b6000819050919050565b600061424f61424a61424584614220565b61422a565b613142565b9050919050565b61425f81614234565b82525050565b600060a08201905061427a600083018861333e565b6142876020830187614256565b81810360408301526142998186614030565b90506142a8606083018561344c565b6142b5608083018461333e565b9695505050505050565b60006142ca82613142565b91506142d583613142565b92508282039050818111156142ed576142ec6136e1565b5b92915050565b600060c082019050614308600083018961344c565b614315602083018861333e565b6143226040830187614256565b61432f6060830186614256565b61433c608083018561344c565b61434960a083018461333e565b979650505050505050565b60008060006060848603121561436d5761436c613138565b5b600061437b86828701613c56565b935050602061438c86828701613c56565b925050604061439d86828701613c56565b9150509250925092565b600081905092915050565b50565b60006143c26000836143a7565b91506143cd826143b2565b600082019050919050565b60006143e3826143b5565b9150819050919050565b7f7472616e7366657220746f20206465762077616c6c6574206661696c65640000600082015250565b6000614423601e836131c3565b915061442e826143ed565b602082019050919050565b6000602082019050818103600083015261445281614416565b9050919050565b7f6d617857616c6c6574206c696d69742065786365656465640000000000000000600082015250565b600061448f6018836131c3565b915061449a82614459565b602082019050919050565b600060208201905081810360008301526144be81614482565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006144fb6014836131c3565b9150614506826144c5565b602082019050919050565b6000602082019050818103600083015261452a816144ee565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061458d6021836131c3565b915061459882614531565b604082019050919050565b600060208201905081810360008301526145bc81614580565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061461f6022836131c3565b915061462a826145c3565b604082019050919050565b6000602082019050818103600083015261464e81614612565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b600061468b6010836131c3565b915061469682614655565b602082019050919050565b600060208201905081810360008301526146ba8161467e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061471d6025836131c3565b9150614728826146c1565b604082019050919050565b6000602082019050818103600083015261474c81614710565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006147af6023836131c3565b91506147ba82614753565b604082019050919050565b600060208201905081810360008301526147de816147a2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006148416026836131c3565b915061484c826147e5565b604082019050919050565b6000602082019050818103600083015261487081614834565b905091905056fea26469706673582212200d54a281353328836c8cce0abcf46b87662e0cfd0838e297e3d66eadc3147b9864736f6c63430008120033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000007506570656368750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055045434855000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102085760003560e01c806370a0823111610118578063b2885927116100a0578063d01dc84b1161006f578063d01dc84b14610714578063dd62ed3e1461073d578063f2fde38b1461077a578063f8b45b05146107a3578063f9d0831a146107ce5761020f565b8063b288592714610646578063c5a928ae14610683578063cba0e996146106c0578063ced695a4146106fd5761020f565b806395d89b41116100e757806395d89b4114610561578063a457c2d71461058c578063a9059cbb146105c9578063abe4f11d14610606578063afb090c81461062f5761020f565b806370a08231146104cb578063715018a6146105085780638456cb591461051f5780638da5cb5b146105365761020f565b8063313ce5671161019b5780634febf53d1161016a5780634febf53d1461042057806353eb3bcf1461044957806355161913146104605780635c975abb146104775780635d0044ca146104a25761020f565b8063313ce5671461037857806339509351146103a35780633f4ba83a146103e057806342966c68146103f75761020f565b806323a38a38116101d757806323a38a38146102d057806323b872dd146102fb578063247b912d146103385780632c32abc2146103615761020f565b806305a1f36d1461021457806306fdde031461023d578063095ea7b31461026857806318160ddd146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190613178565b6107f7565b005b34801561024957600080fd5b506102526108b9565b60405161025f9190613248565b60405180910390f35b34801561027457600080fd5b5061028f600480360381019061028a91906132c8565b61094b565b60405161029c9190613323565b60405180910390f35b3480156102b157600080fd5b506102ba610969565b6040516102c7919061334d565b60405180910390f35b3480156102dc57600080fd5b506102e5610973565b6040516102f29190613323565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190613368565b610986565b60405161032f9190613323565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190613178565b610a7e565b005b34801561036d57600080fd5b50610376610b40565b005b34801561038457600080fd5b5061038d610bee565b60405161039a91906133d7565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c591906132c8565b610bf7565b6040516103d79190613323565b60405180910390f35b3480156103ec57600080fd5b506103f5610ca3565b005b34801561040357600080fd5b5061041e600480360381019061041991906133f2565b610d70565b005b34801561042c57600080fd5b506104476004803603810190610442919061341f565b610df9565b005b34801561045557600080fd5b5061045e610f19565b005b34801561046c57600080fd5b50610475611002565b005b34801561048357600080fd5b5061048c61109f565b6040516104999190613323565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c491906133f2565b6110b6565b005b3480156104d757600080fd5b506104f260048036038101906104ed919061341f565b611193565b6040516104ff919061334d565b60405180910390f35b34801561051457600080fd5b5061051d6111db565b005b34801561052b57600080fd5b50610534611263565b005b34801561054257600080fd5b5061054b611331565b604051610558919061345b565b60405180910390f35b34801561056d57600080fd5b5061057661135b565b6040516105839190613248565b60405180910390f35b34801561059857600080fd5b506105b360048036038101906105ae91906132c8565b6113ed565b6040516105c09190613323565b60405180910390f35b3480156105d557600080fd5b506105f060048036038101906105eb91906132c8565b6114d8565b6040516105fd9190613323565b60405180910390f35b34801561061257600080fd5b5061062d6004803603810190610628919061341f565b6114f6565b005b34801561063b57600080fd5b50610644611615565b005b34801561065257600080fd5b5061066d6004803603810190610668919061341f565b6116fe565b60405161067a919061334d565b60405180910390f35b34801561068f57600080fd5b506106aa60048036038101906106a5919061341f565b611716565b6040516106b79190613323565b60405180910390f35b3480156106cc57600080fd5b506106e760048036038101906106e2919061341f565b611736565b6040516106f49190613323565b60405180910390f35b34801561070957600080fd5b5061071261178c565b005b34801561072057600080fd5b5061073b6004803603810190610736919061341f565b611874565b005b34801561074957600080fd5b50610764600480360381019061075f9190613476565b61194e565b604051610771919061334d565b60405180910390f35b34801561078657600080fd5b506107a1600480360381019061079c919061341f565b6119d5565b005b3480156107af57600080fd5b506107b8611acc565b6040516107c5919061334d565b60405180910390f35b3480156107da57600080fd5b506107f560048036038101906107f0919061341f565b611ad2565b005b6107ff611ce4565b73ffffffffffffffffffffffffffffffffffffffff1661081d611331565b73ffffffffffffffffffffffffffffffffffffffff1614610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086a90613502565b60405180910390fd5b81601360405161088290613579565b9081526020016040518091039020819055508060136040516108a3906135da565b9081526020016040518091039020819055505050565b6060600580546108c89061361e565b80601f01602080910402602001604051908101604052809291908181526020018280546108f49061361e565b80156109415780601f1061091657610100808354040283529160200191610941565b820191906000526020600020905b81548152906001019060200180831161092457829003601f168201915b5050505050905090565b600061095f610958611ce4565b8484611cec565b6001905092915050565b6000600454905090565b601660009054906101000a900460ff1681565b6000610993848484611eb5565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109de611ce4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a55906136c1565b60405180910390fd5b610a7285610a6a611ce4565b858403611cec565b60019150509392505050565b610a86611ce4565b73ffffffffffffffffffffffffffffffffffffffff16610aa4611331565b73ffffffffffffffffffffffffffffffffffffffff1614610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af190613502565b60405180910390fd5b816014604051610b0990613579565b908152602001604051809103902081905550806014604051610b2a906135da565b9081526020016040518091039020819055505050565b610b48611ce4565b73ffffffffffffffffffffffffffffffffffffffff16610b66611331565b73ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390613502565b60405180910390fd5b610beb6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611f30565b50565b60006012905090565b6000610c99610c04611ce4565b848460036000610c12611ce4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c949190613710565b611cec565b6001905092915050565b610cab611ce4565b73ffffffffffffffffffffffffffffffffffffffff16610cc9611331565b73ffffffffffffffffffffffffffffffffffffffff1614610d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1690613502565b60405180910390fd5b610d2761109f565b610d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5d90613790565b60405180910390fd5b610d6e612ac4565b565b610d78611ce4565b73ffffffffffffffffffffffffffffffffffffffff16610d96611331565b73ffffffffffffffffffffffffffffffffffffffff1614610dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de390613502565b60405180910390fd5b610df63382612b66565b50565b610e01611ce4565b73ffffffffffffffffffffffffffffffffffffffff16610e1f611331565b73ffffffffffffffffffffffffffffffffffffffff1614610e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6c90613502565b60405180910390fd5b610e7e81611736565b15610ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb590613822565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f21611ce4565b73ffffffffffffffffffffffffffffffffffffffff16610f3f611331565b73ffffffffffffffffffffffffffffffffffffffff1614610f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8c90613502565b60405180910390fd5b601660009054906101000a900460ff1615610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc9061388e565b60405180910390fd5b6001601660006101000a81548160ff021916908315150217905550565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555042600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b6000600760149054906101000a900460ff16905090565b6110be611ce4565b73ffffffffffffffffffffffffffffffffffffffff166110dc611331565b73ffffffffffffffffffffffffffffffffffffffff1614611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112990613502565b60405180910390fd5b6127108111611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d906138fa565b60405180910390fd5b670de0b6b3a76400008161118a919061391a565b600f8190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111e3611ce4565b73ffffffffffffffffffffffffffffffffffffffff16611201611331565b73ffffffffffffffffffffffffffffffffffffffff1614611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124e90613502565b60405180910390fd5b6112616000612d3c565b565b61126b611ce4565b73ffffffffffffffffffffffffffffffffffffffff16611289611331565b73ffffffffffffffffffffffffffffffffffffffff16146112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d690613502565b60405180910390fd5b6112e761109f565b15611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e906139ce565b60405180910390fd5b61132f612e02565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461136a9061361e565b80601f01602080910402602001604051908101604052809291908181526020018280546113969061361e565b80156113e35780601f106113b8576101008083540402835291602001916113e3565b820191906000526020600020905b8154815290600101906020018083116113c657829003601f168201915b5050505050905090565b600080600360006113fc611ce4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b090613a60565b60405180910390fd5b6114cd6114c4611ce4565b85858403611cec565b600191505092915050565b60006114ec6114e5611ce4565b8484611eb5565b6001905092915050565b6114fe611ce4565b73ffffffffffffffffffffffffffffffffffffffff1661151c611331565b73ffffffffffffffffffffffffffffffffffffffff1614611572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156990613502565b60405180910390fd5b61157b81611736565b6115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b190613acc565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c20600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116629190613710565b4210156116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90613b38565b60405180910390fd5b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b60026020528060005260406000206000915090505481565b60016020528060005260406000206000915054906101000a900460ff1681565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611794611ce4565b73ffffffffffffffffffffffffffffffffffffffff166117b2611331565b73ffffffffffffffffffffffffffffffffffffffff1614611808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ff90613502565b60405180910390fd5b601660009054906101000a900460ff16611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90613ba4565b60405180910390fd5b6000601660006101000a81548160ff021916908315150217905550565b61187c611ce4565b73ffffffffffffffffffffffffffffffffffffffff1661189a611331565b73ffffffffffffffffffffffffffffffffffffffff16146118f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e790613502565b60405180910390fd5b8060156040516118ff90613579565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119dd611ce4565b73ffffffffffffffffffffffffffffffffffffffff166119fb611331565b73ffffffffffffffffffffffffffffffffffffffff1614611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890613502565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790613c36565b60405180910390fd5b611ac981612d3c565b50565b600f5481565b611ada611ce4565b73ffffffffffffffffffffffffffffffffffffffff16611af8611331565b73ffffffffffffffffffffffffffffffffffffffff1614611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4590613502565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bd557611b8a611331565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611bcf573d6000803e3d6000fd5b50611ce1565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611c15919061345b565b602060405180830381865afa158015611c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c569190613c6b565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611c7c611331565b836040518363ffffffff1660e01b8152600401611c9a929190613c98565b6020604051808303816000875af1158015611cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdd9190613ced565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5290613d8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc190613e1e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ea8919061334d565b60405180910390a3505050565b611ebd61109f565b15611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490613eb0565b60405180910390fd5b601660009054906101000a900460ff1615611f2057611f1d838383611f30565b90505b611f2b838383612ea5565b505050565b600080600267ffffffffffffffff811115611f4e57611f4d613ed0565b5b604051908082528060200260200182016040528015611f7c5781602001602082028036833780820191505090505b5090503081600081518110611f9457611f93613eff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561203b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205f9190613f43565b8160018151811061207357612072613eff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120b685611736565b1580156120c957506120c784611736565b155b15612ab857600080600954856120df9190613f9f565b9050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff160361223a57601360405161214490613579565b9081526020016040518091039020548161215e919061391a565b826121699190613710565b91506013604051612179906135da565b90815260200160405180910390205481612193919061391a565b8261219e9190613710565b915060008211156121b5576121b4873084611eb5565b5b60136040516121c390613579565b908152602001604051809103902054816121dd919061391a565b601960008282546121ee9190613710565b925050819055506013604051612203906135da565b9081526020016040518091039020548161221d919061391a565b601a600082825461222e9190613710565b925050819055506129f9565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036129f857601460405161229d90613579565b908152602001604051809103902054816122b7919061391a565b826122c29190613710565b915060146040516122d2906135da565b908152602001604051809103902054816122ec919061391a565b826122f79190613710565b9150600082111561230e5761230d873084611eb5565b5b601460405161231c90613579565b90815260200160405180910390205481612336919061391a565b601960008282546123479190613710565b92505081905550601460405161235c906135da565b90815260200160405180910390205481612376919061391a565b601a60008282546123879190613710565b925050819055506000601a546019546123a09190613710565b9050600081036123b65785945050505050612abd565b6000601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f601a546019546124069190613710565b876040518363ffffffff1660e01b815260040161242492919061408e565b600060405180830381865afa158015612441573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061246a91906141d7565b60018151811061247d5761247c613eff565b5b60200260200101519050600a5481106129f557600047905060006002601a546124a69190613f9f565b6019546124b39190613710565b90506124e230601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611cec565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe58260008a30426040518663ffffffff1660e01b8152600401612546959493929190614265565b6000604051808303816000875af1158015612565573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061258e91906141d7565b506000824761259d91906142bf565b905060006002601a546125b09190613f9f565b90506000670de0b6b3a764000087670de0b6b3a76400006002601a546125d69190613f9f565b6125e0919061391a565b6125ea9190613f9f565b846125f5919061391a565b6125ff9190613f9f565b90506000670de0b6b3a764000088670de0b6b3a7640000601954612623919061391a565b61262d9190613f9f565b85612638919061391a565b6126429190613f9f565b905061267130601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611cec565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008060156040516126c3906135da565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612714969594939291906142f3565b60606040518083038185885af1158015612732573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127579190614354565b505050600083866127689190613710565b601a546019546127789190613710565b61278291906142bf565b905060008111156127d5576127d430601560405161279f90613579565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611eb5565b5b600060156040516127e590613579565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612837906143d8565b60006040518083038185875af1925050503d8060008114612874576040519150601f19603f3d011682016040523d82523d6000602084013e612879565b606091505b50509050806128bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b490614439565b60405180910390fd5b600084846128cb9190613710565b876128d691906142bf565b11156129dc57600060156040516128ec90613579565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16858561293d9190613710565b8861294891906142bf565b604051612954906143d8565b60006040518083038185875af1925050503d8060008114612991576040519150601f19603f3d011682016040523d82523d6000602084013e612996565b606091505b50509050806129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190614439565b60405180910390fd5b505b60006019819055506000601a8190555050505050505050505b50505b5b8185612a0591906142bf565b9450601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614612ab557600f5485612a6988611193565b612a739190613710565b1115612ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aab906144a5565b60405180910390fd5b5b50505b829150505b9392505050565b612acc61109f565b612b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0290614511565b60405180910390fd5b6000600760146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612b4f611ce4565b604051612b5c919061345b565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bcc906145a3565b60405180910390fd5b612be182600083613124565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5e90614635565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160046000828254612cbe91906142bf565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d23919061334d565b60405180910390a3612d3783600084613129565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612e0a61109f565b15612e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e41906146a1565b60405180910390fd5b6001600760146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612e8e611ce4565b604051612e9b919061345b565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0b90614733565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f7a906147c5565b60405180910390fd5b612f8e838383613124565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300b90614857565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130a79190613710565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161310b919061334d565b60405180910390a361311e848484613129565b50505050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61315581613142565b811461316057600080fd5b50565b6000813590506131728161314c565b92915050565b6000806040838503121561318f5761318e613138565b5b600061319d85828601613163565b92505060206131ae85828601613163565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131f25780820151818401526020810190506131d7565b60008484015250505050565b6000601f19601f8301169050919050565b600061321a826131b8565b61322481856131c3565b93506132348185602086016131d4565b61323d816131fe565b840191505092915050565b60006020820190508181036000830152613262818461320f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132958261326a565b9050919050565b6132a58161328a565b81146132b057600080fd5b50565b6000813590506132c28161329c565b92915050565b600080604083850312156132df576132de613138565b5b60006132ed858286016132b3565b92505060206132fe85828601613163565b9150509250929050565b60008115159050919050565b61331d81613308565b82525050565b60006020820190506133386000830184613314565b92915050565b61334781613142565b82525050565b6000602082019050613362600083018461333e565b92915050565b60008060006060848603121561338157613380613138565b5b600061338f868287016132b3565b93505060206133a0868287016132b3565b92505060406133b186828701613163565b9150509250925092565b600060ff82169050919050565b6133d1816133bb565b82525050565b60006020820190506133ec60008301846133c8565b92915050565b60006020828403121561340857613407613138565b5b600061341684828501613163565b91505092915050565b60006020828403121561343557613434613138565b5b6000613443848285016132b3565b91505092915050565b6134558161328a565b82525050565b6000602082019050613470600083018461344c565b92915050565b6000806040838503121561348d5761348c613138565b5b600061349b858286016132b3565b92505060206134ac858286016132b3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134ec6020836131c3565b91506134f7826134b6565b602082019050919050565b6000602082019050818103600083015261351b816134df565b9050919050565b600081905092915050565b7f6465760000000000000000000000000000000000000000000000000000000000600082015250565b6000613563600383613522565b915061356e8261352d565b600382019050919050565b600061358482613556565b9150819050919050565b7f6c69717569646974790000000000000000000000000000000000000000000000600082015250565b60006135c4600983613522565b91506135cf8261358e565b600982019050919050565b60006135e5826135b7565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061363657607f821691505b602082108103613649576136486135ef565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006136ab6028836131c3565b91506136b68261364f565b604082019050919050565b600060208201905081810360008301526136da8161369e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061371b82613142565b915061372683613142565b925082820190508082111561373e5761373d6136e1565b5b92915050565b7f45524332303a20436f6e7472616374206973206e6f7420706175736564000000600082015250565b600061377a601d836131c3565b915061378582613744565b602082019050919050565b600060208201905081810360008301526137a98161376d565b9050919050565b7f45524332303a204163636f756e7420697320616c7265616479206578636c756460008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b600061380c6022836131c3565b9150613817826137b0565b604082019050919050565b6000602082019050818103600083015261383b816137ff565b9050919050565b7f45524332303a2054617820697320616c726561647920656e61626c6564000000600082015250565b6000613878601d836131c3565b915061388382613842565b602082019050919050565b600060208201905081810360008301526138a78161386b565b9050919050565b7f4e4f207275672070756c6c000000000000000000000000000000000000000000600082015250565b60006138e4600b836131c3565b91506138ef826138ae565b602082019050919050565b60006020820190508181036000830152613913816138d7565b9050919050565b600061392582613142565b915061393083613142565b925082820261393e81613142565b91508282048414831517613955576139546136e1565b5b5092915050565b7f45524332303a20436f6e747261637420697320616c726561647920706175736560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006139b86021836131c3565b91506139c38261395c565b604082019050919050565b600060208201905081810360008301526139e7816139ab565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613a4a6025836131c3565b9150613a55826139ee565b604082019050919050565b60006020820190508181036000830152613a7981613a3d565b9050919050565b7f45524332303a204163636f756e74206973206e6f74206578636c756465640000600082015250565b6000613ab6601e836131c3565b9150613ac182613a80565b602082019050919050565b60006020820190508181036000830152613ae581613aa9565b9050919050565b7f4d7573742077616974203220686f75727320746f206469736368617267650000600082015250565b6000613b22601e836131c3565b9150613b2d82613aec565b602082019050919050565b60006020820190508181036000830152613b5181613b15565b9050919050565b7f45524332303a2054617820697320616c72656164792064697361626c65640000600082015250565b6000613b8e601e836131c3565b9150613b9982613b58565b602082019050919050565b60006020820190508181036000830152613bbd81613b81565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c206026836131c3565b9150613c2b82613bc4565b604082019050919050565b60006020820190508181036000830152613c4f81613c13565b9050919050565b600081519050613c658161314c565b92915050565b600060208284031215613c8157613c80613138565b5b6000613c8f84828501613c56565b91505092915050565b6000604082019050613cad600083018561344c565b613cba602083018461333e565b9392505050565b613cca81613308565b8114613cd557600080fd5b50565b600081519050613ce781613cc1565b92915050565b600060208284031215613d0357613d02613138565b5b6000613d1184828501613cd8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d766024836131c3565b9150613d8182613d1a565b604082019050919050565b60006020820190508181036000830152613da581613d69565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e086022836131c3565b9150613e1382613dac565b604082019050919050565b60006020820190508181036000830152613e3781613dfb565b9050919050565b7f45524332303a20746f6b656e207472616e73666572207768696c65207061757360008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e9a6022836131c3565b9150613ea582613e3e565b604082019050919050565b60006020820190508181036000830152613ec981613e8d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613f3d8161329c565b92915050565b600060208284031215613f5957613f58613138565b5b6000613f6784828501613f2e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613faa82613142565b9150613fb583613142565b925082613fc557613fc4613f70565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140058161328a565b82525050565b60006140178383613ffc565b60208301905092915050565b6000602082019050919050565b600061403b82613fd0565b6140458185613fdb565b935061405083613fec565b8060005b83811015614081578151614068888261400b565b975061407383614023565b925050600181019050614054565b5085935050505092915050565b60006040820190506140a3600083018561333e565b81810360208301526140b58184614030565b90509392505050565b600080fd5b6140cc826131fe565b810181811067ffffffffffffffff821117156140eb576140ea613ed0565b5b80604052505050565b60006140fe61312e565b905061410a82826140c3565b919050565b600067ffffffffffffffff82111561412a57614129613ed0565b5b602082029050602081019050919050565b600080fd5b600061415361414e8461410f565b6140f4565b905080838252602082019050602084028301858111156141765761417561413b565b5b835b8181101561419f578061418b8882613c56565b845260208401935050602081019050614178565b5050509392505050565b600082601f8301126141be576141bd6140be565b5b81516141ce848260208601614140565b91505092915050565b6000602082840312156141ed576141ec613138565b5b600082015167ffffffffffffffff81111561420b5761420a61313d565b5b614217848285016141a9565b91505092915050565b6000819050919050565b6000819050919050565b600061424f61424a61424584614220565b61422a565b613142565b9050919050565b61425f81614234565b82525050565b600060a08201905061427a600083018861333e565b6142876020830187614256565b81810360408301526142998186614030565b90506142a8606083018561344c565b6142b5608083018461333e565b9695505050505050565b60006142ca82613142565b91506142d583613142565b92508282039050818111156142ed576142ec6136e1565b5b92915050565b600060c082019050614308600083018961344c565b614315602083018861333e565b6143226040830187614256565b61432f6060830186614256565b61433c608083018561344c565b61434960a083018461333e565b979650505050505050565b60008060006060848603121561436d5761436c613138565b5b600061437b86828701613c56565b935050602061438c86828701613c56565b925050604061439d86828701613c56565b9150509250925092565b600081905092915050565b50565b60006143c26000836143a7565b91506143cd826143b2565b600082019050919050565b60006143e3826143b5565b9150819050919050565b7f7472616e7366657220746f20206465762077616c6c6574206661696c65640000600082015250565b6000614423601e836131c3565b915061442e826143ed565b602082019050919050565b6000602082019050818103600083015261445281614416565b9050919050565b7f6d617857616c6c6574206c696d69742065786365656465640000000000000000600082015250565b600061448f6018836131c3565b915061449a82614459565b602082019050919050565b600060208201905081810360008301526144be81614482565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006144fb6014836131c3565b9150614506826144c5565b602082019050919050565b6000602082019050818103600083015261452a816144ee565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061458d6021836131c3565b915061459882614531565b604082019050919050565b600060208201905081810360008301526145bc81614580565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061461f6022836131c3565b915061462a826145c3565b604082019050919050565b6000602082019050818103600083015261464e81614612565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b600061468b6010836131c3565b915061469682614655565b602082019050919050565b600060208201905081810360008301526146ba8161467e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061471d6025836131c3565b9150614728826146c1565b604082019050919050565b6000602082019050818103600083015261474c81614710565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006147af6023836131c3565b91506147ba82614753565b604082019050919050565b600060208201905081810360008301526147de816147a2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006148416026836131c3565b915061484c826147e5565b604082019050919050565b6000602082019050818103600083015261487081614834565b905091905056fea26469706673582212200d54a281353328836c8cce0abcf46b87662e0cfd0838e297e3d66eadc3147b9864736f6c63430008120033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000007506570656368750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055045434855000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _tokenName (string): Pepechu
Arg [1] : _tokenSymbol (string): PECHU
Arg [2] : _supply (uint256): 1000000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [4] : 5065706563687500000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 5045434855000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

16584:9263:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24511:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1845:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2789:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2181:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17332:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2976:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24689:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23420:106;;;;;;;;;;;;;:::i;:::-;;2074:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3482:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23684:126;;;;;;;;;;;;;:::i;:::-;;23996:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24126:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25368:136;;;;;;;;;;;;;:::i;:::-;;4878:128;;;;;;;;;;;;;:::i;:::-;;8053:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23826:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2301:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7333:94;;;;;;;;;;;;;:::i;:::-;;23544:127;;;;;;;;;;;;;:::i;:::-;;7099:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1957:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3711:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2436:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24317:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5014:186;;;;;;;;;;;;;:::i;:::-;;1482:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1433:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25685:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25522:138;;;;;;;;;;;;;:::i;:::-;;24874:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2625:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7441:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16959:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24987:363;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24511:160;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24607:3:::1;24589:8;:15;;;;;:::i;:::-;;;;;;;;;;;;;:21;;;;24645:9;24621:8;:21;;;;;:::i;:::-;;;;;;;;;;;;;:33;;;;24511:160:::0;;:::o;1845:100::-;1899:13;1932:5;1925:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1845:100;:::o;2789:169::-;2872:4;2889:39;2898:12;:10;:12::i;:::-;2912:7;2921:6;2889:8;:39::i;:::-;2946:4;2939:11;;2789:169;;;;:::o;2181:108::-;2242:7;2269:12;;2262:19;;2181:108;:::o;17332:28::-;;;;;;;;;;;;;:::o;2976:492::-;3116:4;3133:36;3143:6;3151:9;3162:6;3133:9;:36::i;:::-;3182:24;3209:11;:19;3221:6;3209:19;;;;;;;;;;;;;;;:33;3229:12;:10;:12::i;:::-;3209:33;;;;;;;;;;;;;;;;3182:60;;3281:6;3261:16;:26;;3253:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3368:57;3377:6;3385:12;:10;:12::i;:::-;3418:6;3399:16;:25;3368:8;:57::i;:::-;3456:4;3449:11;;;2976:492;;;;;:::o;24689:167::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24790:3:::1;24771:9;:16;;;;;:::i;:::-;;;;;;;;;;;;;:22;;;;24829:9;24804;:22;;;;;:::i;:::-;;;;;;;;;;;;;:34;;;;24689:167:::0;;:::o;23420:106::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23470:48:::1;23488:1;23500:13;;;;;;;;;;;23516:1;23470:9;:48::i;:::-;;23420:106::o:0;2074:93::-;2132:5;2157:2;2150:9;;2074:93;:::o;3482:215::-;3570:4;3587:80;3596:12;:10;:12::i;:::-;3610:7;3656:10;3619:11;:25;3631:12;:10;:12::i;:::-;3619:25;;;;;;;;;;;;;;;:34;3645:7;3619:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3587:8;:80::i;:::-;3685:4;3678:11;;3482:215;;;;:::o;23684:126::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23739:8:::1;:6;:8::i;:::-;23731:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;23792:10;:8;:10::i;:::-;23684:126::o:0;23996:91::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24054:25:::1;24060:10;24072:6;24054:5;:25::i;:::-;23996:91:::0;:::o;24126:175::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24197:19:::1;24208:7;24197:10;:19::i;:::-;24196:20;24188:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24289:4;24266:11;:20;24278:7;24266:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;24126:175:::0;:::o;25368:136::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25426:9:::1;;;;;;;;;;;25425:10;25417:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;25492:4;25480:9;;:16;;;;;;;;;;;;;;;;;;25368:136::o:0;4878:128::-;4939:4;4914:10;:22;4925:10;4914:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;4983:15;4954:14;:26;4969:10;4954:26;;;;;;;;;;;;;;;:44;;;;4878:128::o;8053:86::-;8100:4;8124:7;;;;;;;;;;;8117:14;;8053:86;:::o;23826:154::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23913:5:::1;23904:6;:14;23895:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;23966:6;23957;:15;;;;:::i;:::-;23945:9;:27;;;;23826:154:::0;:::o;2301:127::-;2375:7;2402:9;:18;2412:7;2402:18;;;;;;;;;;;;;;;;2395:25;;2301:127;;;:::o;7333:94::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7398:21:::1;7416:1;7398:9;:21::i;:::-;7333:94::o:0;23544:127::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23598:8:::1;:6;:8::i;:::-;23597:9;23589:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;23655:8;:6;:8::i;:::-;23544:127::o:0;7099:87::-;7145:7;7172:6;;;;;;;;;;;7165:13;;7099:87;:::o;1957:104::-;2013:13;2046:7;2039:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1957:104;:::o;3711:413::-;3804:4;3821:24;3848:11;:25;3860:12;:10;:12::i;:::-;3848:25;;;;;;;;;;;;;;;:34;3874:7;3848:34;;;;;;;;;;;;;;;;3821:61;;3921:15;3901:16;:35;;3893:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4014:67;4023:12;:10;:12::i;:::-;4037:7;4065:15;4046:16;:34;4014:8;:67::i;:::-;4112:4;4105:11;;;3711:413;;;;:::o;2436:175::-;2522:4;2539:42;2549:12;:10;:12::i;:::-;2563:9;2574:6;2539:9;:42::i;:::-;2599:4;2592:11;;2436:175;;;;:::o;24317:177::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24393:19:::1;24404:7;24393:10;:19::i;:::-;24385:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;24481:5;24458:11;:20;24470:7;24458:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;24317:177:::0;:::o;5014:186::-;5109:7;5080:14;:26;5095:10;5080:26;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;5061:15;:55;;5053:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;5187:5;5162:10;:22;5173:10;5162:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;5014:186::o;1482:49::-;;;;;;;;;;;;;;;;;:::o;1433:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;25685:110::-;25743:4;25767:11;:20;25779:7;25767:20;;;;;;;;;;;;;;;;;;;;;;;;;25760:27;;25685:110;;;:::o;25522:138::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25580:9:::1;;;;;;;;;;;25572:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;25647:5;25635:9;;:17;;;;;;;;;;;;;;;;;;25522:138::o:0;24874:105::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24958:3:::1;24938:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;24874:105:::0;:::o;2625:151::-;2714:7;2741:11;:18;2753:5;2741:18;;;;;;;;;;;;;;;:27;2760:7;2741:27;;;;;;;;;;;;;;;;2734:34;;2625:151;;;;:::o;7441:192::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7550:1:::1;7530:22;;:8;:22;;::::0;7522:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7606:19;7616:8;7606:9;:19::i;:::-;7441:192:::0;:::o;16959:24::-;;;;:::o;24987:363::-;7251:12;:10;:12::i;:::-;7240:23;;:7;:5;:7::i;:::-;:23;;;7232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25084:3:::1;25066:22;;:6;:22;;::::0;25062:124:::1;;25113:7;:5;:7::i;:::-;25105:25;;:48;25131:21;25105:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;25168:7;;25062:124;25196:17;25223:6;25196:34;;25241:15;25259:10;:20;;;25288:4;25259:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25241:53;;25305:10;:19;;;25325:7;:5;:7::i;:::-;25334;25305:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25048:302;;7311:1;24987:363:::0;:::o;1108:98::-;1161:7;1188:10;1181:17;;1108:98;:::o;6228:380::-;6381:1;6364:19;;:5;:19;;;6356:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6462:1;6443:21;;:7;:21;;;6435:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6546:6;6516:11;:18;6528:5;6516:18;;;;;;;;;;;;;;;:27;6535:7;6516:27;;;;;;;;;;;;;;;:36;;;;6584:7;6568:32;;6577:5;6568:32;;;6593:6;6568:32;;;;;;:::i;:::-;;;;;;;;6228:380;;;:::o;23025:378::-;23175:8;:6;:8::i;:::-;23174:9;23166:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;23255:9;;;;;;;;;;;23252:89;;;23290:36;23300:6;23308:9;23319:6;23290:9;:36::i;:::-;23281:45;;23252:89;23353:42;23369:6;23377:9;23388:6;23353:15;:42::i;:::-;23025:378;;;:::o;18552:4461::-;18630:7;18650:25;18692:1;18678:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18650:44;;18727:4;18705:8;18714:1;18705:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;;;18757:17;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18743:8;18752:1;18743:11;;;;;;;;:::i;:::-;;;;;;;:38;;;;;;;;;;;18806:16;18817:4;18806:10;:16::i;:::-;18805:17;:36;;;;;18827:14;18838:2;18827:10;:14::i;:::-;18826:15;18805:36;18802:4170;;;18858:11;18884:16;18912:11;;18903:6;:20;;;;:::i;:::-;18884:39;;18957:13;;;;;;;;;;;18941:30;;:4;:30;;;18938:3814;;19010:8;:15;;;;;:::i;:::-;;;;;;;;;;;;;;18999:8;:26;;;;:::i;:::-;18992:33;;;;;:::i;:::-;;;19062:8;:21;;;;;:::i;:::-;;;;;;;;;;;;;;19051:8;:32;;;;:::i;:::-;19044:39;;;;;:::i;:::-;;;19146:1;19140:3;:7;19137:93;;;19172:35;19182:4;19196;19203:3;19172:9;:35::i;:::-;19137:93;19308:8;:15;;;;;:::i;:::-;;;;;;;;;;;;;;19297:8;:26;;;;:::i;:::-;19284:9;;:39;;;;;;;:::i;:::-;;;;;;;;19372:8;:21;;;;;:::i;:::-;;;;;;;;;;;;;;19361:8;:32;;;;:::i;:::-;19342:15;;:51;;;;;;;:::i;:::-;;;;;;;;18938:3814;;;19434:13;;;;;;;;;;;19420:28;;:2;:28;;;19417:3335;;19505:9;:16;;;;;:::i;:::-;;;;;;;;;;;;;;19494:8;:27;;;;:::i;:::-;19487:34;;;;;:::i;:::-;;;19558:9;:22;;;;;:::i;:::-;;;;;;;;;;;;;;19547:8;:33;;;;:::i;:::-;19540:40;;;;;:::i;:::-;;;19644:1;19638:3;:7;19635:93;;;19670:35;19680:4;19694;19701:3;19670:9;:35::i;:::-;19635:93;19805:9;:16;;;;;:::i;:::-;;;;;;;;;;;;;;19794:8;:27;;;;:::i;:::-;19781:9;;:40;;;;;;;:::i;:::-;;;;;;;;19870:9;:22;;;;;:::i;:::-;;;;;;;;;;;;;;19859:8;:33;;;;:::i;:::-;19840:15;;:52;;;;;;;:::i;:::-;;;;;;;;19947:14;19977:15;;19965:9;;:27;;;;:::i;:::-;19947:45;;20042:1;20032:6;:11;20029:29;;20052:6;20045:13;;;;;;;;20029:29;20095:16;20114:17;;;;;;;;;;;:31;;;20159:15;;20147:9;;:27;;;;:::i;:::-;20176:8;20114:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20186:1;20114:74;;;;;;;;:::i;:::-;;;;;;;;20095:93;;20240:13;;20228:8;:25;20225:2494;;20278:20;20301:21;20278:44;;20347:14;20394:1;20376:15;;:19;;;;:::i;:::-;20364:9;;:31;;;;:::i;:::-;20347:48;;20441:59;20458:4;20473:17;;;;;;;;;;;20493:6;20441:8;:59::i;:::-;20537:17;;;;;;;;;;;:39;;;20603:6;20636:1;20664:8;20707:4;20739:15;20537:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20822:17;20866:12;20842:21;:36;;;;:::i;:::-;20822:56;;20923:22;20966:1;20948:15;;:19;;;;:::i;:::-;20923:44;;20990:20;21071:6;21060;21050;21046:1;21028:15;;:19;;;;:::i;:::-;:28;;;;:::i;:::-;21027:39;;;;:::i;:::-;21014:9;:53;;;;:::i;:::-;21013:64;;;;:::i;:::-;20990:87;;21144:14;21209:6;21198;21188;21176:9;;:18;;;;:::i;:::-;21175:29;;;;:::i;:::-;21162:9;:43;;;;:::i;:::-;21161:54;;;;:::i;:::-;21144:71;;21281:67;21298:4;21313:17;;;;;;;;;;;21333:14;21281:8;:67::i;:::-;21393:17;;;;;;;;;;;:33;;;21434:12;21482:4;21514:14;21555:1;21583;21611:10;:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21661:15;21393:306;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21744:23;21812:14;21803:6;:23;;;;:::i;:::-;21783:15;;21771:9;;:27;;;;:::i;:::-;21770:57;;;;:::i;:::-;21744:83;;21893:1;21875:15;:19;21872:135;;;21923:60;21941:4;21948:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21967:15;21923:9;:60::i;:::-;21872:135;22073:12;22090:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:22;;22120:6;22090:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22072:59;;;22161:7;22153:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;22312:1;22296:12;22287:6;:21;;;;:::i;:::-;22273:9;:36;;;;:::i;:::-;:40;22270:262;;;22342:13;22360:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:22;;22412:12;22403:6;:21;;;;:::i;:::-;22390:9;:35;;;;:::i;:::-;22360:70;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22341:89;;;22465:8;22457:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;22315:217;22270:262;22634:1;22622:9;:13;;;;22676:1;22658:15;:19;;;;20255:2464;;;;;;;;20225:2494;19450:3302;;19417:3335;18938:3814;22790:3;22780:13;;;;;:::i;:::-;;;22826;;;;;;;;;;;22812:28;;:2;:28;;;22808:140;;22894:9;;22884:6;22868:13;22878:2;22868:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;22860:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;22808:140;18843:4129;;18802:4170;22999:6;22992:13;;;18552:4461;;;;;;:::o;8494:120::-;8298:8;:6;:8::i;:::-;8290:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8563:5:::1;8553:7;;:15;;;;;;;;;;;;;;;;;;8584:22;8593:12;:10;:12::i;:::-;8584:22;;;;;;:::i;:::-;;;;;;;;8494:120::o:0;5624:591::-;5727:1;5708:21;;:7;:21;;;5700:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5780:49;5801:7;5818:1;5822:6;5780:20;:49::i;:::-;5842:22;5867:9;:18;5877:7;5867:18;;;;;;;;;;;;;;;;5842:43;;5922:6;5904:14;:24;;5896:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6041:6;6024:14;:23;6003:9;:18;6013:7;6003:18;;;;;;;;;;;;;;;:44;;;;6085:6;6069:12;;:22;;;;;;;:::i;:::-;;;;;;;;6135:1;6109:37;;6118:7;6109:37;;;6139:6;6109:37;;;;;;:::i;:::-;;;;;;;;6159:48;6179:7;6196:1;6200:6;6159:19;:48::i;:::-;5689:526;5624:591;;:::o;7641:174::-;7698:16;7717:6;;;;;;;;;;;7698:25;;7743:8;7734:6;;:17;;;;;;;;;;;;;;;;;;7798:8;7767:40;;7788:8;7767:40;;;;;;;;;;;;7687:128;7641:174;:::o;8364:118::-;8196:8;:6;:8::i;:::-;8195:9;8187:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8434:4:::1;8424:7;;:14;;;;;;;;;;;;;;;;;;8454:20;8461:12;:10;:12::i;:::-;8454:20;;;;;;:::i;:::-;;;;;;;;8364:118::o:0;4137:733::-;4295:1;4277:20;;:6;:20;;;4269:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4379:1;4358:23;;:9;:23;;;4350:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4434:47;4455:6;4463:9;4474:6;4434:20;:47::i;:::-;4494:21;4518:9;:17;4528:6;4518:17;;;;;;;;;;;;;;;;4494:41;;4571:6;4554:13;:23;;4546:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4692:6;4676:13;:22;4656:9;:17;4666:6;4656:17;;;;;;;;;;;;;;;:42;;;;4744:6;4720:9;:20;4730:9;4720:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4785:9;4768:35;;4777:6;4768:35;;;4796:6;4768:35;;;;;;:::i;:::-;;;;;;;;4816:46;4836:6;4844:9;4855:6;4816:19;:46::i;:::-;4258:612;4137:733;;;:::o;6620:125::-;;;;:::o;6758:124::-;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:96::-;2681:7;2710:24;2728:5;2710:24;:::i;:::-;2699:35;;2644:96;;;:::o;2746:122::-;2819:24;2837:5;2819:24;:::i;:::-;2812:5;2809:35;2799:63;;2858:1;2855;2848:12;2799:63;2746:122;:::o;2874:139::-;2920:5;2958:6;2945:20;2936:29;;2974:33;3001:5;2974:33;:::i;:::-;2874:139;;;;:::o;3019:474::-;3087:6;3095;3144:2;3132:9;3123:7;3119:23;3115:32;3112:119;;;3150:79;;:::i;:::-;3112:119;3270:1;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3241:117;3397:2;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3368:118;3019:474;;;;;:::o;3499:90::-;3533:7;3576:5;3569:13;3562:21;3551:32;;3499:90;;;:::o;3595:109::-;3676:21;3691:5;3676:21;:::i;:::-;3671:3;3664:34;3595:109;;:::o;3710:210::-;3797:4;3835:2;3824:9;3820:18;3812:26;;3848:65;3910:1;3899:9;3895:17;3886:6;3848:65;:::i;:::-;3710:210;;;;:::o;3926:118::-;4013:24;4031:5;4013:24;:::i;:::-;4008:3;4001:37;3926:118;;:::o;4050:222::-;4143:4;4181:2;4170:9;4166:18;4158:26;;4194:71;4262:1;4251:9;4247:17;4238:6;4194:71;:::i;:::-;4050:222;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:::-;5727:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:119;;;5782:79;;:::i;:::-;5744:119;5902:1;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5873:117;5668:329;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:474::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:182::-;6975:34;6971:1;6963:6;6959:14;6952:58;6835:182;:::o;7023:366::-;7165:3;7186:67;7250:2;7245:3;7186:67;:::i;:::-;7179:74;;7262:93;7351:3;7262:93;:::i;:::-;7380:2;7375:3;7371:12;7364:19;;7023:366;;;:::o;7395:419::-;7561:4;7599:2;7588:9;7584:18;7576:26;;7648:9;7642:4;7638:20;7634:1;7623:9;7619:17;7612:47;7676:131;7802:4;7676:131;:::i;:::-;7668:139;;7395:419;;;:::o;7820:148::-;7922:11;7959:3;7944:18;;7820:148;;;;:::o;7974:153::-;8114:5;8110:1;8102:6;8098:14;8091:29;7974:153;:::o;8133:400::-;8293:3;8314:84;8396:1;8391:3;8314:84;:::i;:::-;8307:91;;8407:93;8496:3;8407:93;:::i;:::-;8525:1;8520:3;8516:11;8509:18;;8133:400;;;:::o;8539:381::-;8724:3;8746:148;8890:3;8746:148;:::i;:::-;8739:155;;8911:3;8904:10;;8539:381;;;:::o;8926:159::-;9066:11;9062:1;9054:6;9050:14;9043:35;8926:159;:::o;9091:400::-;9251:3;9272:84;9354:1;9349:3;9272:84;:::i;:::-;9265:91;;9365:93;9454:3;9365:93;:::i;:::-;9483:1;9478:3;9474:11;9467:18;;9091:400;;;:::o;9497:381::-;9682:3;9704:148;9848:3;9704:148;:::i;:::-;9697:155;;9869:3;9862:10;;9497:381;;;:::o;9884:180::-;9932:77;9929:1;9922:88;10029:4;10026:1;10019:15;10053:4;10050:1;10043:15;10070:320;10114:6;10151:1;10145:4;10141:12;10131:22;;10198:1;10192:4;10188:12;10219:18;10209:81;;10275:4;10267:6;10263:17;10253:27;;10209:81;10337:2;10329:6;10326:14;10306:18;10303:38;10300:84;;10356:18;;:::i;:::-;10300:84;10121:269;10070:320;;;:::o;10396:227::-;10536:34;10532:1;10524:6;10520:14;10513:58;10605:10;10600:2;10592:6;10588:15;10581:35;10396:227;:::o;10629:366::-;10771:3;10792:67;10856:2;10851:3;10792:67;:::i;:::-;10785:74;;10868:93;10957:3;10868:93;:::i;:::-;10986:2;10981:3;10977:12;10970:19;;10629:366;;;:::o;11001:419::-;11167:4;11205:2;11194:9;11190:18;11182:26;;11254:9;11248:4;11244:20;11240:1;11229:9;11225:17;11218:47;11282:131;11408:4;11282:131;:::i;:::-;11274:139;;11001:419;;;:::o;11426:180::-;11474:77;11471:1;11464:88;11571:4;11568:1;11561:15;11595:4;11592:1;11585:15;11612:191;11652:3;11671:20;11689:1;11671:20;:::i;:::-;11666:25;;11705:20;11723:1;11705:20;:::i;:::-;11700:25;;11748:1;11745;11741:9;11734:16;;11769:3;11766:1;11763:10;11760:36;;;11776:18;;:::i;:::-;11760:36;11612:191;;;;:::o;11809:179::-;11949:31;11945:1;11937:6;11933:14;11926:55;11809:179;:::o;11994:366::-;12136:3;12157:67;12221:2;12216:3;12157:67;:::i;:::-;12150:74;;12233:93;12322:3;12233:93;:::i;:::-;12351:2;12346:3;12342:12;12335:19;;11994:366;;;:::o;12366:419::-;12532:4;12570:2;12559:9;12555:18;12547:26;;12619:9;12613:4;12609:20;12605:1;12594:9;12590:17;12583:47;12647:131;12773:4;12647:131;:::i;:::-;12639:139;;12366:419;;;:::o;12791:221::-;12931:34;12927:1;12919:6;12915:14;12908:58;13000:4;12995:2;12987:6;12983:15;12976:29;12791:221;:::o;13018:366::-;13160:3;13181:67;13245:2;13240:3;13181:67;:::i;:::-;13174:74;;13257:93;13346:3;13257:93;:::i;:::-;13375:2;13370:3;13366:12;13359:19;;13018:366;;;:::o;13390:419::-;13556:4;13594:2;13583:9;13579:18;13571:26;;13643:9;13637:4;13633:20;13629:1;13618:9;13614:17;13607:47;13671:131;13797:4;13671:131;:::i;:::-;13663:139;;13390:419;;;:::o;13815:179::-;13955:31;13951:1;13943:6;13939:14;13932:55;13815:179;:::o;14000:366::-;14142:3;14163:67;14227:2;14222:3;14163:67;:::i;:::-;14156:74;;14239:93;14328:3;14239:93;:::i;:::-;14357:2;14352:3;14348:12;14341:19;;14000:366;;;:::o;14372:419::-;14538:4;14576:2;14565:9;14561:18;14553:26;;14625:9;14619:4;14615:20;14611:1;14600:9;14596:17;14589:47;14653:131;14779:4;14653:131;:::i;:::-;14645:139;;14372:419;;;:::o;14797:161::-;14937:13;14933:1;14925:6;14921:14;14914:37;14797:161;:::o;14964:366::-;15106:3;15127:67;15191:2;15186:3;15127:67;:::i;:::-;15120:74;;15203:93;15292:3;15203:93;:::i;:::-;15321:2;15316:3;15312:12;15305:19;;14964:366;;;:::o;15336:419::-;15502:4;15540:2;15529:9;15525:18;15517:26;;15589:9;15583:4;15579:20;15575:1;15564:9;15560:17;15553:47;15617:131;15743:4;15617:131;:::i;:::-;15609:139;;15336:419;;;:::o;15761:410::-;15801:7;15824:20;15842:1;15824:20;:::i;:::-;15819:25;;15858:20;15876:1;15858:20;:::i;:::-;15853:25;;15913:1;15910;15906:9;15935:30;15953:11;15935:30;:::i;:::-;15924:41;;16114:1;16105:7;16101:15;16098:1;16095:22;16075:1;16068:9;16048:83;16025:139;;16144:18;;:::i;:::-;16025:139;15809:362;15761:410;;;;:::o;16177:220::-;16317:34;16313:1;16305:6;16301:14;16294:58;16386:3;16381:2;16373:6;16369:15;16362:28;16177:220;:::o;16403:366::-;16545:3;16566:67;16630:2;16625:3;16566:67;:::i;:::-;16559:74;;16642:93;16731:3;16642:93;:::i;:::-;16760:2;16755:3;16751:12;16744:19;;16403:366;;;:::o;16775:419::-;16941:4;16979:2;16968:9;16964:18;16956:26;;17028:9;17022:4;17018:20;17014:1;17003:9;16999:17;16992:47;17056:131;17182:4;17056:131;:::i;:::-;17048:139;;16775:419;;;:::o;17200:224::-;17340:34;17336:1;17328:6;17324:14;17317:58;17409:7;17404:2;17396:6;17392:15;17385:32;17200:224;:::o;17430:366::-;17572:3;17593:67;17657:2;17652:3;17593:67;:::i;:::-;17586:74;;17669:93;17758:3;17669:93;:::i;:::-;17787:2;17782:3;17778:12;17771:19;;17430:366;;;:::o;17802:419::-;17968:4;18006:2;17995:9;17991:18;17983:26;;18055:9;18049:4;18045:20;18041:1;18030:9;18026:17;18019:47;18083:131;18209:4;18083:131;:::i;:::-;18075:139;;17802:419;;;:::o;18227:180::-;18367:32;18363:1;18355:6;18351:14;18344:56;18227:180;:::o;18413:366::-;18555:3;18576:67;18640:2;18635:3;18576:67;:::i;:::-;18569:74;;18652:93;18741:3;18652:93;:::i;:::-;18770:2;18765:3;18761:12;18754:19;;18413:366;;;:::o;18785:419::-;18951:4;18989:2;18978:9;18974:18;18966:26;;19038:9;19032:4;19028:20;19024:1;19013:9;19009:17;19002:47;19066:131;19192:4;19066:131;:::i;:::-;19058:139;;18785:419;;;:::o;19210:180::-;19350:32;19346:1;19338:6;19334:14;19327:56;19210:180;:::o;19396:366::-;19538:3;19559:67;19623:2;19618:3;19559:67;:::i;:::-;19552:74;;19635:93;19724:3;19635:93;:::i;:::-;19753:2;19748:3;19744:12;19737:19;;19396:366;;;:::o;19768:419::-;19934:4;19972:2;19961:9;19957:18;19949:26;;20021:9;20015:4;20011:20;20007:1;19996:9;19992:17;19985:47;20049:131;20175:4;20049:131;:::i;:::-;20041:139;;19768:419;;;:::o;20193:180::-;20333:32;20329:1;20321:6;20317:14;20310:56;20193:180;:::o;20379:366::-;20521:3;20542:67;20606:2;20601:3;20542:67;:::i;:::-;20535:74;;20618:93;20707:3;20618:93;:::i;:::-;20736:2;20731:3;20727:12;20720:19;;20379:366;;;:::o;20751:419::-;20917:4;20955:2;20944:9;20940:18;20932:26;;21004:9;20998:4;20994:20;20990:1;20979:9;20975:17;20968:47;21032:131;21158:4;21032:131;:::i;:::-;21024:139;;20751:419;;;:::o;21176:225::-;21316:34;21312:1;21304:6;21300:14;21293:58;21385:8;21380:2;21372:6;21368:15;21361:33;21176:225;:::o;21407:366::-;21549:3;21570:67;21634:2;21629:3;21570:67;:::i;:::-;21563:74;;21646:93;21735:3;21646:93;:::i;:::-;21764:2;21759:3;21755:12;21748:19;;21407:366;;;:::o;21779:419::-;21945:4;21983:2;21972:9;21968:18;21960:26;;22032:9;22026:4;22022:20;22018:1;22007:9;22003:17;21996:47;22060:131;22186:4;22060:131;:::i;:::-;22052:139;;21779:419;;;:::o;22204:143::-;22261:5;22292:6;22286:13;22277:22;;22308:33;22335:5;22308:33;:::i;:::-;22204:143;;;;:::o;22353:351::-;22423:6;22472:2;22460:9;22451:7;22447:23;22443:32;22440:119;;;22478:79;;:::i;:::-;22440:119;22598:1;22623:64;22679:7;22670:6;22659:9;22655:22;22623:64;:::i;:::-;22613:74;;22569:128;22353:351;;;;:::o;22710:332::-;22831:4;22869:2;22858:9;22854:18;22846:26;;22882:71;22950:1;22939:9;22935:17;22926:6;22882:71;:::i;:::-;22963:72;23031:2;23020:9;23016:18;23007:6;22963:72;:::i;:::-;22710:332;;;;;:::o;23048:116::-;23118:21;23133:5;23118:21;:::i;:::-;23111:5;23108:32;23098:60;;23154:1;23151;23144:12;23098:60;23048:116;:::o;23170:137::-;23224:5;23255:6;23249:13;23240:22;;23271:30;23295:5;23271:30;:::i;:::-;23170:137;;;;:::o;23313:345::-;23380:6;23429:2;23417:9;23408:7;23404:23;23400:32;23397:119;;;23435:79;;:::i;:::-;23397:119;23555:1;23580:61;23633:7;23624:6;23613:9;23609:22;23580:61;:::i;:::-;23570:71;;23526:125;23313:345;;;;:::o;23664:223::-;23804:34;23800:1;23792:6;23788:14;23781:58;23873:6;23868:2;23860:6;23856:15;23849:31;23664:223;:::o;23893:366::-;24035:3;24056:67;24120:2;24115:3;24056:67;:::i;:::-;24049:74;;24132:93;24221:3;24132:93;:::i;:::-;24250:2;24245:3;24241:12;24234:19;;23893:366;;;:::o;24265:419::-;24431:4;24469:2;24458:9;24454:18;24446:26;;24518:9;24512:4;24508:20;24504:1;24493:9;24489:17;24482:47;24546:131;24672:4;24546:131;:::i;:::-;24538:139;;24265:419;;;:::o;24690:221::-;24830:34;24826:1;24818:6;24814:14;24807:58;24899:4;24894:2;24886:6;24882:15;24875:29;24690:221;:::o;24917:366::-;25059:3;25080:67;25144:2;25139:3;25080:67;:::i;:::-;25073:74;;25156:93;25245:3;25156:93;:::i;:::-;25274:2;25269:3;25265:12;25258:19;;24917:366;;;:::o;25289:419::-;25455:4;25493:2;25482:9;25478:18;25470:26;;25542:9;25536:4;25532:20;25528:1;25517:9;25513:17;25506:47;25570:131;25696:4;25570:131;:::i;:::-;25562:139;;25289:419;;;:::o;25714:221::-;25854:34;25850:1;25842:6;25838:14;25831:58;25923:4;25918:2;25910:6;25906:15;25899:29;25714:221;:::o;25941:366::-;26083:3;26104:67;26168:2;26163:3;26104:67;:::i;:::-;26097:74;;26180:93;26269:3;26180:93;:::i;:::-;26298:2;26293:3;26289:12;26282:19;;25941:366;;;:::o;26313:419::-;26479:4;26517:2;26506:9;26502:18;26494:26;;26566:9;26560:4;26556:20;26552:1;26541:9;26537:17;26530:47;26594:131;26720:4;26594:131;:::i;:::-;26586:139;;26313:419;;;:::o;26738:180::-;26786:77;26783:1;26776:88;26883:4;26880:1;26873:15;26907:4;26904:1;26897:15;26924:180;26972:77;26969:1;26962:88;27069:4;27066:1;27059:15;27093:4;27090:1;27083:15;27110:143;27167:5;27198:6;27192:13;27183:22;;27214:33;27241:5;27214:33;:::i;:::-;27110:143;;;;:::o;27259:351::-;27329:6;27378:2;27366:9;27357:7;27353:23;27349:32;27346:119;;;27384:79;;:::i;:::-;27346:119;27504:1;27529:64;27585:7;27576:6;27565:9;27561:22;27529:64;:::i;:::-;27519:74;;27475:128;27259:351;;;;:::o;27616:180::-;27664:77;27661:1;27654:88;27761:4;27758:1;27751:15;27785:4;27782:1;27775:15;27802:185;27842:1;27859:20;27877:1;27859:20;:::i;:::-;27854:25;;27893:20;27911:1;27893:20;:::i;:::-;27888:25;;27932:1;27922:35;;27937:18;;:::i;:::-;27922:35;27979:1;27976;27972:9;27967:14;;27802:185;;;;:::o;27993:114::-;28060:6;28094:5;28088:12;28078:22;;27993:114;;;:::o;28113:184::-;28212:11;28246:6;28241:3;28234:19;28286:4;28281:3;28277:14;28262:29;;28113:184;;;;:::o;28303:132::-;28370:4;28393:3;28385:11;;28423:4;28418:3;28414:14;28406:22;;28303:132;;;:::o;28441:108::-;28518:24;28536:5;28518:24;:::i;:::-;28513:3;28506:37;28441:108;;:::o;28555:179::-;28624:10;28645:46;28687:3;28679:6;28645:46;:::i;:::-;28723:4;28718:3;28714:14;28700:28;;28555:179;;;;:::o;28740:113::-;28810:4;28842;28837:3;28833:14;28825:22;;28740:113;;;:::o;28889:732::-;29008:3;29037:54;29085:5;29037:54;:::i;:::-;29107:86;29186:6;29181:3;29107:86;:::i;:::-;29100:93;;29217:56;29267:5;29217:56;:::i;:::-;29296:7;29327:1;29312:284;29337:6;29334:1;29331:13;29312:284;;;29413:6;29407:13;29440:63;29499:3;29484:13;29440:63;:::i;:::-;29433:70;;29526:60;29579:6;29526:60;:::i;:::-;29516:70;;29372:224;29359:1;29356;29352:9;29347:14;;29312:284;;;29316:14;29612:3;29605:10;;29013:608;;;28889:732;;;;:::o;29627:483::-;29798:4;29836:2;29825:9;29821:18;29813:26;;29849:71;29917:1;29906:9;29902:17;29893:6;29849:71;:::i;:::-;29967:9;29961:4;29957:20;29952:2;29941:9;29937:18;29930:48;29995:108;30098:4;30089:6;29995:108;:::i;:::-;29987:116;;29627:483;;;;;:::o;30116:117::-;30225:1;30222;30215:12;30239:281;30322:27;30344:4;30322:27;:::i;:::-;30314:6;30310:40;30452:6;30440:10;30437:22;30416:18;30404:10;30401:34;30398:62;30395:88;;;30463:18;;:::i;:::-;30395:88;30503:10;30499:2;30492:22;30282:238;30239:281;;:::o;30526:129::-;30560:6;30587:20;;:::i;:::-;30577:30;;30616:33;30644:4;30636:6;30616:33;:::i;:::-;30526:129;;;:::o;30661:311::-;30738:4;30828:18;30820:6;30817:30;30814:56;;;30850:18;;:::i;:::-;30814:56;30900:4;30892:6;30888:17;30880:25;;30960:4;30954;30950:15;30942:23;;30661:311;;;:::o;30978:117::-;31087:1;31084;31077:12;31118:732;31225:5;31250:81;31266:64;31323:6;31266:64;:::i;:::-;31250:81;:::i;:::-;31241:90;;31351:5;31380:6;31373:5;31366:21;31414:4;31407:5;31403:16;31396:23;;31467:4;31459:6;31455:17;31447:6;31443:30;31496:3;31488:6;31485:15;31482:122;;;31515:79;;:::i;:::-;31482:122;31630:6;31613:231;31647:6;31642:3;31639:15;31613:231;;;31722:3;31751:48;31795:3;31783:10;31751:48;:::i;:::-;31746:3;31739:61;31829:4;31824:3;31820:14;31813:21;;31689:155;31673:4;31668:3;31664:14;31657:21;;31613:231;;;31617:21;31231:619;;31118:732;;;;;:::o;31873:385::-;31955:5;32004:3;31997:4;31989:6;31985:17;31981:27;31971:122;;32012:79;;:::i;:::-;31971:122;32122:6;32116:13;32147:105;32248:3;32240:6;32233:4;32225:6;32221:17;32147:105;:::i;:::-;32138:114;;31961:297;31873:385;;;;:::o;32264:554::-;32359:6;32408:2;32396:9;32387:7;32383:23;32379:32;32376:119;;;32414:79;;:::i;:::-;32376:119;32555:1;32544:9;32540:17;32534:24;32585:18;32577:6;32574:30;32571:117;;;32607:79;;:::i;:::-;32571:117;32712:89;32793:7;32784:6;32773:9;32769:22;32712:89;:::i;:::-;32702:99;;32505:306;32264:554;;;;:::o;32824:85::-;32869:7;32898:5;32887:16;;32824:85;;;:::o;32915:60::-;32943:3;32964:5;32957:12;;32915:60;;;:::o;32981:158::-;33039:9;33072:61;33090:42;33099:32;33125:5;33099:32;:::i;:::-;33090:42;:::i;:::-;33072:61;:::i;:::-;33059:74;;32981:158;;;:::o;33145:147::-;33240:45;33279:5;33240:45;:::i;:::-;33235:3;33228:58;33145:147;;:::o;33298:831::-;33561:4;33599:3;33588:9;33584:19;33576:27;;33613:71;33681:1;33670:9;33666:17;33657:6;33613:71;:::i;:::-;33694:80;33770:2;33759:9;33755:18;33746:6;33694:80;:::i;:::-;33821:9;33815:4;33811:20;33806:2;33795:9;33791:18;33784:48;33849:108;33952:4;33943:6;33849:108;:::i;:::-;33841:116;;33967:72;34035:2;34024:9;34020:18;34011:6;33967:72;:::i;:::-;34049:73;34117:3;34106:9;34102:19;34093:6;34049:73;:::i;:::-;33298:831;;;;;;;;:::o;34135:194::-;34175:4;34195:20;34213:1;34195:20;:::i;:::-;34190:25;;34229:20;34247:1;34229:20;:::i;:::-;34224:25;;34273:1;34270;34266:9;34258:17;;34297:1;34291:4;34288:11;34285:37;;;34302:18;;:::i;:::-;34285:37;34135:194;;;;:::o;34335:807::-;34584:4;34622:3;34611:9;34607:19;34599:27;;34636:71;34704:1;34693:9;34689:17;34680:6;34636:71;:::i;:::-;34717:72;34785:2;34774:9;34770:18;34761:6;34717:72;:::i;:::-;34799:80;34875:2;34864:9;34860:18;34851:6;34799:80;:::i;:::-;34889;34965:2;34954:9;34950:18;34941:6;34889:80;:::i;:::-;34979:73;35047:3;35036:9;35032:19;35023:6;34979:73;:::i;:::-;35062;35130:3;35119:9;35115:19;35106:6;35062:73;:::i;:::-;34335:807;;;;;;;;;:::o;35148:663::-;35236:6;35244;35252;35301:2;35289:9;35280:7;35276:23;35272:32;35269:119;;;35307:79;;:::i;:::-;35269:119;35427:1;35452:64;35508:7;35499:6;35488:9;35484:22;35452:64;:::i;:::-;35442:74;;35398:128;35565:2;35591:64;35647:7;35638:6;35627:9;35623:22;35591:64;:::i;:::-;35581:74;;35536:129;35704:2;35730:64;35786:7;35777:6;35766:9;35762:22;35730:64;:::i;:::-;35720:74;;35675:129;35148:663;;;;;:::o;35817:147::-;35918:11;35955:3;35940:18;;35817:147;;;;:::o;35970:114::-;;:::o;36090:398::-;36249:3;36270:83;36351:1;36346:3;36270:83;:::i;:::-;36263:90;;36362:93;36451:3;36362:93;:::i;:::-;36480:1;36475:3;36471:11;36464:18;;36090:398;;;:::o;36494:379::-;36678:3;36700:147;36843:3;36700:147;:::i;:::-;36693:154;;36864:3;36857:10;;36494:379;;;:::o;36879:180::-;37019:32;37015:1;37007:6;37003:14;36996:56;36879:180;:::o;37065:366::-;37207:3;37228:67;37292:2;37287:3;37228:67;:::i;:::-;37221:74;;37304:93;37393:3;37304:93;:::i;:::-;37422:2;37417:3;37413:12;37406:19;;37065:366;;;:::o;37437:419::-;37603:4;37641:2;37630:9;37626:18;37618:26;;37690:9;37684:4;37680:20;37676:1;37665:9;37661:17;37654:47;37718:131;37844:4;37718:131;:::i;:::-;37710:139;;37437:419;;;:::o;37862:174::-;38002:26;37998:1;37990:6;37986:14;37979:50;37862:174;:::o;38042:366::-;38184:3;38205:67;38269:2;38264:3;38205:67;:::i;:::-;38198:74;;38281:93;38370:3;38281:93;:::i;:::-;38399:2;38394:3;38390:12;38383:19;;38042:366;;;:::o;38414:419::-;38580:4;38618:2;38607:9;38603:18;38595:26;;38667:9;38661:4;38657:20;38653:1;38642:9;38638:17;38631:47;38695:131;38821:4;38695:131;:::i;:::-;38687:139;;38414:419;;;:::o;38839:170::-;38979:22;38975:1;38967:6;38963:14;38956:46;38839:170;:::o;39015:366::-;39157:3;39178:67;39242:2;39237:3;39178:67;:::i;:::-;39171:74;;39254:93;39343:3;39254:93;:::i;:::-;39372:2;39367:3;39363:12;39356:19;;39015:366;;;:::o;39387:419::-;39553:4;39591:2;39580:9;39576:18;39568:26;;39640:9;39634:4;39630:20;39626:1;39615:9;39611:17;39604:47;39668:131;39794:4;39668:131;:::i;:::-;39660:139;;39387:419;;;:::o;39812:220::-;39952:34;39948:1;39940:6;39936:14;39929:58;40021:3;40016:2;40008:6;40004:15;39997:28;39812:220;:::o;40038:366::-;40180:3;40201:67;40265:2;40260:3;40201:67;:::i;:::-;40194:74;;40277:93;40366:3;40277:93;:::i;:::-;40395:2;40390:3;40386:12;40379:19;;40038:366;;;:::o;40410:419::-;40576:4;40614:2;40603:9;40599:18;40591:26;;40663:9;40657:4;40653:20;40649:1;40638:9;40634:17;40627:47;40691:131;40817:4;40691:131;:::i;:::-;40683:139;;40410:419;;;:::o;40835:221::-;40975:34;40971:1;40963:6;40959:14;40952:58;41044:4;41039:2;41031:6;41027:15;41020:29;40835:221;:::o;41062:366::-;41204:3;41225:67;41289:2;41284:3;41225:67;:::i;:::-;41218:74;;41301:93;41390:3;41301:93;:::i;:::-;41419:2;41414:3;41410:12;41403:19;;41062:366;;;:::o;41434:419::-;41600:4;41638:2;41627:9;41623:18;41615:26;;41687:9;41681:4;41677:20;41673:1;41662:9;41658:17;41651:47;41715:131;41841:4;41715:131;:::i;:::-;41707:139;;41434:419;;;:::o;41859:166::-;41999:18;41995:1;41987:6;41983:14;41976:42;41859:166;:::o;42031:366::-;42173:3;42194:67;42258:2;42253:3;42194:67;:::i;:::-;42187:74;;42270:93;42359:3;42270:93;:::i;:::-;42388:2;42383:3;42379:12;42372:19;;42031:366;;;:::o;42403:419::-;42569:4;42607:2;42596:9;42592:18;42584:26;;42656:9;42650:4;42646:20;42642:1;42631:9;42627:17;42620:47;42684:131;42810:4;42684:131;:::i;:::-;42676:139;;42403:419;;;:::o;42828:224::-;42968:34;42964:1;42956:6;42952:14;42945:58;43037:7;43032:2;43024:6;43020:15;43013:32;42828:224;:::o;43058:366::-;43200:3;43221:67;43285:2;43280:3;43221:67;:::i;:::-;43214:74;;43297:93;43386:3;43297:93;:::i;:::-;43415:2;43410:3;43406:12;43399:19;;43058:366;;;:::o;43430:419::-;43596:4;43634:2;43623:9;43619:18;43611:26;;43683:9;43677:4;43673:20;43669:1;43658:9;43654:17;43647:47;43711:131;43837:4;43711:131;:::i;:::-;43703:139;;43430:419;;;:::o;43855:222::-;43995:34;43991:1;43983:6;43979:14;43972:58;44064:5;44059:2;44051:6;44047:15;44040:30;43855:222;:::o;44083:366::-;44225:3;44246:67;44310:2;44305:3;44246:67;:::i;:::-;44239:74;;44322:93;44411:3;44322:93;:::i;:::-;44440:2;44435:3;44431:12;44424:19;;44083:366;;;:::o;44455:419::-;44621:4;44659:2;44648:9;44644:18;44636:26;;44708:9;44702:4;44698:20;44694:1;44683:9;44679:17;44672:47;44736:131;44862:4;44736:131;:::i;:::-;44728:139;;44455:419;;;:::o;44880:225::-;45020:34;45016:1;45008:6;45004:14;44997:58;45089:8;45084:2;45076:6;45072:15;45065:33;44880:225;:::o;45111:366::-;45253:3;45274:67;45338:2;45333:3;45274:67;:::i;:::-;45267:74;;45350:93;45439:3;45350:93;:::i;:::-;45468:2;45463:3;45459:12;45452:19;;45111:366;;;:::o;45483:419::-;45649:4;45687:2;45676:9;45672:18;45664:26;;45736:9;45730:4;45726:20;45722:1;45711:9;45707:17;45700:47;45764:131;45890:4;45764:131;:::i;:::-;45756:139;;45483:419;;;:::o

Swarm Source

ipfs://0d54a281353328836c8cce0abcf46b87662e0cfd0838e297e3d66eadc3147b98

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.