ETH Price: $3,288.20 (+1.29%)
Gas: 2 Gwei

Token

Stride Forward (STRIDE)
 

Overview

Max Total Supply

1,000,000,000 STRIDE

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
likeclockwork.eth
Balance
69,238.497129829057257561 STRIDE

Value
$0.00
0x58e8869ccf201fdb2ab2014445a59c69b72fc494
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
STRIDE

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-25
*/

//STRIDE FORWARD
//https://twitter.com/StrideToken

//SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.7;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint _totalSupply);
    function balanceOf(address _owner) external view returns (uint balance);
    function transfer(address _to, uint _value) external returns (bool success);
    function transferFrom(address _from, address _to, uint _value) external returns (bool success);
    function approve(address _spender, uint _value) external returns (bool success);
    function allowance(address _owner, address _spender) external view returns (uint remaining);
    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
}

interface IUniswapFactory {
    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 IUniswapRouter01 {
    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 factory() external pure returns (address);
    function WETH() external pure returns (address);
    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 IUniswapRouter02 is IUniswapRouter01 {
    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;
}


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

contract smart {
    using SafeMath for uint;

    address public router_address = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    IUniswapRouter02 public router = IUniswapRouter02(router_address);

    function create_weth_pair(address token) private returns (address, IUniswapV2Pair) {
       address pair_address = IUniswapFactory(router.factory()).createPair(token, router.WETH());
       return (pair_address, IUniswapV2Pair(pair_address));
    }

    function get_weth_reserve(address pair_address) private  view returns(uint, uint) {
        IUniswapV2Pair pair = IUniswapV2Pair(pair_address);
        uint112 token_reserve;
        uint112 native_reserve;
        uint32 last_timestamp;
        (token_reserve, native_reserve, last_timestamp) = pair.getReserves();
        return (token_reserve, native_reserve);
    }

    function get_weth_price_impact(address token, uint amount, bool sell) private view returns(uint) {
        address pair_address = IUniswapFactory(router.factory()).getPair(token, router.WETH());
        (uint res_token, uint res_weth) = get_weth_reserve(pair_address);
        uint impact;
        if(sell) {
            impact = (amount.mul(100)).div(res_token);
        } else {
            impact = (amount.mul(100)).div(res_weth);
        }
        return impact;
    }
}



contract protected {

    bool public bot_smasher = false;
    bool public trade_enabled = false;

    mapping (address => bool) public is_auth;

    function authorized(address addy) public view returns(bool) {
        return is_auth[addy];
    }

    function set_authorized(address addy, bool booly) public onlyAuth {
        is_auth[addy] = booly;
    }

    modifier onlyAuth() {
        require( is_auth[msg.sender] || msg.sender==owner, "not owner");
        _;
    }

    address public owner;
    address public developer;

    modifier onlyDev {
        require(msg.sender==developer);
        _;
    }

    modifier onlyOwner() {
        require(msg.sender==owner, "not owner");
        _;
    }

    bool public locked;
    modifier safe() {
        require(!locked, "reentrant");
        locked = true;
        _;
        locked = false;
    }

    receive() external payable {}
    fallback() external payable {}
}

contract STRIDE is smart, protected, ERC20 {

    using SafeMath for uint;
    using SafeMath for uint8;

    mapping(address => bool) public tax_free;
    mapping(address => bool) public lock_free;
    mapping(address => bool) public is_black;
    mapping(address => bool) public is_free_from_max_tx;
    mapping(address => bool) public is_free_from_max_wallet;



    string public constant _name = 'Stride Forward';
    string public constant _symbol = 'STRIDE';
    uint8 public constant _decimals = 18;
    uint256 public constant InitialSupply= 1 * (10**9) * (10**_decimals);
    uint256 public _circulatingSupply= InitialSupply;
    address public constant UniswapRouter= 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public constant Dead = 0x000000000000000000000000000000000000dEaD;
    address public marketing = payable(0x9e7cf1DeBeC83C3ac8b1a080860e7A84A9a3FDA2);

    mapping(address => uint) public last_tx;

    bool public pegged = true;
    bool public manual_swap = false;

    uint8 public buy_tax = 0;
    uint8 public sell_tax = 5;
    uint8 public transfer_tax = 0;

    uint16 public max_wallet = 100;
    uint16 public max_perK = 1000;
    uint256 public startTime;

    uint8 devShare = 1;
    uint8 marketingShare = 9;
    uint8 total_share = devShare + marketingShare;

    uint public swap_treshold = (_circulatingSupply.div(300));

    mapping (address => uint256) public _balances;
    mapping (address => mapping (address => uint256)) public _allowances;

    address public pair_address;
    IUniswapV2Pair public pair;

    constructor() {
        owner = payable(msg.sender);
        developer = payable(msg.sender);
        is_auth[owner] = true;
        pair_address = IUniswapFactory(router.factory()).createPair(address(this), router.WETH());
        pair = IUniswapV2Pair(pair_address);
        tax_free[msg.sender] = true;
        tax_free[marketing] = true;
        is_free_from_max_wallet[marketing] = true;
        is_free_from_max_wallet[pair_address] = true;
        is_free_from_max_tx[marketing] = true;
        _balances[developer] = _circulatingSupply;
        emit Transfer(Dead, msg.sender, _circulatingSupply);
        _approve(address(this), address(router), _circulatingSupply);
        _approve(address(owner), address(router), _circulatingSupply);
    }

    function _transfer(address sender, address recipient, uint amount) private {

        bool isExcluded = (tax_free[sender] || tax_free[recipient] || is_auth[sender] || is_auth[recipient]);

        bool isContractTransfer=(sender==address(this) || recipient==address(this));

        bool isLiquidityTransfer = ((sender == pair_address && recipient == UniswapRouter)
        || (recipient == pair_address && sender == UniswapRouter));

        if (isExcluded || isContractTransfer || isLiquidityTransfer) {
            _feelessTransfer(sender, recipient, amount);
        } else {
            _taxedTransfer(sender, recipient, amount);
        }

    }

    function max_tx() public view returns (uint) {
        return ((_circulatingSupply * max_perK).div(1000));
    }

    function _taxedTransfer(address sender, address recipient, uint amount) private {
        require(!is_black[sender] && !is_black[recipient], "Blacklisted");

        if(!bot_smasher) {
            require(trade_enabled, "STOP");
        } else {
            if(!trade_enabled) {
                emit Transfer(sender, recipient, 0);
                return;
            }
        }

        if(!is_free_from_max_tx[sender]) {
            require(amount <= max_tx());
        }

        if(!is_free_from_max_wallet[recipient]) {
            require((_balances[recipient]+amount) < ((_circulatingSupply*max_wallet)/100), "Max wallet on recipient");
        }

        bool isSell=recipient== pair_address|| recipient == router_address;

        (uint taxedAmount, uint taxes) = calculateFees(amount, isSell);

        if((_balances[address(this)] > swap_treshold) && !manual_swap && !locked) {
            if(isSell && !manual_swap) {
                swap_taxes(amount);
            }
        }

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(taxedAmount);
        _balances[address(this)] = _balances[address(this)].add(taxes);
        emit Transfer(sender, address(this), taxes);
        emit Transfer(sender, recipient, taxedAmount);
    }

    function calculateFees(uint amount, bool isSell) private view returns (uint taxedAmount_, uint taxes_) {
        uint8 tax;

        if(isSell) {
            tax = sell_tax;
        } else {
            tax = buy_tax;
        }

        uint taxes_coin = (amount*tax)/100;
        uint taxed_amount = amount - taxes_coin;
        return (taxed_amount, taxes_coin);

    }

    function swap_taxes(uint256 tx_amount) private safe{
        uint256 contractBalance = _balances[address(this)];
        uint256 amount_to_swap = (swap_treshold.mul(75)).div(100);

        if(amount_to_swap > tx_amount) {
            if(pegged) {
                amount_to_swap = tx_amount;
            }
        }
        if(contractBalance<amount_to_swap){
            return;
        }

        uint256 initialETHBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount_to_swap,
            0,
            path,
            address(this),
            block.timestamp
            );
        uint256 newETH=(address(this).balance - initialETHBalance);

        uint256 marketingSplit = newETH.mul(marketingShare).div(total_share);
        uint256 devSplit = newETH - marketingSplit;
        payable(developer).transfer(devSplit);
        payable(marketing).transfer(marketingSplit);

    }


    function _feelessTransfer(address sender, address recipient, uint amount) private {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

    function lfg() public onlyDev {
        require(trade_enabled == false);
        bot_smasher = false;
        trade_enabled = true;
    }

    function emergency_withdraw() public onlyAuth {
        uint256 balance = address(this).balance;
        payable(developer).transfer(balance);
    }

    function set_shares(uint8 dev, uint8 market) public onlyAuth {
        devShare = dev;
        marketingShare = market;
    }

    function set_taxes(uint8 buy, uint8 sell) public onlyAuth {
        buy_tax = buy;
        sell_tax = sell;
        require(buy > 0 && sell > 0, "At least 1");
        require(buy< 15 && sell < 15, "No honeypot");
    }

    function set_manual_swap(bool booly) public onlyAuth {
        manual_swap = booly;
    }

    function totalSupply() external view override returns (uint256) {
        return _circulatingSupply;
    }

    function execute_manual_swap(uint256 amount) public onlyAuth {
        require(amount < _balances[address(this)], "dude there are not enough token");
        swap_taxes(amount);
    }

    function rescue_tokens(address tknAddress) public onlyAuth {
        ERC20 token = ERC20(tknAddress);
        uint256 ourBalance = token.balanceOf(address(this));
        require(ourBalance>0, "No tokens in our balance");
        token.transfer(msg.sender, ourBalance);
    }

    function set_max_tx(uint16 maxtx) public onlyAuth {
        max_perK = maxtx;
        require(maxtx >= 5, "At least 5, remember that it's /1000, so 5 = 0.5%");
    }

    function set_max_wallet(uint16 maxwallet) public onlyAuth {
        max_wallet = maxwallet;
        require(maxwallet >= 1, "At least 1, remember that it's /100, so 1 = 1%");
    }

    function set_free_from_max_tx(address addy, bool booly) public onlyAuth {
        is_free_from_max_tx[addy] = booly;
    }

    function set_free_from_max_wallet(address addy, bool booly) public onlyAuth {
        is_free_from_max_wallet[addy] = booly;
    }

    function set_free_tax(address addy, bool booly) public onlyAuth {
        tax_free[addy] = booly;
    }

    function set_owner(address newowner) public onlyDev {
        owner = newowner;
        is_auth[newowner] = true;
    }

    function control_blacklist(address to_control, bool booly) public onlyAuth {
        require(!(to_control==developer));
        is_black[to_control] = booly;
    }

    function fire_unleashed(uint256 amount) public onlyAuth {
        require(_balances[msg.sender] >= amount);
        _balances[msg.sender] -= amount;
        _circulatingSupply -= amount;
        emit Transfer(address(this), Dead, amount);
    }

    function minZero(uint a, uint b) private pure returns(uint) {
        if (a > b) {
           return a - b;
        } else {
           return 0;
        }
    }

    function set_pegged_swap(bool booly) public onlyAuth {
        pegged = booly;
    }

    function getOwner() external view returns (address) {
        return owner;
    }

    function name() external pure returns (string memory) {
        return _name;
    }

    function symbol() external pure returns (string memory) {
        return _symbol;
    }

    function decimals() external pure returns (uint8) {
        return _decimals;
    }

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address _owner, address spender) external view override returns (uint256) {
        return _allowances[_owner][spender];
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    function _approve(address _owner, address spender, uint256 amount) private {
        require(_owner != address(0), "Approve from zero");
        require(spender != address(0), "Approve to zero");

        _allowances[_owner][spender] = amount;
        emit Approval(_owner, spender, amount);
    }

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

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer > allowance");

        _approve(sender, msg.sender, currentAllowance - amount);
        return true;
    }


    function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "<0 allowance");

        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"Dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"InitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UniswapRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"authorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bot_smasher","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buy_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_control","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"control_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"developer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergency_withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"execute_manual_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fire_unleashed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_auth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_black","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_free_from_max_tx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_free_from_max_wallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"last_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lfg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lock_free","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manual_swap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_perK","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_wallet","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pegged","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tknAddress","type":"address"}],"name":"rescue_tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sell_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_authorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_from_max_tx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_from_max_wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_tax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_manual_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxtx","type":"uint16"}],"name":"set_max_tx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxwallet","type":"uint16"}],"name":"set_max_wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newowner","type":"address"}],"name":"set_owner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_pegged_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"dev","type":"uint8"},{"internalType":"uint8","name":"market","type":"uint8"}],"name":"set_shares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buy","type":"uint8"},{"internalType":"uint8","name":"sell","type":"uint8"}],"name":"set_taxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swap_treshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tax_free","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trade_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transfer_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155600180546001600160b01b03191690911790556200004e6012600a620005ed565b6200005e90633b9aca00620006ac565b600a55600b8054739e7cf1debec83c3ac8b1a080860e7a84a9a3fda26001600160a01b0319909116179055600d80546001600160481b0319166803e800640005000001179055600f805461ffff19166109011790819055620000cb9060ff61010090910416600162000559565b600f60026101000a81548160ff021916908360ff1602179055506200010361012c600a546200041560201b620019291790919060201c565b6010553480156200011357600080fd5b5060038054336001600160a01b031991821681179092556004805490911682178155600091825260026020908152604092839020805460ff1916600190811790915554835163c45a015560e01b815293516001600160a01b039091169363c45a015593818101939291829003018186803b1580156200019157600080fd5b505afa158015620001a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cc919062000527565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022a57600080fd5b505afa1580156200023f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000265919062000527565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002ae57600080fd5b505af1158015620002c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e9919062000527565b601380546001600160a01b039283166001600160a01b03199182168117835560148054909216179055336000818152600560209081526040808320805460ff199081166001908117909255600b8054891686528386208054831684179055805489168652600985528386208054831684179055965488168552828520805482168317905595548716845260088352818420805490961617909455600a546004549095168252601181529083902084905591519283529161dead917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600154600a54620003ed9130916001600160a01b03909116906200042c565b600354600154600a546200040f926001600160a01b039081169216906200042c565b620006e4565b600062000423828462000581565b90505b92915050565b6001600160a01b0383166200047c5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b60448201526064015b60405180910390fd5b6001600160a01b038216620004c65760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b604482015260640162000473565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000602082840312156200053a57600080fd5b81516001600160a01b03811681146200055257600080fd5b9392505050565b600060ff821660ff84168060ff03821115620005795762000579620006ce565b019392505050565b6000826200059f57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620005e5578160001904821115620005c957620005c9620006ce565b80851615620005d757918102915b93841c9390800290620005a9565b509250929050565b60006200042360ff841683600082620006095750600162000426565b81620006185750600062000426565b81600181146200063157600281146200063c576200065c565b600191505062000426565b60ff841115620006505762000650620006ce565b50506001821b62000426565b5060208310610133831016604e8410600b841016171562000681575081810a62000426565b6200068d8383620005a4565b8060001904821115620006a457620006a4620006ce565b029392505050565b6000816000190483118215151615620006c957620006c9620006ce565b500290565b634e487b7160e01b600052601160045260246000fd5b6127fd80620006f46000396000f3fe6080604052600436106103ad5760003560e01c8063893d20e8116101e5578063b91816111161010c578063cf309012116100a5578063e717fc3011610077578063e717fc3014610c75578063f4ea55ab14610c99578063f887ea4014610cc9578063fab2e05414610ce9578063fafab66514610d0957005b8063cf30901214610bb4578063d28d885214610bd5578063d46f2f6614610c0f578063dd62ed3e14610c2f57005b8063c78dc6fd116100de578063c78dc6fd14610b3f578063ca4b208b14610b5e578063cbc1cfd214610b7e578063cbe7003014610b9357005b8063b918161114610a9b578063c01bb48b14610ad4578063c664c31d14610af5578063c7639d8014610b1757005b8063a457c2d71161017e578063af1bb5c011610150578063af1bb5c0146109f4578063b09f126614610a14578063b0ef593714610a46578063b544d2e614610a6657005b8063a457c2d714610964578063a8aa1b3114610984578063a9059cbb146109a4578063ad95fc8f146109c457005b8063952eb8a7116101b7578063952eb8a7146108cf57806395d89b41146108ff578063a201b2a71461092e578063a253c06e1461094e57005b8063893d20e81461085b5780638da5cb5b146108795780638f793cb91461089957806393505052146108ae57005b806339509351116102d45780635bd263e71161026d57806370fbc7121161023f57806370fbc712146107ca57806378e97925146107df5780637cb97b2b146107f5578063826c89bd1461081557806382c4767b1461084557005b80635bd263e7146107275780636ebcf6071461074757806370a082311461077457806370bfcf40146107aa57005b80634147c6a7116102a65780634147c6a7146106975780634edebbba146106b7578063569ff644146106d757806357d8ae82146106f757005b8063395093511461060a5780633a32fea81461062a5780633f27cc481461064a5780633fe7e33c1461066a57005b806323b872dd116103465780632f575b4e116103185780632f575b4e14610593578063313ce567146105b357806332424aa3146105d557806334184e26146105ea57005b806323b872dd146104fb57806326e766131461051b5780632bfe87421461053b5780632d3e474a1461055b57005b806313f273831161037f57806313f273831461048b57806317668f1b146104a157806318160ddd146104d15780631eb25d13146104e657005b8063024c2ddd146103b657806306fdde03146104015780630907861314610441578063095ea7b31461046b57005b366103b457005b005b3480156103c257600080fd5b506103ee6103d136600461237a565b601260209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561040d57600080fd5b5060408051808201909152600e81526d14dd1c9a591948119bdc9dd85c9960921b60208201525b6040516103f89190612511565b34801561044d57600080fd5b50600d5461045b9060ff1681565b60405190151581526020016103f8565b34801561047757600080fd5b5061045b610486366004612422565b610d29565b34801561049757600080fd5b506103ee60105481565b3480156104ad57600080fd5b5061045b6104bc366004612340565b60056020526000908152604090205460ff1681565b3480156104dd57600080fd5b50600a546103ee565b3480156104f257600080fd5b506103ee610d40565b34801561050757600080fd5b5061045b6105163660046123b3565b610d5d565b34801561052757600080fd5b506103b46105363660046124de565b610df9565b34801561054757600080fd5b506103b46105563660046123f4565b610e61565b34801561056757600080fd5b50600b5461057b906001600160a01b031681565b6040516001600160a01b0390911681526020016103f8565b34801561059f57600080fd5b506103b46105ae366004612488565b610ed0565b3480156105bf57600080fd5b5060125b60405160ff90911681526020016103f8565b3480156105e157600080fd5b506105c3601281565b3480156105f657600080fd5b5060135461057b906001600160a01b031681565b34801561061657600080fd5b5061045b610625366004612422565b610fa5565b34801561063657600080fd5b506103b46106453660046123f4565b610fdc565b34801561065657600080fd5b506103b46106653660046123f4565b61104b565b34801561067657600080fd5b506103ee610685366004612340565b600c6020526000908152604090205481565b3480156106a357600080fd5b50600d546105c39062010000900460ff1681565b3480156106c357600080fd5b506103b46106d236600461244e565b6110ba565b3480156106e357600080fd5b506103b46106f2366004612488565b611111565b34801561070357600080fd5b5061045b610712366004612340565b60096020526000908152604090205460ff1681565b34801561073357600080fd5b506103b46107423660046123f4565b6111e0565b34801561075357600080fd5b506103ee610762366004612340565b60116020526000908152604090205481565b34801561078057600080fd5b506103ee61078f366004612340565b6001600160a01b031660009081526011602052604090205490565b3480156107b657600080fd5b506103b46107c536600461244e565b61126a565b3480156107d657600080fd5b506103ee6112c8565b3480156107eb57600080fd5b506103ee600e5481565b34801561080157600080fd5b506103b4610810366004612340565b6112fd565b34801561082157600080fd5b5061045b610830366004612340565b60076020526000908152604090205460ff1681565b34801561085157600080fd5b5061057b61dead81565b34801561086757600080fd5b506003546001600160a01b031661057b565b34801561088557600080fd5b5060035461057b906001600160a01b031681565b3480156108a557600080fd5b506103b461134e565b3480156108ba57600080fd5b50600d546105c3906301000000900460ff1681565b3480156108db57600080fd5b5061045b6108ea366004612340565b60086020526000908152604090205460ff1681565b34801561090b57600080fd5b5060408051808201909152600681526553545249444560d01b6020820152610434565b34801561093a57600080fd5b506103b46109493660046124ac565b611392565b34801561095a57600080fd5b506103ee600a5481565b34801561097057600080fd5b5061045b61097f366004612422565b611459565b34801561099057600080fd5b5060145461057b906001600160a01b031681565b3480156109b057600080fd5b5061045b6109bf366004612422565b6114d5565b3480156109d057600080fd5b5061045b6109df366004612340565b60066020526000908152604090205460ff1681565b348015610a0057600080fd5b506103b4610a0f366004612340565b6114e2565b348015610a2057600080fd5b506104346040518060400160405280600681526020016553545249444560d01b81525081565b348015610a5257600080fd5b506103b4610a613660046124de565b61167a565b348015610a7257600080fd5b50600d54610a8890600160381b900461ffff1681565b60405161ffff90911681526020016103f8565b348015610aa757600080fd5b5061045b610ab6366004612340565b6001600160a01b031660009081526002602052604090205460ff1690565b348015610ae057600080fd5b5060015461045b90600160a81b900460ff1681565b348015610b0157600080fd5b50600d546105c390640100000000900460ff1681565b348015610b2357600080fd5b5061057b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610b4b57600080fd5b50600d5461045b90610100900460ff1681565b348015610b6a57600080fd5b5060045461057b906001600160a01b031681565b348015610b8a57600080fd5b506103b4611791565b348015610b9f57600080fd5b5060015461045b90600160a01b900460ff1681565b348015610bc057600080fd5b5060045461045b90600160a01b900460ff1681565b348015610be157600080fd5b506104346040518060400160405280600e81526020016d14dd1c9a591948119bdc9dd85c9960921b81525081565b348015610c1b57600080fd5b5060005461057b906001600160a01b031681565b348015610c3b57600080fd5b506103ee610c4a36600461237a565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b348015610c8157600080fd5b50600d54610a889065010000000000900461ffff1681565b348015610ca557600080fd5b5061045b610cb4366004612340565b60026020526000908152604090205460ff1681565b348015610cd557600080fd5b5060015461057b906001600160a01b031681565b348015610cf557600080fd5b506103b4610d043660046124ac565b61180f565b348015610d1557600080fd5b506103b4610d243660046123f4565b6118ba565b6000610d3633848461193c565b5060015b92915050565b610d4c6012600a612677565b610d5a90633b9aca00612722565b81565b6000610d6a848484611a30565b6001600160a01b038416600090815260126020908152604080832033845290915290205482811015610dda5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b610dee8533610de98685612741565b61193c565b506001949350505050565b3360009081526002602052604090205460ff1680610e2157506003546001600160a01b031633145b610e3d5760405162461bcd60e51b8152600401610dd190612566565b600f805460ff9283166101000261ffff199091169290931691909117919091179055565b3360009081526002602052604090205460ff1680610e8957506003546001600160a01b031633145b610ea55760405162461bcd60e51b8152600401610dd190612566565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff1680610ef857506003546001600160a01b031633145b610f145760405162461bcd60e51b8152600401610dd190612566565b600d805468ffff000000000000001916600160381b61ffff84169081029190911790915560051115610fa25760405162461bcd60e51b815260206004820152603160248201527f4174206c6561737420352c2072656d656d62657220746861742069742773202f604482015270313030302c20736f2035203d20302e352560781b6064820152608401610dd1565b50565b3360008181526012602090815260408083206001600160a01b03871684529091528120549091610d36918590610de99086906125fa565b3360009081526002602052604090205460ff168061100457506003546001600160a01b031633145b6110205760405162461bcd60e51b8152600401610dd190612566565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061107357506003546001600160a01b031633145b61108f5760405162461bcd60e51b8152600401610dd190612566565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff16806110e257506003546001600160a01b031633145b6110fe5760405162461bcd60e51b8152600401610dd190612566565b600d805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061113957506003546001600160a01b031633145b6111555760405162461bcd60e51b8152600401610dd190612566565b600d805466ffff000000000019166501000000000061ffff84169081029190911790915560011115610fa25760405162461bcd60e51b815260206004820152602e60248201527f4174206c6561737420312c2072656d656d62657220746861742069742773202f60448201526d3130302c20736f2031203d20312560901b6064820152608401610dd1565b3360009081526002602052604090205460ff168061120857506003546001600160a01b031633145b6112245760405162461bcd60e51b8152600401610dd190612566565b6004546001600160a01b038381169116141561123f57600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061129257506003546001600160a01b031633145b6112ae5760405162461bcd60e51b8152600401610dd190612566565b600d80549115156101000261ff0019909216919091179055565b60006112f86103e8600d60079054906101000a900461ffff1661ffff16600a546112f29190612722565b90611929565b905090565b6004546001600160a01b0316331461131457600080fd5b600380546001600160a01b039092166001600160a01b0319909216821790556000908152600260205260409020805460ff19166001179055565b6004546001600160a01b0316331461136557600080fd5b600154600160a81b900460ff161561137c57600080fd5b6001805461ffff60a01b1916600160a81b179055565b3360009081526002602052604090205460ff16806113ba57506003546001600160a01b031633145b6113d65760405162461bcd60e51b8152600401610dd190612566565b336000908152601160205260409020548111156113f257600080fd5b3360009081526011602052604081208054839290611411908490612741565b9250508190555080600a600082825461142a9190612741565b909155505060405181815261dead9030906000805160206127a88339815191529060200160405180910390a350565b3360009081526012602090815260408083206001600160a01b0386168452909152812054828110156114bc5760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610dd1565b6114cb3385610de98685612741565b5060019392505050565b6000610d36338484611a30565b3360009081526002602052604090205460ff168061150a57506003546001600160a01b031633145b6115265760405162461bcd60e51b8152600401610dd190612566565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a082319060240160206040518083038186803b15801561156a57600080fd5b505afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a291906124c5565b9050600081116115f45760405162461bcd60e51b815260206004820152601860248201527f4e6f20746f6b656e7320696e206f75722062616c616e636500000000000000006044820152606401610dd1565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b15801561163c57600080fd5b505af1158015611650573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611674919061246b565b50505050565b3360009081526002602052604090205460ff16806116a257506003546001600160a01b031633145b6116be5760405162461bcd60e51b8152600401610dd190612566565b600d805463ffff000019166201000060ff85811691820263ff0000001916929092176301000000928516929092029190911790915515801590611704575060008160ff16115b61173d5760405162461bcd60e51b815260206004820152600a6024820152694174206c65617374203160b01b6044820152606401610dd1565b600f8260ff161080156117535750600f8160ff16105b61178d5760405162461bcd60e51b815260206004820152600b60248201526a139bc81a1bdb995e5c1bdd60aa1b6044820152606401610dd1565b5050565b3360009081526002602052604090205460ff16806117b957506003546001600160a01b031633145b6117d55760405162461bcd60e51b8152600401610dd190612566565b60045460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561178d573d6000803e3d6000fd5b3360009081526002602052604090205460ff168061183757506003546001600160a01b031633145b6118535760405162461bcd60e51b8152600401610dd190612566565b3060009081526011602052604090205481106118b15760405162461bcd60e51b815260206004820152601f60248201527f6475646520746865726520617265206e6f7420656e6f75676820746f6b656e006044820152606401610dd1565b610fa281611b91565b3360009081526002602052604090205460ff16806118e257506003546001600160a01b031633145b6118fe5760405162461bcd60e51b8152600401610dd190612566565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b60006119358284612612565b9392505050565b6001600160a01b0383166119865760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610dd1565b6001600160a01b0382166119ce5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610dd1565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831660009081526005602052604081205460ff1680611a6f57506001600160a01b03831660009081526005602052604090205460ff165b80611a9257506001600160a01b03841660009081526002602052604090205460ff165b80611ab557506001600160a01b03831660009081526002602052604090205460ff165b905060006001600160a01b038516301480611ad857506001600160a01b03841630145b6013549091506000906001600160a01b038781169116148015611b1757506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b80611b5657506013546001600160a01b038681169116148015611b5657506001600160a01b038616737a250d5630b4cf539739df2c5dacb4c659f2488d145b90508280611b615750815b80611b695750805b15611b7e57611b79868686611e5d565b611b89565b611b89868686611eec565b505050505050565b600454600160a01b900460ff1615611bd75760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b6044820152606401610dd1565b6004805460ff60a01b1916600160a01b17905530600090815260116020526040812054601054909190611c12906064906112f290604b6122a4565b905082811115611c2a57600d5460ff1615611c2a5750815b80821015611c39575050611e4d565b604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110611c7257611c7261276e565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611cc657600080fd5b505afa158015611cda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfe919061235d565b81600181518110611d1157611d1161276e565b6001600160a01b03928316602091820292909201015260015460405163791ac94760e01b815291169063791ac94790611d57908690600090869030904290600401612589565b600060405180830381600087803b158015611d7157600080fd5b505af1158015611d85573d6000803e3d6000fd5b5050505060008247611d979190612741565b600f54909150600090611dc09060ff6201000082048116916112f29186916101009004166122a4565b90506000611dce8284612741565b6004546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611e09573d6000803e3d6000fd5b50600b546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611e44573d6000803e3d6000fd5b50505050505050505b506004805460ff60a01b19169055565b6001600160a01b03831660009081526011602052604081208054839290611e85908490612741565b90915550506001600160a01b03821660009081526011602052604081208054839290611eb29084906125fa565b92505081905550816001600160a01b0316836001600160a01b03166000805160206127a883398151915283604051611a2391815260200190565b6001600160a01b03831660009081526007602052604090205460ff16158015611f2e57506001600160a01b03821660009081526007602052604090205460ff16155b611f685760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610dd1565b600154600160a01b900460ff16611fc057600154600160a81b900460ff16611fbb5760405162461bcd60e51b8152600401610dd190602080825260049082015263053544f560e41b604082015260600190565b612005565b600154600160a81b900460ff1661200557816001600160a01b0316836001600160a01b03166000805160206127a88339815191526000604051611a2391815260200190565b6001600160a01b03831660009081526008602052604090205460ff166120395761202d6112c8565b81111561203957600080fd5b6001600160a01b03821660009081526009602052604090205460ff166120f557600d54600a5460649161207a916501000000000090910461ffff1690612722565b6120849190612612565b6001600160a01b0383166000908152601160205260409020546120a89083906125fa565b106120f55760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574206f6e20726563697069656e740000000000000000006044820152606401610dd1565b6013546000906001600160a01b038481169116148061212157506000546001600160a01b038481169116145b905060008061213084846122b0565b6010543060009081526011602052604090205492945090925010801561215e5750600d54610100900460ff16155b80156121745750600454600160a01b900460ff16155b1561219c5782801561218e5750600d54610100900460ff16155b1561219c5761219c84611b91565b6001600160a01b0386166000908152601160205260409020546121bf9085612312565b6001600160a01b0380881660009081526011602052604080822093909355908716815220546121ee908361231e565b6001600160a01b03861660009081526011602052604080822092909255308152205461221a908261231e565b30600081815260116020526040908190209290925590516001600160a01b038816906000805160206127a8833981519152906122599085815260200190565b60405180910390a3846001600160a01b0316866001600160a01b03166000805160206127a88339815191528460405161229491815260200190565b60405180910390a3505050505050565b60006119358284612722565b600080600083156122ce5750600d546301000000900460ff166122dc565b50600d5462010000900460ff165b600060646122ed60ff841688612722565b6122f79190612612565b905060006123058288612741565b9791965090945050505050565b60006119358284612741565b600061193582846125fa565b803560ff8116811461233b57600080fd5b919050565b60006020828403121561235257600080fd5b813561193581612784565b60006020828403121561236f57600080fd5b815161193581612784565b6000806040838503121561238d57600080fd5b823561239881612784565b915060208301356123a881612784565b809150509250929050565b6000806000606084860312156123c857600080fd5b83356123d381612784565b925060208401356123e381612784565b929592945050506040919091013590565b6000806040838503121561240757600080fd5b823561241281612784565b915060208301356123a881612799565b6000806040838503121561243557600080fd5b823561244081612784565b946020939093013593505050565b60006020828403121561246057600080fd5b813561193581612799565b60006020828403121561247d57600080fd5b815161193581612799565b60006020828403121561249a57600080fd5b813561ffff8116811461193557600080fd5b6000602082840312156124be57600080fd5b5035919050565b6000602082840312156124d757600080fd5b5051919050565b600080604083850312156124f157600080fd5b6124fa8361232a565b91506125086020840161232a565b90509250929050565b600060208083528351808285015260005b8181101561253e57858101830151858201604001528201612522565b81811115612550576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125d95784516001600160a01b0316835293830193918301916001016125b4565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561260d5761260d612758565b500190565b60008261262f57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561266f57816000190482111561265557612655612758565b8085161561266257918102915b93841c9390800290612639565b509250929050565b600061193560ff84168360008261269057506001610d3a565b8161269d57506000610d3a565b81600181146126b357600281146126bd576126d9565b6001915050610d3a565b60ff8411156126ce576126ce612758565b50506001821b610d3a565b5060208310610133831016604e8410600b84101617156126fc575081810a610d3a565b6127068383612634565b806000190482111561271a5761271a612758565b029392505050565b600081600019048311821515161561273c5761273c612758565b500290565b60008282101561275357612753612758565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610fa257600080fd5b8015158114610fa257600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f3d5f7353ddcba41aff2628b0c50b4f640c81fd8d942697e5fe3b505d704f01a64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103ad5760003560e01c8063893d20e8116101e5578063b91816111161010c578063cf309012116100a5578063e717fc3011610077578063e717fc3014610c75578063f4ea55ab14610c99578063f887ea4014610cc9578063fab2e05414610ce9578063fafab66514610d0957005b8063cf30901214610bb4578063d28d885214610bd5578063d46f2f6614610c0f578063dd62ed3e14610c2f57005b8063c78dc6fd116100de578063c78dc6fd14610b3f578063ca4b208b14610b5e578063cbc1cfd214610b7e578063cbe7003014610b9357005b8063b918161114610a9b578063c01bb48b14610ad4578063c664c31d14610af5578063c7639d8014610b1757005b8063a457c2d71161017e578063af1bb5c011610150578063af1bb5c0146109f4578063b09f126614610a14578063b0ef593714610a46578063b544d2e614610a6657005b8063a457c2d714610964578063a8aa1b3114610984578063a9059cbb146109a4578063ad95fc8f146109c457005b8063952eb8a7116101b7578063952eb8a7146108cf57806395d89b41146108ff578063a201b2a71461092e578063a253c06e1461094e57005b8063893d20e81461085b5780638da5cb5b146108795780638f793cb91461089957806393505052146108ae57005b806339509351116102d45780635bd263e71161026d57806370fbc7121161023f57806370fbc712146107ca57806378e97925146107df5780637cb97b2b146107f5578063826c89bd1461081557806382c4767b1461084557005b80635bd263e7146107275780636ebcf6071461074757806370a082311461077457806370bfcf40146107aa57005b80634147c6a7116102a65780634147c6a7146106975780634edebbba146106b7578063569ff644146106d757806357d8ae82146106f757005b8063395093511461060a5780633a32fea81461062a5780633f27cc481461064a5780633fe7e33c1461066a57005b806323b872dd116103465780632f575b4e116103185780632f575b4e14610593578063313ce567146105b357806332424aa3146105d557806334184e26146105ea57005b806323b872dd146104fb57806326e766131461051b5780632bfe87421461053b5780632d3e474a1461055b57005b806313f273831161037f57806313f273831461048b57806317668f1b146104a157806318160ddd146104d15780631eb25d13146104e657005b8063024c2ddd146103b657806306fdde03146104015780630907861314610441578063095ea7b31461046b57005b366103b457005b005b3480156103c257600080fd5b506103ee6103d136600461237a565b601260209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561040d57600080fd5b5060408051808201909152600e81526d14dd1c9a591948119bdc9dd85c9960921b60208201525b6040516103f89190612511565b34801561044d57600080fd5b50600d5461045b9060ff1681565b60405190151581526020016103f8565b34801561047757600080fd5b5061045b610486366004612422565b610d29565b34801561049757600080fd5b506103ee60105481565b3480156104ad57600080fd5b5061045b6104bc366004612340565b60056020526000908152604090205460ff1681565b3480156104dd57600080fd5b50600a546103ee565b3480156104f257600080fd5b506103ee610d40565b34801561050757600080fd5b5061045b6105163660046123b3565b610d5d565b34801561052757600080fd5b506103b46105363660046124de565b610df9565b34801561054757600080fd5b506103b46105563660046123f4565b610e61565b34801561056757600080fd5b50600b5461057b906001600160a01b031681565b6040516001600160a01b0390911681526020016103f8565b34801561059f57600080fd5b506103b46105ae366004612488565b610ed0565b3480156105bf57600080fd5b5060125b60405160ff90911681526020016103f8565b3480156105e157600080fd5b506105c3601281565b3480156105f657600080fd5b5060135461057b906001600160a01b031681565b34801561061657600080fd5b5061045b610625366004612422565b610fa5565b34801561063657600080fd5b506103b46106453660046123f4565b610fdc565b34801561065657600080fd5b506103b46106653660046123f4565b61104b565b34801561067657600080fd5b506103ee610685366004612340565b600c6020526000908152604090205481565b3480156106a357600080fd5b50600d546105c39062010000900460ff1681565b3480156106c357600080fd5b506103b46106d236600461244e565b6110ba565b3480156106e357600080fd5b506103b46106f2366004612488565b611111565b34801561070357600080fd5b5061045b610712366004612340565b60096020526000908152604090205460ff1681565b34801561073357600080fd5b506103b46107423660046123f4565b6111e0565b34801561075357600080fd5b506103ee610762366004612340565b60116020526000908152604090205481565b34801561078057600080fd5b506103ee61078f366004612340565b6001600160a01b031660009081526011602052604090205490565b3480156107b657600080fd5b506103b46107c536600461244e565b61126a565b3480156107d657600080fd5b506103ee6112c8565b3480156107eb57600080fd5b506103ee600e5481565b34801561080157600080fd5b506103b4610810366004612340565b6112fd565b34801561082157600080fd5b5061045b610830366004612340565b60076020526000908152604090205460ff1681565b34801561085157600080fd5b5061057b61dead81565b34801561086757600080fd5b506003546001600160a01b031661057b565b34801561088557600080fd5b5060035461057b906001600160a01b031681565b3480156108a557600080fd5b506103b461134e565b3480156108ba57600080fd5b50600d546105c3906301000000900460ff1681565b3480156108db57600080fd5b5061045b6108ea366004612340565b60086020526000908152604090205460ff1681565b34801561090b57600080fd5b5060408051808201909152600681526553545249444560d01b6020820152610434565b34801561093a57600080fd5b506103b46109493660046124ac565b611392565b34801561095a57600080fd5b506103ee600a5481565b34801561097057600080fd5b5061045b61097f366004612422565b611459565b34801561099057600080fd5b5060145461057b906001600160a01b031681565b3480156109b057600080fd5b5061045b6109bf366004612422565b6114d5565b3480156109d057600080fd5b5061045b6109df366004612340565b60066020526000908152604090205460ff1681565b348015610a0057600080fd5b506103b4610a0f366004612340565b6114e2565b348015610a2057600080fd5b506104346040518060400160405280600681526020016553545249444560d01b81525081565b348015610a5257600080fd5b506103b4610a613660046124de565b61167a565b348015610a7257600080fd5b50600d54610a8890600160381b900461ffff1681565b60405161ffff90911681526020016103f8565b348015610aa757600080fd5b5061045b610ab6366004612340565b6001600160a01b031660009081526002602052604090205460ff1690565b348015610ae057600080fd5b5060015461045b90600160a81b900460ff1681565b348015610b0157600080fd5b50600d546105c390640100000000900460ff1681565b348015610b2357600080fd5b5061057b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610b4b57600080fd5b50600d5461045b90610100900460ff1681565b348015610b6a57600080fd5b5060045461057b906001600160a01b031681565b348015610b8a57600080fd5b506103b4611791565b348015610b9f57600080fd5b5060015461045b90600160a01b900460ff1681565b348015610bc057600080fd5b5060045461045b90600160a01b900460ff1681565b348015610be157600080fd5b506104346040518060400160405280600e81526020016d14dd1c9a591948119bdc9dd85c9960921b81525081565b348015610c1b57600080fd5b5060005461057b906001600160a01b031681565b348015610c3b57600080fd5b506103ee610c4a36600461237a565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b348015610c8157600080fd5b50600d54610a889065010000000000900461ffff1681565b348015610ca557600080fd5b5061045b610cb4366004612340565b60026020526000908152604090205460ff1681565b348015610cd557600080fd5b5060015461057b906001600160a01b031681565b348015610cf557600080fd5b506103b4610d043660046124ac565b61180f565b348015610d1557600080fd5b506103b4610d243660046123f4565b6118ba565b6000610d3633848461193c565b5060015b92915050565b610d4c6012600a612677565b610d5a90633b9aca00612722565b81565b6000610d6a848484611a30565b6001600160a01b038416600090815260126020908152604080832033845290915290205482811015610dda5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b610dee8533610de98685612741565b61193c565b506001949350505050565b3360009081526002602052604090205460ff1680610e2157506003546001600160a01b031633145b610e3d5760405162461bcd60e51b8152600401610dd190612566565b600f805460ff9283166101000261ffff199091169290931691909117919091179055565b3360009081526002602052604090205460ff1680610e8957506003546001600160a01b031633145b610ea55760405162461bcd60e51b8152600401610dd190612566565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff1680610ef857506003546001600160a01b031633145b610f145760405162461bcd60e51b8152600401610dd190612566565b600d805468ffff000000000000001916600160381b61ffff84169081029190911790915560051115610fa25760405162461bcd60e51b815260206004820152603160248201527f4174206c6561737420352c2072656d656d62657220746861742069742773202f604482015270313030302c20736f2035203d20302e352560781b6064820152608401610dd1565b50565b3360008181526012602090815260408083206001600160a01b03871684529091528120549091610d36918590610de99086906125fa565b3360009081526002602052604090205460ff168061100457506003546001600160a01b031633145b6110205760405162461bcd60e51b8152600401610dd190612566565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061107357506003546001600160a01b031633145b61108f5760405162461bcd60e51b8152600401610dd190612566565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff16806110e257506003546001600160a01b031633145b6110fe5760405162461bcd60e51b8152600401610dd190612566565b600d805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061113957506003546001600160a01b031633145b6111555760405162461bcd60e51b8152600401610dd190612566565b600d805466ffff000000000019166501000000000061ffff84169081029190911790915560011115610fa25760405162461bcd60e51b815260206004820152602e60248201527f4174206c6561737420312c2072656d656d62657220746861742069742773202f60448201526d3130302c20736f2031203d20312560901b6064820152608401610dd1565b3360009081526002602052604090205460ff168061120857506003546001600160a01b031633145b6112245760405162461bcd60e51b8152600401610dd190612566565b6004546001600160a01b038381169116141561123f57600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061129257506003546001600160a01b031633145b6112ae5760405162461bcd60e51b8152600401610dd190612566565b600d80549115156101000261ff0019909216919091179055565b60006112f86103e8600d60079054906101000a900461ffff1661ffff16600a546112f29190612722565b90611929565b905090565b6004546001600160a01b0316331461131457600080fd5b600380546001600160a01b039092166001600160a01b0319909216821790556000908152600260205260409020805460ff19166001179055565b6004546001600160a01b0316331461136557600080fd5b600154600160a81b900460ff161561137c57600080fd5b6001805461ffff60a01b1916600160a81b179055565b3360009081526002602052604090205460ff16806113ba57506003546001600160a01b031633145b6113d65760405162461bcd60e51b8152600401610dd190612566565b336000908152601160205260409020548111156113f257600080fd5b3360009081526011602052604081208054839290611411908490612741565b9250508190555080600a600082825461142a9190612741565b909155505060405181815261dead9030906000805160206127a88339815191529060200160405180910390a350565b3360009081526012602090815260408083206001600160a01b0386168452909152812054828110156114bc5760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610dd1565b6114cb3385610de98685612741565b5060019392505050565b6000610d36338484611a30565b3360009081526002602052604090205460ff168061150a57506003546001600160a01b031633145b6115265760405162461bcd60e51b8152600401610dd190612566565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a082319060240160206040518083038186803b15801561156a57600080fd5b505afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a291906124c5565b9050600081116115f45760405162461bcd60e51b815260206004820152601860248201527f4e6f20746f6b656e7320696e206f75722062616c616e636500000000000000006044820152606401610dd1565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b15801561163c57600080fd5b505af1158015611650573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611674919061246b565b50505050565b3360009081526002602052604090205460ff16806116a257506003546001600160a01b031633145b6116be5760405162461bcd60e51b8152600401610dd190612566565b600d805463ffff000019166201000060ff85811691820263ff0000001916929092176301000000928516929092029190911790915515801590611704575060008160ff16115b61173d5760405162461bcd60e51b815260206004820152600a6024820152694174206c65617374203160b01b6044820152606401610dd1565b600f8260ff161080156117535750600f8160ff16105b61178d5760405162461bcd60e51b815260206004820152600b60248201526a139bc81a1bdb995e5c1bdd60aa1b6044820152606401610dd1565b5050565b3360009081526002602052604090205460ff16806117b957506003546001600160a01b031633145b6117d55760405162461bcd60e51b8152600401610dd190612566565b60045460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561178d573d6000803e3d6000fd5b3360009081526002602052604090205460ff168061183757506003546001600160a01b031633145b6118535760405162461bcd60e51b8152600401610dd190612566565b3060009081526011602052604090205481106118b15760405162461bcd60e51b815260206004820152601f60248201527f6475646520746865726520617265206e6f7420656e6f75676820746f6b656e006044820152606401610dd1565b610fa281611b91565b3360009081526002602052604090205460ff16806118e257506003546001600160a01b031633145b6118fe5760405162461bcd60e51b8152600401610dd190612566565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b60006119358284612612565b9392505050565b6001600160a01b0383166119865760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610dd1565b6001600160a01b0382166119ce5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610dd1565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831660009081526005602052604081205460ff1680611a6f57506001600160a01b03831660009081526005602052604090205460ff165b80611a9257506001600160a01b03841660009081526002602052604090205460ff165b80611ab557506001600160a01b03831660009081526002602052604090205460ff165b905060006001600160a01b038516301480611ad857506001600160a01b03841630145b6013549091506000906001600160a01b038781169116148015611b1757506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b80611b5657506013546001600160a01b038681169116148015611b5657506001600160a01b038616737a250d5630b4cf539739df2c5dacb4c659f2488d145b90508280611b615750815b80611b695750805b15611b7e57611b79868686611e5d565b611b89565b611b89868686611eec565b505050505050565b600454600160a01b900460ff1615611bd75760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b6044820152606401610dd1565b6004805460ff60a01b1916600160a01b17905530600090815260116020526040812054601054909190611c12906064906112f290604b6122a4565b905082811115611c2a57600d5460ff1615611c2a5750815b80821015611c39575050611e4d565b604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110611c7257611c7261276e565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611cc657600080fd5b505afa158015611cda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfe919061235d565b81600181518110611d1157611d1161276e565b6001600160a01b03928316602091820292909201015260015460405163791ac94760e01b815291169063791ac94790611d57908690600090869030904290600401612589565b600060405180830381600087803b158015611d7157600080fd5b505af1158015611d85573d6000803e3d6000fd5b5050505060008247611d979190612741565b600f54909150600090611dc09060ff6201000082048116916112f29186916101009004166122a4565b90506000611dce8284612741565b6004546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611e09573d6000803e3d6000fd5b50600b546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611e44573d6000803e3d6000fd5b50505050505050505b506004805460ff60a01b19169055565b6001600160a01b03831660009081526011602052604081208054839290611e85908490612741565b90915550506001600160a01b03821660009081526011602052604081208054839290611eb29084906125fa565b92505081905550816001600160a01b0316836001600160a01b03166000805160206127a883398151915283604051611a2391815260200190565b6001600160a01b03831660009081526007602052604090205460ff16158015611f2e57506001600160a01b03821660009081526007602052604090205460ff16155b611f685760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610dd1565b600154600160a01b900460ff16611fc057600154600160a81b900460ff16611fbb5760405162461bcd60e51b8152600401610dd190602080825260049082015263053544f560e41b604082015260600190565b612005565b600154600160a81b900460ff1661200557816001600160a01b0316836001600160a01b03166000805160206127a88339815191526000604051611a2391815260200190565b6001600160a01b03831660009081526008602052604090205460ff166120395761202d6112c8565b81111561203957600080fd5b6001600160a01b03821660009081526009602052604090205460ff166120f557600d54600a5460649161207a916501000000000090910461ffff1690612722565b6120849190612612565b6001600160a01b0383166000908152601160205260409020546120a89083906125fa565b106120f55760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574206f6e20726563697069656e740000000000000000006044820152606401610dd1565b6013546000906001600160a01b038481169116148061212157506000546001600160a01b038481169116145b905060008061213084846122b0565b6010543060009081526011602052604090205492945090925010801561215e5750600d54610100900460ff16155b80156121745750600454600160a01b900460ff16155b1561219c5782801561218e5750600d54610100900460ff16155b1561219c5761219c84611b91565b6001600160a01b0386166000908152601160205260409020546121bf9085612312565b6001600160a01b0380881660009081526011602052604080822093909355908716815220546121ee908361231e565b6001600160a01b03861660009081526011602052604080822092909255308152205461221a908261231e565b30600081815260116020526040908190209290925590516001600160a01b038816906000805160206127a8833981519152906122599085815260200190565b60405180910390a3846001600160a01b0316866001600160a01b03166000805160206127a88339815191528460405161229491815260200190565b60405180910390a3505050505050565b60006119358284612722565b600080600083156122ce5750600d546301000000900460ff166122dc565b50600d5462010000900460ff165b600060646122ed60ff841688612722565b6122f79190612612565b905060006123058288612741565b9791965090945050505050565b60006119358284612741565b600061193582846125fa565b803560ff8116811461233b57600080fd5b919050565b60006020828403121561235257600080fd5b813561193581612784565b60006020828403121561236f57600080fd5b815161193581612784565b6000806040838503121561238d57600080fd5b823561239881612784565b915060208301356123a881612784565b809150509250929050565b6000806000606084860312156123c857600080fd5b83356123d381612784565b925060208401356123e381612784565b929592945050506040919091013590565b6000806040838503121561240757600080fd5b823561241281612784565b915060208301356123a881612799565b6000806040838503121561243557600080fd5b823561244081612784565b946020939093013593505050565b60006020828403121561246057600080fd5b813561193581612799565b60006020828403121561247d57600080fd5b815161193581612799565b60006020828403121561249a57600080fd5b813561ffff8116811461193557600080fd5b6000602082840312156124be57600080fd5b5035919050565b6000602082840312156124d757600080fd5b5051919050565b600080604083850312156124f157600080fd5b6124fa8361232a565b91506125086020840161232a565b90509250929050565b600060208083528351808285015260005b8181101561253e57858101830151858201604001528201612522565b81811115612550576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125d95784516001600160a01b0316835293830193918301916001016125b4565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561260d5761260d612758565b500190565b60008261262f57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561266f57816000190482111561265557612655612758565b8085161561266257918102915b93841c9390800290612639565b509250929050565b600061193560ff84168360008261269057506001610d3a565b8161269d57506000610d3a565b81600181146126b357600281146126bd576126d9565b6001915050610d3a565b60ff8411156126ce576126ce612758565b50506001821b610d3a565b5060208310610133831016604e8410600b84101617156126fc575081810a610d3a565b6127068383612634565b806000190482111561271a5761271a612758565b029392505050565b600081600019048311821515161561273c5761273c612758565b500290565b60008282101561275357612753612758565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610fa257600080fd5b8015158114610fa257600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f3d5f7353ddcba41aff2628b0c50b4f640c81fd8d942697e5fe3b505d704f01a64736f6c63430008070033

Deployed Bytecode Sourcemap

13334:11491:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14802:68;;;;;;;;;;-1:-1:-1;14802:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4944:25:1;;;4932:2;4917:18;14802:68:0;;;;;;;;22643:85;;;;;;;;;;-1:-1:-1;22715:5:0;;;;;;;;;;;;-1:-1:-1;;;22715:5:0;;;;22643:85;;;;;;;:::i;14295:25::-;;;;;;;;;;-1:-1:-1;14295:25:0;;;;;;;;;;;4300:14:1;;4293:22;4275:41;;4263:2;4248:18;14295:25:0;4135:187:1;23385:161:0;;;;;;;;;;-1:-1:-1;23385:161:0;;;;;:::i;:::-;;:::i;14684:57::-;;;;;;;;;;;;;;;;13449:40;;;;;;;;;;-1:-1:-1;13449:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20372:108;;;;;;;;;;-1:-1:-1;20454:18:0;;20372:108;;13862:68;;;;;;;;;;;;;:::i;23863:392::-;;;;;;;;;;-1:-1:-1;23863:392:0;;;;;:::i;:::-;;:::i;19905:128::-;;;;;;;;;;-1:-1:-1;19905:128:0;;;;;:::i;:::-;;:::i;12623:106::-;;;;;;;;;;-1:-1:-1;12623:106:0;;;;;:::i;:::-;;:::i;14160:78::-;;;;;;;;;;-1:-1:-1;14160:78:0;;;;-1:-1:-1;;;;;14160:78:0;;;;;;-1:-1:-1;;;;;3812:32:1;;;3794:51;;3782:2;3767:18;14160:78:0;3648:203:1;20970:168:0;;;;;;;;;;-1:-1:-1;20970:168:0;;;;;:::i;:::-;;:::i;22833:85::-;;;;;;;;;;-1:-1:-1;13853:2:0;22833:85;;;12417:4:1;12405:17;;;12387:36;;12375:2;12360:18;22833:85:0;12245:184:1;13819:36:0;;;;;;;;;;;;13853:2;13819:36;;14879:27;;;;;;;;;;-1:-1:-1;14879:27:0;;;;-1:-1:-1;;;;;14879:27:0;;;24265:205;;;;;;;;;;-1:-1:-1;24265:205:0;;;;;:::i;:::-;;:::i;21469:132::-;;;;;;;;;;-1:-1:-1;21469:132:0;;;;;:::i;:::-;;:::i;21337:124::-;;;;;;;;;;-1:-1:-1;21337:124:0;;;;;:::i;:::-;;:::i;14247:39::-;;;;;;;;;;-1:-1:-1;14247:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;14367:24;;;;;;;;;;-1:-1:-1;14367:24:0;;;;;;;;;;;22458:86;;;;;;;;;;-1:-1:-1;22458:86:0;;;;;:::i;:::-;;:::i;21146:183::-;;;;;;;;;;-1:-1:-1;21146:183:0;;;;;:::i;:::-;;:::i;13649:55::-;;;;;;;;;;-1:-1:-1;13649:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21852:166;;;;;;;;;;-1:-1:-1;21852:166:0;;;;;:::i;:::-;;:::i;14750:45::-;;;;;;;;;;-1:-1:-1;14750:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;22926:121;;;;;;;;;;-1:-1:-1;22926:121:0;;;;;:::i;:::-;-1:-1:-1;;;;;23021:18:0;22994:7;23021:18;;;:9;:18;;;;;;;22926:121;20273:91;;;;;;;;;;-1:-1:-1;20273:91:0;;;;;:::i;:::-;;:::i;16397:114::-;;;;;;;;;;;;;:::i;14541:24::-;;;;;;;;;;;;;;;;21722:122;;;;;;;;;;-1:-1:-1;21722:122:0;;;;;:::i;:::-;;:::i;13544:40::-;;;;;;;;;;-1:-1:-1;13544:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14080:73;;;;;;;;;;;;14111:42;14080:73;;22552:83;;;;;;;;;;-1:-1:-1;22622:5:0;;-1:-1:-1;;;;;22622:5:0;22552:83;;12859:20;;;;;;;;;;-1:-1:-1;12859:20:0;;;;-1:-1:-1;;;;;12859:20:0;;;19597:141;;;;;;;;;;;;;:::i;14398:25::-;;;;;;;;;;-1:-1:-1;14398:25:0;;;;;;;;;;;13591:51;;;;;;;;;;-1:-1:-1;13591:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22736:89;;;;;;;;;;-1:-1:-1;22810:7:0;;;;;;;;;;;;-1:-1:-1;;;22810:7:0;;;;22736:89;;22026:249;;;;;;;;;;-1:-1:-1;22026:249:0;;;;;:::i;:::-;;:::i;13937:48::-;;;;;;;;;;;;;;;;24478:342;;;;;;;;;;-1:-1:-1;24478:342:0;;;;;:::i;:::-;;:::i;14913:26::-;;;;;;;;;;-1:-1:-1;14913:26:0;;;;-1:-1:-1;;;;;14913:26:0;;;23055:167;;;;;;;;;;-1:-1:-1;23055:167:0;;;;;:::i;:::-;;:::i;13496:41::-;;;;;;;;;;-1:-1:-1;13496:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20682:280;;;;;;;;;;-1:-1:-1;20682:280:0;;;;;:::i;:::-;;:::i;13771:41::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13771:41:0;;;;;20041:224;;;;;;;;;;-1:-1:-1;20041:224:0;;;;;:::i;:::-;;:::i;14505:29::-;;;;;;;;;;-1:-1:-1;14505:29:0;;;;-1:-1:-1;;;14505:29:0;;;;;;;;;11059:6:1;11047:19;;;11029:38;;11017:2;11002:18;14505:29:0;10885:188:1;12516:99:0;;;;;;;;;;-1:-1:-1;12516:99:0;;;;;:::i;:::-;-1:-1:-1;;;;;12594:13:0;12570:4;12594:13;;;:7;:13;;;;;;;;;12516:99;12425:33;;;;;;;;;;-1:-1:-1;12425:33:0;;;;-1:-1:-1;;;12425:33:0;;;;;;14430:29;;;;;;;;;;-1:-1:-1;14430:29:0;;;;;;;;;;;13992:81;;;;;;;;;;;;14031:42;13992:81;;14327:31;;;;;;;;;;-1:-1:-1;14327:31:0;;;;;;;;;;;12886:24;;;;;;;;;;-1:-1:-1;12886:24:0;;;;-1:-1:-1;;;;;12886:24:0;;;19746:151;;;;;;;;;;;;;:::i;12387:31::-;;;;;;;;;;-1:-1:-1;12387:31:0;;;;-1:-1:-1;;;12387:31:0;;;;;;13104:18;;;;;;;;;;-1:-1:-1;13104:18:0;;;;-1:-1:-1;;;13104:18:0;;;;;;13717:47;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13717:47:0;;;;;11067:74;;;;;;;;;;-1:-1:-1;11067:74:0;;;;-1:-1:-1;;;;;11067:74:0;;;23230:147;;;;;;;;;;-1:-1:-1;23230:147:0;;;;;:::i;:::-;-1:-1:-1;;;;;23341:19:0;;;23314:7;23341:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;23230:147;14468:30;;;;;;;;;;-1:-1:-1;14468:30:0;;;;;;;;;;;12467:40;;;;;;;;;;-1:-1:-1;12467:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11148:65;;;;;;;;;;-1:-1:-1;11148:65:0;;;;-1:-1:-1;;;;;11148:65:0;;;20488:186;;;;;;;;;;-1:-1:-1;20488:186:0;;;;;:::i;:::-;;:::i;21609:105::-;;;;;;;;;;-1:-1:-1;21609:105:0;;;;;:::i;:::-;;:::i;23385:161::-;23462:4;23479:37;23488:10;23500:7;23509:6;23479:8;:37::i;:::-;-1:-1:-1;23534:4:0;23385:161;;;;;:::o;13862:68::-;13916:13;13853:2;13916;:13;:::i;:::-;13901:29;;:11;:29;:::i;:::-;13862:68;:::o;23863:392::-;23963:4;23980:36;23990:6;23998:9;24009:6;23980:9;:36::i;:::-;-1:-1:-1;;;;;24056:19:0;;24029:24;24056:19;;;:11;:19;;;;;;;;24076:10;24056:31;;;;;;;;24106:26;;;;24098:59;;;;-1:-1:-1;;;24098:59:0;;6908:2:1;24098:59:0;;;6890:21:1;6947:2;6927:18;;;6920:30;-1:-1:-1;;;6966:18:1;;;6959:50;7026:18;;24098:59:0;;;;;;;;;24170:55;24179:6;24187:10;24199:25;24218:6;24199:16;:25;:::i;:::-;24170:8;:55::i;:::-;-1:-1:-1;24243:4:0;;23863:392;-1:-1:-1;;;;23863:392:0:o;19905:128::-;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;19977:8:::1;:14:::0;;::::1;20002:23:::0;;::::1;19977:14;20002:23;-1:-1:-1::0;;20002:23:0;;;19977:14;;;::::1;20002:23:::0;;;;;;;::::1;::::0;;19905:128::o;12623:106::-;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12700:13:0;;;::::1;;::::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;12700:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12623:106::o;20970:168::-;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;21031:8:::1;:16:::0;;-1:-1:-1;;21031:16:0::1;-1:-1:-1::0;;;21031:16:0::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;21075:1:::1;-1:-1:-1::0;21066:10:0::1;21058:72;;;::::0;-1:-1:-1;;;21058:72:0;;5784:2:1;21058:72:0::1;::::0;::::1;5766:21:1::0;5823:2;5803:18;;;5796:30;5862:34;5842:18;;;5835:62;-1:-1:-1;;;5913:18:1;;;5906:47;5970:19;;21058:72:0::1;5582:413:1::0;21058:72:0::1;20970:168:::0;:::o;24265:205::-;24373:10;24347:4;24394:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;24394:32:0;;;;;;;;;;24347:4;;24364:76;;24385:7;;24394:45;;24429:10;;24394:45;:::i;21469:132::-;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21556:29:0;;;::::1;;::::0;;;:23:::1;:29;::::0;;;;:37;;-1:-1:-1;;21556:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21469:132::o;21337:124::-;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21420:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:33;;-1:-1:-1;;21420:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21337:124::o;22458:86::-;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;22522:6:::1;:14:::0;;-1:-1:-1;;22522:14:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22458:86::o;21146:183::-;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;21215:10:::1;:22:::0;;-1:-1:-1;;21215:22:0::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;21256:14:0::1;21248:73;;;::::0;-1:-1:-1;;;21248:73:0;;7594:2:1;21248:73:0::1;::::0;::::1;7576:21:1::0;7633:2;7613:18;;;7606:30;7672:34;7652:18;;;7645:62;-1:-1:-1;;;7723:18:1;;;7716:44;7777:19;;21248:73:0::1;7392:410:1::0;21852:166:0;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;21960:9:::1;::::0;-1:-1:-1;;;;;21948:21:0;;::::1;21960:9:::0;::::1;21948:21;21946:24;21938:33;;;::::0;::::1;;-1:-1:-1::0;;;;;21982:20:0;;;::::1;;::::0;;;:8:::1;:20;::::0;;;;:28;;-1:-1:-1;;21982:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21852:166::o;20273:91::-;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;20337:11:::1;:19:::0;;;::::1;;;;-1:-1:-1::0;;20337:19:0;;::::1;::::0;;;::::1;::::0;;20273:91::o;16397:114::-;16436:4;16461:41;16497:4;16483:8;;;;;;;;;;;16462:29;;:18;;:29;;;;:::i;:::-;16461:35;;:41::i;:::-;16453:50;;16397:114;:::o;21722:122::-;12967:9;;-1:-1:-1;;;;;12967:9:0;12955:10;:21;12947:30;;;;;;21785:5:::1;:16:::0;;-1:-1:-1;;;;;21785:16:0;;::::1;-1:-1:-1::0;;;;;;21785:16:0;;::::1;::::0;::::1;::::0;;:5:::1;21812:17:::0;;;:7:::1;:17;::::0;;;;:24;;-1:-1:-1;;21812:24:0::1;21785:16:::0;21812:24:::1;::::0;;21722:122::o;19597:141::-;12967:9;;-1:-1:-1;;;;;12967:9:0;12955:10;:21;12947:30;;;;;;19646:13:::1;::::0;-1:-1:-1;;;19646:13:0;::::1;;;:22;19638:31;;;::::0;::::1;;19680:11;:19:::0;;-1:-1:-1;;;;19710:20:0;-1:-1:-1;;;19710:20:0::1;::::0;;19597:141::o;22026:249::-;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;22111:10:::1;22101:21;::::0;;;:9:::1;:21;::::0;;;;;:31;-1:-1:-1;22101:31:0::1;22093:40;;;::::0;::::1;;22154:10;22144:21;::::0;;;:9:::1;:21;::::0;;;;:31;;22169:6;;22144:21;:31:::1;::::0;22169:6;;22144:31:::1;:::i;:::-;;;;;;;;22208:6;22186:18;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;22230:37:0::1;::::0;4944:25:1;;;14111:42:0::1;::::0;22247:4:::1;::::0;-1:-1:-1;;;;;;;;;;;22230:37:0;4932:2:1;4917:18;22230:37:0::1;;;;;;;22026:249:::0;:::o;24478:342::-;24621:10;24565:4;24609:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;24609:32:0;;;;;;;;;;24660:35;;;;24652:60;;;;-1:-1:-1;;;24652:60:0;;10406:2:1;24652:60:0;;;10388:21:1;10445:2;10425:18;;;10418:30;-1:-1:-1;;;10464:18:1;;;10457:42;10516:18;;24652:60:0;10204:336:1;24652:60:0;24725:65;24734:10;24746:7;24755:34;24774:15;24755:16;:34;:::i;24725:65::-;-1:-1:-1;24808:4:0;;24478:342;-1:-1:-1;;;24478:342:0:o;23055:167::-;23135:4;23152:40;23162:10;23174:9;23185:6;23152:9;:40::i;20682:280::-;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;20815:30:::1;::::0;-1:-1:-1;;;20815:30:0;;20839:4:::1;20815:30;::::0;::::1;3794:51:1::0;20772:10:0;;20752:11:::1;::::0;-1:-1:-1;;;;;20815:15:0;::::1;::::0;::::1;::::0;3767:18:1;;20815:30:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20794:51;;20875:1;20864:10;:12;20856:49;;;::::0;-1:-1:-1;;;20856:49:0;;8353:2:1;20856:49:0::1;::::0;::::1;8335:21:1::0;8392:2;8372:18;;;8365:30;8431:26;8411:18;;;8404:54;8475:18;;20856:49:0::1;8151:348:1::0;20856:49:0::1;20916:38;::::0;-1:-1:-1;;;20916:38:0;;20931:10:::1;20916:38;::::0;::::1;4030:51:1::0;4097:18;;;4090:34;;;-1:-1:-1;;;;;20916:14:0;::::1;::::0;::::1;::::0;4003:18:1;;20916:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20741:221;;20682:280:::0;:::o;20041:224::-;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;20110:7:::1;:13:::0;;-1:-1:-1;;20134:15:0;20110:13;::::1;::::0;;::::1;::::0;;::::1;-1:-1:-1::0;;20134:15:0;;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;20168:7;;;;:19:::1;;;20186:1;20179:4;:8;;;20168:19;20160:42;;;::::0;-1:-1:-1;;;20160:42:0;;9398:2:1;20160:42:0::1;::::0;::::1;9380:21:1::0;9437:2;9417:18;;;9410:30;-1:-1:-1;;;9456:18:1;;;9449:40;9506:18;;20160:42:0::1;9196:334:1::0;20160:42:0::1;20226:2;20221:3;:7;;;:20;;;;;20239:2;20232:4;:9;;;20221:20;20213:44;;;::::0;-1:-1:-1;;;20213:44:0;;9058:2:1;20213:44:0::1;::::0;::::1;9040:21:1::0;9097:2;9077:18;;;9070:30;-1:-1:-1;;;9116:18:1;;;9109:41;9167:18;;20213:44:0::1;8856:335:1::0;20213:44:0::1;20041:224:::0;;:::o;19746:151::-;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;19861:9:::1;::::0;19853:36:::1;::::0;19821:21:::1;::::0;-1:-1:-1;;;;;19861:9:0::1;::::0;19853:36;::::1;;;::::0;19821:21;;19803:15:::1;19853:36:::0;19803:15;19853:36;19821:21;19861:9;19853:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;20488:186:::0;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;20595:4:::1;20577:24;::::0;;;:9:::1;:24;::::0;;;;;20568:33;::::1;20560:77;;;::::0;-1:-1:-1;;;20560:77:0;;6202:2:1;20560:77:0::1;::::0;::::1;6184:21:1::0;6241:2;6221:18;;;6214:30;6280:33;6260:18;;;6253:61;6331:18;;20560:77:0::1;6000:355:1::0;20560:77:0::1;20648:18;20659:6;20648:10;:18::i;21609:105::-:0;12785:10;12777:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12812:5:0;;-1:-1:-1;;;;;12812:5:0;12800:10;:17;12777:40;12768:63;;;;-1:-1:-1;;;12768:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21684:14:0;;;::::1;;::::0;;;:8:::1;:14;::::0;;;;:22;;-1:-1:-1;;21684:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21609:105::o;1584:98::-;1642:7;1669:5;1673:1;1669;:5;:::i;:::-;1662:12;1584:98;-1:-1:-1;;;1584:98:0:o;23552:303::-;-1:-1:-1;;;;;23646:20:0;;23638:50;;;;-1:-1:-1;;;23638:50:0;;6562:2:1;23638:50:0;;;6544:21:1;6601:2;6581:18;;;6574:30;-1:-1:-1;;;6620:18:1;;;6613:47;6677:18;;23638:50:0;6360:341:1;23638:50:0;-1:-1:-1;;;;;23707:21:0;;23699:49;;;;-1:-1:-1;;;23699:49:0;;8009:2:1;23699:49:0;;;7991:21:1;8048:2;8028:18;;;8021:30;-1:-1:-1;;;8067:18:1;;;8060:45;8122:18;;23699:49:0;7807:339:1;23699:49:0;-1:-1:-1;;;;;23761:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;23814:33;;4944:25:1;;;23814:33:0;;4917:18:1;23814:33:0;;;;;;;;23552:303;;;:::o;15723:666::-;-1:-1:-1;;;;;15830:16:0;;15811:15;15830:16;;;:8;:16;;;;;;;;;:39;;-1:-1:-1;;;;;;15850:19:0;;;;;;:8;:19;;;;;;;;15830:39;:58;;;-1:-1:-1;;;;;;15873:15:0;;;;;;:7;:15;;;;;;;;15830:58;:80;;;-1:-1:-1;;;;;;15892:18:0;;;;;;:7;:18;;;;;;;;15830:80;15811:100;-1:-1:-1;15924:23:0;-1:-1:-1;;;;;15949:21:0;;15965:4;15949:21;;:49;;-1:-1:-1;;;;;;15974:24:0;;15993:4;15974:24;15949:49;16051:12;;15924:75;;-1:-1:-1;16012:24:0;;-1:-1:-1;;;;;16041:22:0;;;16051:12;;16041:22;:52;;;;-1:-1:-1;;;;;;16067:26:0;;14031:42;16067:26;16041:52;16040:121;;;-1:-1:-1;16121:12:0;;-1:-1:-1;;;;;16108:25:0;;;16121:12;;16108:25;:52;;;;-1:-1:-1;;;;;;16137:23:0;;14031:42;16137:23;16108:52;16012:150;;16179:10;:32;;;;16193:18;16179:32;:55;;;;16215:19;16179:55;16175:205;;;16251:43;16268:6;16276:9;16287:6;16251:16;:43::i;:::-;16175:205;;;16327:41;16342:6;16350:9;16361:6;16327:14;:41::i;:::-;15798:591;;;15723:666;;;:::o;18260:1099::-;13165:6;;-1:-1:-1;;;13165:6:0;;;;13164:7;13156:29;;;;-1:-1:-1;;;13156:29:0;;7257:2:1;13156:29:0;;;7239:21:1;7296:1;7276:18;;;7269:29;-1:-1:-1;;;7314:18:1;;;7307:39;7363:18;;13156:29:0;7055:332:1;13156:29:0;13196:6;:13;;-1:-1:-1;;;;13196:13:0;-1:-1:-1;;;13196:13:0;;;18366:4:::1;13196:13:::0;18348:24;;;:9:::1;:24;::::0;;;;;18409:13:::1;::::0;18348:24;;13196:13;18408:32:::1;::::0;18436:3:::1;::::0;18409:21:::1;::::0;18427:2:::1;18409:17;:21::i;18408:32::-;18383:57;;18473:9;18456:14;:26;18453:129;;;18502:6;::::0;::::1;;18499:72;;;-1:-1:-1::0;18546:9:0;18499:72:::1;18611:14;18595:15;:30;18592:67;;;18641:7;;;;18592:67;18755:16;::::0;;18769:1:::1;18755:16:::0;;;;;::::1;::::0;;18699:21:::1;::::0;18671:25:::1;::::0;18755:16;18769:1;18755:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18755:16:0::1;18731:40;;18800:4;18782;18787:1;18782:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18782:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;18826:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;18826:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;18782:7;;18826:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18816:4;18821:1;18816:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18816:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;18850:6:::1;::::0;:194:::1;::::0;-1:-1:-1;;;18850:194:0;;:6;::::1;::::0;:57:::1;::::0;:194:::1;::::0;18922:14;;18850:6:::1;::::0;18967:4;;18994::::1;::::0;19014:15:::1;::::0;18850:194:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19055:14;19095:17;19071:21;:41;;;;:::i;:::-;19182:11;::::0;19055:58;;-1:-1:-1;19126:22:0::1;::::0;19151:43:::1;::::0;19182:11:::1;::::0;;::::1;::::0;::::1;::::0;19151:26:::1;::::0;19055:58;;19182:11:::1;19162:14:::0;::::1;;19151:10;:26::i;:43::-;19126:68:::0;-1:-1:-1;19205:16:0::1;19224:23;19126:68:::0;19224:6;:23:::1;:::i;:::-;19266:9;::::0;19258:37:::1;::::0;19205:42;;-1:-1:-1;;;;;;19266:9:0::1;::::0;19258:37;::::1;;;::::0;19205:42;;19266:9:::1;19258:37:::0;19266:9;19258:37;19205:42;19266:9;19258:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;19314:9:0::1;::::0;19306:43:::1;::::0;-1:-1:-1;;;;;19314:9:0;;::::1;::::0;19306:43;::::1;;;::::0;19334:14;;19314:9:::1;19306:43:::0;19314:9;19306:43;19334:14;19314:9;19306:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18311:1048;;;;;;;13220:1;-1:-1:-1::0;13232:6:0;:14;;-1:-1:-1;;;;13232:14:0;;;18260:1099::o;19369:220::-;-1:-1:-1;;;;;19462:17:0;;;;;;:9;:17;;;;;:27;;19483:6;;19462:17;:27;;19483:6;;19462:27;:::i;:::-;;;;-1:-1:-1;;;;;;;19500:20:0;;;;;;:9;:20;;;;;:30;;19524:6;;19500:20;:30;;19524:6;;19500:30;:::i;:::-;;;;;;;;19563:9;-1:-1:-1;;;;;19546:35:0;19555:6;-1:-1:-1;;;;;19546:35:0;-1:-1:-1;;;;;;;;;;;19574:6:0;19546:35;;;;4944:25:1;;4932:2;4917:18;;4790:185;16519:1341:0;-1:-1:-1;;;;;16619:16:0;;;;;;:8;:16;;;;;;;;16618:17;:41;;;;-1:-1:-1;;;;;;16640:19:0;;;;;;:8;:19;;;;;;;;16639:20;16618:41;16610:65;;;;-1:-1:-1;;;16610:65:0;;10747:2:1;16610:65:0;;;10729:21:1;10786:2;10766:18;;;10759:30;-1:-1:-1;;;10805:18:1;;;10798:41;10856:18;;16610:65:0;10545:335:1;16610:65:0;16692:11;;-1:-1:-1;;;16692:11:0;;;;16688:220;;16728:13;;-1:-1:-1;;;16728:13:0;;;;16720:30;;;;-1:-1:-1;;;16720:30:0;;;;;;9737:2:1;9719:21;;;9776:1;9756:18;;;9749:29;-1:-1:-1;;;9809:2:1;9794:18;;9787:34;9853:2;9838:18;;9535:327;16720:30:0;16688:220;;;16787:13;;-1:-1:-1;;;16787:13:0;;;;16783:114;;16843:9;-1:-1:-1;;;;;16826:30:0;16835:6;-1:-1:-1;;;;;16826:30:0;-1:-1:-1;;;;;;;;;;;16854:1:0;16826:30;;;;4944:25:1;;4932:2;4917:18;;4790:185;16783:114:0;-1:-1:-1;;;;;16924:27:0;;;;;;:19;:27;;;;;;;;16920:87;;16986:8;:6;:8::i;:::-;16976:6;:18;;16968:27;;;;;;-1:-1:-1;;;;;17023:34:0;;;;;;:23;:34;;;;;;;;17019:172;;17135:10;;17116:18;;17147:3;;17116:29;;17135:10;;;;;;;17116:29;:::i;:::-;17115:35;;;;:::i;:::-;-1:-1:-1;;;;;17083:20:0;;;;;;:9;:20;;;;;;:27;;17104:6;;17083:27;:::i;:::-;17082:69;17074:105;;;;-1:-1:-1;;;17074:105:0;;8706:2:1;17074:105:0;;;8688:21:1;8745:2;8725:18;;;8718:30;8784:25;8764:18;;;8757:53;8827:18;;17074:105:0;8504:347:1;17074:105:0;17227:12;;17203:11;;-1:-1:-1;;;;;17215:24:0;;;17227:12;;17215:24;;:54;;-1:-1:-1;17255:14:0;;-1:-1:-1;;;;;17242:27:0;;;17255:14;;17242:27;17215:54;17203:66;;17283:16;17301:10;17315:29;17329:6;17337;17315:13;:29::i;:::-;17388:13;;17379:4;17361:24;;;;:9;:24;;;;;;17282:62;;-1:-1:-1;17282:62:0;;-1:-1:-1;;17360:58:0;;;;-1:-1:-1;17407:11:0;;;;;;;17406:12;17360:58;:69;;;;-1:-1:-1;17423:6:0;;-1:-1:-1;;;17423:6:0;;;;17422:7;17360:69;17357:180;;;17449:6;:22;;;;-1:-1:-1;17460:11:0;;;;;;;17459:12;17449:22;17446:80;;;17492:18;17503:6;17492:10;:18::i;:::-;-1:-1:-1;;;;;17569:17:0;;;;;;:9;:17;;;;;;:29;;17591:6;17569:21;:29::i;:::-;-1:-1:-1;;;;;17549:17:0;;;;;;;:9;:17;;;;;;:49;;;;17632:20;;;;;;;:37;;17657:11;17632:24;:37::i;:::-;-1:-1:-1;;;;;17609:20:0;;;;;;:9;:20;;;;;;:60;;;;17725:4;17707:24;;;;:35;;17736:5;17707:28;:35::i;:::-;17698:4;17680:24;;;;:9;:24;;;;;;;:62;;;;17758:38;;-1:-1:-1;;;;;17758:38:0;;;-1:-1:-1;;;;;;;;;;;17758:38:0;;;17790:5;4944:25:1;;4932:2;4917:18;;4790:185;17758:38:0;;;;;;;;17829:9;-1:-1:-1;;;;;17812:40:0;17821:6;-1:-1:-1;;;;;17812:40:0;-1:-1:-1;;;;;;;;;;;17840:11:0;17812:40;;;;4944:25:1;;4932:2;4917:18;;4790:185;17812:40:0;;;;;;;;16599:1261;;;16519:1341;;;:::o;1478:98::-;1536:7;1563:5;1567:1;1563;:5;:::i;17868:384::-;17939:17;17958:11;17982:9;18007:6;18004:98;;;-1:-1:-1;18036:8:0;;;;;;;18004:98;;;-1:-1:-1;18083:7:0;;;;;;;18004:98;18114:15;18145:3;18133:10;;;;:6;:10;:::i;:::-;18132:16;;;;:::i;:::-;18114:34;-1:-1:-1;18159:17:0;18179:19;18114:34;18179:6;:19;:::i;:::-;18159:39;18231:10;;-1:-1:-1;17868:384:0;;-1:-1:-1;;;;;17868:384:0:o;1372:98::-;1430:7;1457:5;1461:1;1457;:5;:::i;1266:98::-;1324:7;1351:5;1355:1;1351;:5;:::i;14:156:1:-;80:20;;140:4;129:16;;119:27;;109:55;;160:1;157;150:12;109:55;14:156;;;:::o;175:247::-;234:6;287:2;275:9;266:7;262:23;258:32;255:52;;;303:1;300;293:12;255:52;342:9;329:23;361:31;386:5;361:31;:::i;427:251::-;497:6;550:2;538:9;529:7;525:23;521:32;518:52;;;566:1;563;556:12;518:52;598:9;592:16;617:31;642:5;617:31;:::i;683:388::-;751:6;759;812:2;800:9;791:7;787:23;783:32;780:52;;;828:1;825;818:12;780:52;867:9;854:23;886:31;911:5;886:31;:::i;:::-;936:5;-1:-1:-1;993:2:1;978:18;;965:32;1006:33;965:32;1006:33;:::i;:::-;1058:7;1048:17;;;683:388;;;;;:::o;1076:456::-;1153:6;1161;1169;1222:2;1210:9;1201:7;1197:23;1193:32;1190:52;;;1238:1;1235;1228:12;1190:52;1277:9;1264:23;1296:31;1321:5;1296:31;:::i;:::-;1346:5;-1:-1:-1;1403:2:1;1388:18;;1375:32;1416:33;1375:32;1416:33;:::i;:::-;1076:456;;1468:7;;-1:-1:-1;;;1522:2:1;1507:18;;;;1494:32;;1076:456::o;1537:382::-;1602:6;1610;1663:2;1651:9;1642:7;1638:23;1634:32;1631:52;;;1679:1;1676;1669:12;1631:52;1718:9;1705:23;1737:31;1762:5;1737:31;:::i;:::-;1787:5;-1:-1:-1;1844:2:1;1829:18;;1816:32;1857:30;1816:32;1857:30;:::i;1924:315::-;1992:6;2000;2053:2;2041:9;2032:7;2028:23;2024:32;2021:52;;;2069:1;2066;2059:12;2021:52;2108:9;2095:23;2127:31;2152:5;2127:31;:::i;:::-;2177:5;2229:2;2214:18;;;;2201:32;;-1:-1:-1;;;1924:315:1:o;2244:241::-;2300:6;2353:2;2341:9;2332:7;2328:23;2324:32;2321:52;;;2369:1;2366;2359:12;2321:52;2408:9;2395:23;2427:28;2449:5;2427:28;:::i;2490:245::-;2557:6;2610:2;2598:9;2589:7;2585:23;2581:32;2578:52;;;2626:1;2623;2616:12;2578:52;2658:9;2652:16;2677:28;2699:5;2677:28;:::i;2740:272::-;2798:6;2851:2;2839:9;2830:7;2826:23;2822:32;2819:52;;;2867:1;2864;2857:12;2819:52;2906:9;2893:23;2956:6;2949:5;2945:18;2938:5;2935:29;2925:57;;2978:1;2975;2968:12;3017:180;3076:6;3129:2;3117:9;3108:7;3104:23;3100:32;3097:52;;;3145:1;3142;3135:12;3097:52;-1:-1:-1;3168:23:1;;3017:180;-1:-1:-1;3017:180:1:o;3202:184::-;3272:6;3325:2;3313:9;3304:7;3300:23;3296:32;3293:52;;;3341:1;3338;3331:12;3293:52;-1:-1:-1;3364:16:1;;3202:184;-1:-1:-1;3202:184:1:o;3391:252::-;3455:6;3463;3516:2;3504:9;3495:7;3491:23;3487:32;3484:52;;;3532:1;3529;3522:12;3484:52;3555:27;3572:9;3555:27;:::i;:::-;3545:37;;3601:36;3633:2;3622:9;3618:18;3601:36;:::i;:::-;3591:46;;3391:252;;;;;:::o;4980:597::-;5092:4;5121:2;5150;5139:9;5132:21;5182:6;5176:13;5225:6;5220:2;5209:9;5205:18;5198:34;5250:1;5260:140;5274:6;5271:1;5268:13;5260:140;;;5369:14;;;5365:23;;5359:30;5335:17;;;5354:2;5331:26;5324:66;5289:10;;5260:140;;;5418:6;5415:1;5412:13;5409:91;;;5488:1;5483:2;5474:6;5463:9;5459:22;5455:31;5448:42;5409:91;-1:-1:-1;5561:2:1;5540:15;-1:-1:-1;;5536:29:1;5521:45;;;;5568:2;5517:54;;4980:597;-1:-1:-1;;;4980:597:1:o;9867:332::-;10069:2;10051:21;;;10108:1;10088:18;;;10081:29;-1:-1:-1;;;10141:2:1;10126:18;;10119:39;10190:2;10175:18;;9867:332::o;11260:980::-;11522:4;11570:3;11559:9;11555:19;11601:6;11590:9;11583:25;11627:2;11665:6;11660:2;11649:9;11645:18;11638:34;11708:3;11703:2;11692:9;11688:18;11681:31;11732:6;11767;11761:13;11798:6;11790;11783:22;11836:3;11825:9;11821:19;11814:26;;11875:2;11867:6;11863:15;11849:29;;11896:1;11906:195;11920:6;11917:1;11914:13;11906:195;;;11985:13;;-1:-1:-1;;;;;11981:39:1;11969:52;;12076:15;;;;12041:12;;;;12017:1;11935:9;11906:195;;;-1:-1:-1;;;;;;;12157:32:1;;;;12152:2;12137:18;;12130:60;-1:-1:-1;;;12221:3:1;12206:19;12199:35;12118:3;11260:980;-1:-1:-1;;;11260:980:1:o;12434:128::-;12474:3;12505:1;12501:6;12498:1;12495:13;12492:39;;;12511:18;;:::i;:::-;-1:-1:-1;12547:9:1;;12434:128::o;12567:217::-;12607:1;12633;12623:132;;12677:10;12672:3;12668:20;12665:1;12658:31;12712:4;12709:1;12702:15;12740:4;12737:1;12730:15;12623:132;-1:-1:-1;12769:9:1;;12567:217::o;12789:422::-;12878:1;12921:5;12878:1;12935:270;12956:7;12946:8;12943:21;12935:270;;;13015:4;13011:1;13007:6;13003:17;12997:4;12994:27;12991:53;;;13024:18;;:::i;:::-;13074:7;13064:8;13060:22;13057:55;;;13094:16;;;;13057:55;13173:22;;;;13133:15;;;;12935:270;;;12939:3;12789:422;;;;;:::o;13216:140::-;13274:5;13303:47;13344:4;13334:8;13330:19;13324:4;13410:5;13440:8;13430:80;;-1:-1:-1;13481:1:1;13495:5;;13430:80;13529:4;13519:76;;-1:-1:-1;13566:1:1;13580:5;;13519:76;13611:4;13629:1;13624:59;;;;13697:1;13692:130;;;;13604:218;;13624:59;13654:1;13645:10;;13668:5;;;13692:130;13729:3;13719:8;13716:17;13713:43;;;13736:18;;:::i;:::-;-1:-1:-1;;13792:1:1;13778:16;;13807:5;;13604:218;;13906:2;13896:8;13893:16;13887:3;13881:4;13878:13;13874:36;13868:2;13858:8;13855:16;13850:2;13844:4;13841:12;13837:35;13834:77;13831:159;;;-1:-1:-1;13943:19:1;;;13975:5;;13831:159;14022:34;14047:8;14041:4;14022:34;:::i;:::-;14092:6;14088:1;14084:6;14080:19;14071:7;14068:32;14065:58;;;14103:18;;:::i;:::-;14141:20;;13361:806;-1:-1:-1;;;13361:806:1:o;14172:168::-;14212:7;14278:1;14274;14270:6;14266:14;14263:1;14260:21;14255:1;14248:9;14241:17;14237:45;14234:71;;;14285:18;;:::i;:::-;-1:-1:-1;14325:9:1;;14172:168::o;14345:125::-;14385:4;14413:1;14410;14407:8;14404:34;;;14418:18;;:::i;:::-;-1:-1:-1;14455:9:1;;14345:125::o;14475:127::-;14536:10;14531:3;14527:20;14524:1;14517:31;14567:4;14564:1;14557:15;14591:4;14588:1;14581:15;14607:127;14668:10;14663:3;14659:20;14656:1;14649:31;14699:4;14696:1;14689:15;14723:4;14720:1;14713:15;14871:131;-1:-1:-1;;;;;14946:31:1;;14936:42;;14926:70;;14992:1;14989;14982:12;15007:118;15093:5;15086:13;15079:21;15072:5;15069:32;15059:60;;15115:1;15112;15105:12

Swarm Source

ipfs://f3d5f7353ddcba41aff2628b0c50b4f640c81fd8d942697e5fe3b505d704f01a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.