ETH Price: $2,488.00 (-1.41%)
Gas: 0.54 Gwei

Token

GameOver (GameOver)
 

Overview

Max Total Supply

100,000,000 GameOver

Holders

80

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
720,455.144179182 GameOver

Value
$0.00
0x1D4a348e86D52dd104639a3e708c2FF9D454571c
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:
GameOver

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-21
*/

// SPDX-License-Identifier: NOLICENSE

/*
    Telegram: https://t.me/Bot_GameOver
*/

pragma solidity ^0.8.6;

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

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

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

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

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

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

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

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


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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

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



contract GameOver is Context, IERC20, Ownable {

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) private _isBot;
    mapping (address => bool)  _allowedTransfer;

    address[] private _excluded;

    bool public swapEnabled;
    bool private swapping;
    bool public tradingEnabled;

    IRouter public router;
    address public pair;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);

    uint256 private _tTotal = 100_000_000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 public swapTokensAtAmount = 50000 * 10**_decimals;
    uint256 public maxWalletBalance = 1_000_000 * 10**_decimals;

    string private constant _name = "GameOver";
    string private constant _symbol = "GameOver";
    
    address public marketingWallet = 0xA6c875b1c859c29e6E79d7e27Bc7bb0525612f62;

    struct feeRatesStruct {
      uint256 rfi;
      uint256 marketing;
    }

    feeRatesStruct public feeRates = feeRatesStruct(
     {rfi: 2,
      marketing: 8
    });

    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 marketing;
    }
    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues{
      uint256 rAmount;
      uint256 rTransferAmount;
      uint256 rRfi;
      uint256 rMarketing;
      uint256 tTransferAmount;
      uint256 tRfi;
      uint256 tMarketing;
    }

    event FeesChanged();
    event UpdatedRouter(address oldRouter, address newRouter);
    
    modifier antiSniper(address account){
        require(tradingEnabled || _allowedTransfer[account], "Trading not enabled yet");
        _;
    }


    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }

    constructor (address routerAddress) {
        IRouter _router = IRouter(routerAddress);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;

        excludeFromReward(pair);
        
        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingWallet] = true;
        
        _allowedTransfer[owner()] = true;
        _allowedTransfer[marketingWallet] = true;
        _allowedTransfer[address(this)] = true;

        emit Transfer(address(0), owner(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override antiSniper(sender) returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

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

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

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount/currentRate;
    }

    function excludeFromReward(address account) internal {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) internal {
        require(_isExcluded[account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }
    
    function setAllowedTransfer(address account, bool value) external onlyOwner{
        _allowedTransfer[account] = value;
    }
    
    function setTradingEnabled(bool _enabled) external onlyOwner{
        tradingEnabled = _enabled;
    }


    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
        _rTotal -=rRfi;
        totFeesPaid.rfi +=tRfi;
    }


    function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private {
        totFeesPaid.marketing +=tMarketing;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tMarketing;
        }
        _rOwned[address(this)] +=rMarketing;
    }

    function _getValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee);
        (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing) = _getRValues(to_return, tAmount, takeFee, _getRate());
        return to_return;
    }

    function _getTValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory s) {

        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }
        s.tRfi = tAmount*feeRates.rfi/100;
        s.tMarketing = tAmount*feeRates.marketing/100;
        s.tTransferAmount = tAmount-s.tRfi-s.tMarketing;
        return s;
    }

    function _getRValues(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi, uint256 rMarketing) {
        rAmount = tAmount*currentRate;

        if(!takeFee) {
          return(rAmount, rAmount, 0,0);
        }

        rRfi = s.tRfi*currentRate;
        rMarketing = s.tMarketing*currentRate;
        rTransferAmount =  rAmount-rRfi-rMarketing;
        return (rAmount, rTransferAmount, rRfi,rMarketing);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply/tSupply;
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply-_rOwned[_excluded[i]];
            tSupply = tSupply-_tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");
        require(!_isBot[from] && !_isBot[to], "Bots are not allowed");

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && to != pair){
            require(balanceOf(to) + amount <= maxWalletBalance, "You are exceeding maxWalletBalance");
        }
    
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;
        if(!swapping && swapEnabled && canSwap && from != pair){
            swapAndSendToFee(swapTokensAtAmount);
        }
        
        bool takeFee = true;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }

        _tokenTransfer(from, to, amount, takeFee);
    }


    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee) private {

        valuesFromGetValues memory s = _getValues(tAmount, takeFee);

        if (_isExcluded[sender] ) {  //from excluded
                _tOwned[sender] = _tOwned[sender]-tAmount;
        }
        if (_isExcluded[recipient]) { //to excluded
                _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount;
        }

        _rOwned[sender] = _rOwned[sender]-s.rAmount;
        _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount;
        _reflectRfi(s.rRfi, s.tRfi);
        _takeMarketing(s.rMarketing,s.tMarketing);
        emit Transfer(sender, recipient, s.tTransferAmount);
        emit Transfer(sender, address(this), s.tMarketing);
    }


    function swapAndSendToFee(uint256 tokens) private lockTheSwap{
        swapTokensForETH(tokens, marketingWallet);
    }

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

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            payable(recipient),
            block.timestamp
        );

    }
    
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }

    function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{
        swapTokensAtAmount = amount * 10**_decimals;
    }

    function updateSwapEnabled(bool _enabled) external onlyOwner{
        swapEnabled = _enabled;
    }
    
    function setBot(address _user, bool value) external onlyOwner{
        _isBot[_user] = value;
    }
    
    function isBot(address _bot) external view returns(bool){
        return _isBot[_bot];
    }


    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"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":[],"name":"FeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"}],"name":"UpdatedRouter","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeRates","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_bot","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620008c8565b62000022906305f5e10062000989565b600b8190556200003590600019620009e3565b6200004390600019620009ab565b600c55620000546009600a620008c8565b620000629061c35062000989565b600d55620000736009600a620008c8565b6200008290620f424062000989565b600e55600f80546001600160a01b03191673a6c875b1c859c29e6e79d7e27bc7bb0525612f6217905560408051808201909152600280825260086020909201829052601055601155348015620000d757600080fd5b5060405162002acf38038062002acf833981016040819052620000fa916200083d565b620001053362000460565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200014657600080fd5b505afa1580156200015b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018191906200083d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001ca57600080fd5b505afa158015620001df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020591906200083d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200024e57600080fd5b505af115801562000263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028991906200083d565b600980546001600160a01b038086166301000000026301000000600160b81b031990921691909117909155600a80549183166001600160a01b031990921682179055909150620002d990620004b0565b600c5460016000620002f36000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600460006200032d620005e260201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526004909352818320805485166001908117909155600f549091168352908220805490931681179092556007906200039d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600f549091168152600790925280822080548416600190811790915530835291208054909216179055620004076000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200044f91815260200190565b60405180910390a350505062000a3c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811660009081526005602052604090205460ff16156200051f5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064015b60405180910390fd5b6001600160a01b038116600090815260016020526040902054156200057c576001600160a01b0381166000908152600160205260409020546200056290620005f1565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031690565b6000600c548211156200065a5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000516565b6000620006666200067b565b905062000674818462000868565b9392505050565b6000808062000689620006a1565b90925090506200069a818362000868565b9250505090565b600c54600b546000918291825b6008548110156200080957826001600060088481548110620006d457620006d462000a26565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806200074357508160026000600884815481106200071c576200071c62000a26565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200075a57600c54600b54945094505050509091565b600160006008838154811062000774576200077462000a26565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620007a59084620009ab565b92506002600060088381548110620007c157620007c162000a26565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620007f29083620009ab565b9150806200080081620009c5565b915050620006ae565b50600b54600c546200081c919062000868565b8210156200083457600c54600b549350935050509091565b90939092509050565b6000602082840312156200085057600080fd5b81516001600160a01b03811681146200067457600080fd5b6000826200087a576200087a62000a10565b500490565b600181815b80851115620008c0578160001904821115620008a457620008a4620009fa565b80851615620008b257918102915b93841c939080029062000884565b509250929050565b60006200067460ff841683600082620008e45750600162000983565b81620008f35750600062000983565b81600181146200090c5760028114620009175762000937565b600191505062000983565b60ff8411156200092b576200092b620009fa565b50506001821b62000983565b5060208310610133831016604e8410600b84101617156200095c575081810a62000983565b6200096883836200087f565b80600019048211156200097f576200097f620009fa565b0290505b92915050565b6000816000190483118215151615620009a657620009a6620009fa565b500290565b600082821015620009c057620009c0620009fa565b500390565b6000600019821415620009dc57620009dc620009fa565b5060010190565b600082620009f557620009f562000a10565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6120838062000a4c6000396000f3fe6080604052600436106102135760003560e01c80637688c58411610118578063aacebbe3116100a0578063dd62ed3e1161006f578063dd62ed3e1461065d578063e2f45605146106a3578063ea2f0b37146106b9578063f2fde38b146106d9578063f887ea40146106f957600080fd5b8063aacebbe3146105e7578063bbde77c114610607578063c2e5ec041461061d578063d257b34f1461063d57600080fd5b806395d89b41116100e757806395d89b411461021f5780639ba5e4d51461056c578063a457c2d714610587578063a8aa1b31146105a7578063a9059cbb146105c757600080fd5b80637688c584146104c557806388f82020146104f55780638da5cb5b1461052e578063924de9b71461054c57600080fd5b8063437823ec1161019b57806369c6a59c1161016a57806369c6a59c1461041e5780636ddd17131461043e57806370a0823114610458578063715018a61461047857806375f0a8741461048d57600080fd5b8063437823ec146103855780634549b039146103a55780634ada218b146103c55780635342acb4146103e557600080fd5b80632d838119116101e25780632d838119146102ce578063313ce567146102ee578063342aa8b51461030a578063395093511461032c5780633bbac5791461034c57600080fd5b806306fdde031461021f578063095ea7b31461025f57806318160ddd1461028f57806323b872dd146102ae57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b50604080518082018252600881526723b0b6b2a7bb32b960c11b602082015290516102569190611d61565b60405180910390f35b34801561026b57600080fd5b5061027f61027a366004611cde565b610720565b6040519015158152602001610256565b34801561029b57600080fd5b50600b545b604051908152602001610256565b3480156102ba57600080fd5b5061027f6102c9366004611c68565b61078e565b3480156102da57600080fd5b506102a06102e9366004611d25565b61088e565b3480156102fa57600080fd5b5060405160098152602001610256565b34801561031657600080fd5b5061032a610325366004611ca9565b610912565b005b34801561033857600080fd5b5061027f610347366004611cde565b610967565b34801561035857600080fd5b5061027f610367366004611bf5565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561039157600080fd5b5061032a6103a0366004611bf5565b6109ed565b3480156103b157600080fd5b506102a06103c0366004611d3e565b610a3b565b3480156103d157600080fd5b5060095461027f9062010000900460ff1681565b3480156103f157600080fd5b5061027f610400366004611bf5565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561042a57600080fd5b5061032a610439366004611ca9565b610acb565b34801561044a57600080fd5b5060095461027f9060ff1681565b34801561046457600080fd5b506102a0610473366004611bf5565b610b20565b34801561048457600080fd5b5061032a610b7f565b34801561049957600080fd5b50600f546104ad906001600160a01b031681565b6040516001600160a01b039091168152602001610256565b3480156104d157600080fd5b506010546011546104e0919082565b60408051928352602083019190915201610256565b34801561050157600080fd5b5061027f610510366004611bf5565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561053a57600080fd5b506000546001600160a01b03166104ad565b34801561055857600080fd5b5061032a610567366004611d0a565b610bb5565b34801561057857600080fd5b506012546013546104e0919082565b34801561059357600080fd5b5061027f6105a2366004611cde565b610bf2565b3480156105b357600080fd5b50600a546104ad906001600160a01b031681565b3480156105d357600080fd5b5061027f6105e2366004611cde565b610cde565b3480156105f357600080fd5b5061032a610602366004611bf5565b610d39565b34801561061357600080fd5b506102a0600e5481565b34801561062957600080fd5b5061032a610638366004611d0a565b610d85565b34801561064957600080fd5b5061032a610658366004611d25565b610dcb565b34801561066957600080fd5b506102a0610678366004611c2f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106af57600080fd5b506102a0600d5481565b3480156106c557600080fd5b5061032a6106d4366004611bf5565b610e11565b3480156106e557600080fd5b5061032a6106f4366004611bf5565b610e5c565b34801561070557600080fd5b506009546104ad90630100000090046001600160a01b031681565b600954600090339062010000900460ff168061075457506001600160a01b03811660009081526007602052604090205460ff165b6107795760405162461bcd60e51b815260040161077090611deb565b60405180910390fd5b610784338585610ef7565b5060019392505050565b600954600090849062010000900460ff16806107c257506001600160a01b03811660009081526007602052604090205460ff165b6107de5760405162461bcd60e51b815260040161077090611deb565b6107e985858561101b565b6001600160a01b03851660009081526003602090815260408083203384529091529020548381101561086e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610770565b610882863361087d8785611fda565b610ef7565b50600195945050505050565b6000600c548211156108f55760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610770565b60006108ff6113cc565b905061090b8184611eab565b9392505050565b6000546001600160a01b0316331461093c5760405162461bcd60e51b815260040161077090611db6565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600954600090339062010000900460ff168061099b57506001600160a01b03811660009081526007602052604090205460ff165b6109b75760405162461bcd60e51b815260040161077090611deb565b3360008181526003602090815260408083206001600160a01b03891684529091529020546107849190869061087d908790611e93565b6000546001600160a01b03163314610a175760405162461bcd60e51b815260040161077090611db6565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600b54831115610a8f5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610770565b81610aab576000610aa18460016113ef565b519150610ac59050565b6000610ab88460016113ef565b602001519150610ac59050565b92915050565b6000546001600160a01b03163314610af55760405162461bcd60e51b815260040161077090611db6565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b03811660009081526005602052604081205460ff1615610b5d57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610ac59061088e565b6000546001600160a01b03163314610ba95760405162461bcd60e51b815260040161077090611db6565b610bb36000611465565b565b6000546001600160a01b03163314610bdf5760405162461bcd60e51b815260040161077090611db6565b6009805460ff1916911515919091179055565b600954600090339062010000900460ff1680610c2657506001600160a01b03811660009081526007602052604090205460ff165b610c425760405162461bcd60e51b815260040161077090611deb565b3360009081526003602090815260408083206001600160a01b038816845290915290205483811015610cc45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610770565b610cd3338661087d8785611fda565b506001949350505050565b600954600090339062010000900460ff1680610d1257506001600160a01b03811660009081526007602052604090205460ff165b610d2e5760405162461bcd60e51b815260040161077090611deb565b61078433858561101b565b6000546001600160a01b03163314610d635760405162461bcd60e51b815260040161077090611db6565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610daf5760405162461bcd60e51b815260040161077090611db6565b60098054911515620100000262ff000019909216919091179055565b6000546001600160a01b03163314610df55760405162461bcd60e51b815260040161077090611db6565b610e016009600a611f10565b610e0b9082611fbb565b600d5550565b6000546001600160a01b03163314610e3b5760405162461bcd60e51b815260040161077090611db6565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314610e865760405162461bcd60e51b815260040161077090611db6565b6001600160a01b038116610eeb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610770565b610ef481611465565b50565b6001600160a01b038316610f595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610770565b6001600160a01b038216610fba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610770565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661107f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610770565b6001600160a01b0382166110e15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610770565b600081116111435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610770565b61114c83610b20565b8111156111b55760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610770565b6001600160a01b03831660009081526006602052604090205460ff161580156111f757506001600160a01b03821660009081526006602052604090205460ff16155b61123a5760405162461bcd60e51b8152602060048201526014602482015273109bdd1cc8185c99481b9bdd08185b1b1bddd95960621b6044820152606401610770565b6001600160a01b03831660009081526004602052604090205460ff1615801561127c57506001600160a01b03821660009081526004602052604090205460ff16155b80156112965750600a546001600160a01b03838116911614155b1561130b57600e54816112a884610b20565b6112b29190611e93565b111561130b5760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b6064820152608401610770565b600061131630610b20565b600d5460095491925082101590610100900460ff1615801561133a575060095460ff165b80156113435750805b801561135d5750600a546001600160a01b03868116911614155b1561136d5761136d600d546114b5565b6001600160a01b03851660009081526004602052604090205460019060ff16806113af57506001600160a01b03851660009081526004602052604090205460ff165b156113b8575060005b6113c4868686846114e9565b505050505050565b60008060006113d9611701565b90925090506113e88183611eab565b9250505090565b61142f6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6114398383611884565b905061144e8184846114496113cc565b611939565b606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6009805461ff001916610100179055600f546114db9082906001600160a01b03166119a4565b506009805461ff0019169055565b60006114f583836113ef565b6001600160a01b03861660009081526005602052604090205490915060ff1615611557576001600160a01b03851660009081526002602052604090205461153d908490611fda565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff16156115ba5760808101516001600160a01b0385166000908152600260205260409020546115a09190611e93565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b0386166000908152600160205260409020546115df9190611fda565b6001600160a01b03808716600090815260016020908152604080832094909455840151918716815291909120546116169190611e93565b6001600160a01b038516600090815260016020526040908190209190915581015160a08201516116469190611b35565b61165881606001518260c00151611b6a565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83608001516040516116a191815260200190565b60405180910390a3306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c001516040516116f291815260200190565b60405180910390a35050505050565b600c54600b546000918291825b6008548110156118535782600160006008848154811061173057611730612022565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061179b575081600260006008848154811061177457611774612022565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156117b157600c54600b54945094505050509091565b60016000600883815481106117c8576117c8612022565b60009182526020808320909101546001600160a01b031683528201929092526040019020546117f79084611fda565b9250600260006008838154811061181057611810612022565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461183f9083611fda565b91508061184b81611ff1565b91505061170e565b50600b54600c546118649190611eab565b82101561187b57600c54600b549350935050509091565b90939092509050565b6118c46040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b816118d55760808101839052610ac5565b6010546064906118e59085611fbb565b6118ef9190611eab565b60a08201526011546064906119049085611fbb565b61190e9190611eab565b60c0820181905260a08201516119249085611fda565b61192e9190611fda565b608082015292915050565b60008080806119488588611fbb565b93508561195d57508291506000905080611999565b848860a0015161196d9190611fbb565b9150848860c0015161197f9190611fbb565b90508061198c8386611fda565b6119969190611fda565b92505b945094509450949050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119d9576119d9612022565b60200260200101906001600160a01b031690816001600160a01b031681525050600960039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7f9190611c12565b81600181518110611a9257611a92612022565b6001600160a01b039283166020918202929092010152600954611abf913091630100000090041685610ef7565b60095460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790611afe908690600090869088904290600401611e22565b600060405180830381600087803b158015611b1857600080fd5b505af1158015611b2c573d6000803e3d6000fd5b50505050505050565b81600c6000828254611b479190611fda565b909155505060128054829190600090611b61908490611e93565b90915550505050565b8060126001016000828254611b7f9190611e93565b90915550503060009081526005602052604090205460ff1615611bc1573060009081526002602052604081208054839290611bbb908490611e93565b90915550505b3060009081526001602052604081208054849290611b61908490611e93565b80358015158114611bf057600080fd5b919050565b600060208284031215611c0757600080fd5b813561090b81612038565b600060208284031215611c2457600080fd5b815161090b81612038565b60008060408385031215611c4257600080fd5b8235611c4d81612038565b91506020830135611c5d81612038565b809150509250929050565b600080600060608486031215611c7d57600080fd5b8335611c8881612038565b92506020840135611c9881612038565b929592945050506040919091013590565b60008060408385031215611cbc57600080fd5b8235611cc781612038565b9150611cd560208401611be0565b90509250929050565b60008060408385031215611cf157600080fd5b8235611cfc81612038565b946020939093013593505050565b600060208284031215611d1c57600080fd5b61090b82611be0565b600060208284031215611d3757600080fd5b5035919050565b60008060408385031215611d5157600080fd5b82359150611cd560208401611be0565b600060208083528351808285015260005b81811015611d8e57858101830151858201604001528201611d72565b81811115611da0576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e725784516001600160a01b031683529383019391830191600101611e4d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ea657611ea661200c565b500190565b600082611ec857634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611f08578160001904821115611eee57611eee61200c565b80851615611efb57918102915b93841c9390800290611ed2565b509250929050565b600061090b60ff841683600082611f2957506001610ac5565b81611f3657506000610ac5565b8160018114611f4c5760028114611f5657611f72565b6001915050610ac5565b60ff841115611f6757611f6761200c565b50506001821b610ac5565b5060208310610133831016604e8410600b8410161715611f95575081810a610ac5565b611f9f8383611ecd565b8060001904821115611fb357611fb361200c565b029392505050565b6000816000190483118215151615611fd557611fd561200c565b500290565b600082821015611fec57611fec61200c565b500390565b60006000198214156120055761200561200c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610ef457600080fdfea26469706673582212207dabdc3c495805f941d505ec2eee2e3f33771d9c97fd10dd89be6e5dcb0bd77b64736f6c634300080600330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102135760003560e01c80637688c58411610118578063aacebbe3116100a0578063dd62ed3e1161006f578063dd62ed3e1461065d578063e2f45605146106a3578063ea2f0b37146106b9578063f2fde38b146106d9578063f887ea40146106f957600080fd5b8063aacebbe3146105e7578063bbde77c114610607578063c2e5ec041461061d578063d257b34f1461063d57600080fd5b806395d89b41116100e757806395d89b411461021f5780639ba5e4d51461056c578063a457c2d714610587578063a8aa1b31146105a7578063a9059cbb146105c757600080fd5b80637688c584146104c557806388f82020146104f55780638da5cb5b1461052e578063924de9b71461054c57600080fd5b8063437823ec1161019b57806369c6a59c1161016a57806369c6a59c1461041e5780636ddd17131461043e57806370a0823114610458578063715018a61461047857806375f0a8741461048d57600080fd5b8063437823ec146103855780634549b039146103a55780634ada218b146103c55780635342acb4146103e557600080fd5b80632d838119116101e25780632d838119146102ce578063313ce567146102ee578063342aa8b51461030a578063395093511461032c5780633bbac5791461034c57600080fd5b806306fdde031461021f578063095ea7b31461025f57806318160ddd1461028f57806323b872dd146102ae57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b50604080518082018252600881526723b0b6b2a7bb32b960c11b602082015290516102569190611d61565b60405180910390f35b34801561026b57600080fd5b5061027f61027a366004611cde565b610720565b6040519015158152602001610256565b34801561029b57600080fd5b50600b545b604051908152602001610256565b3480156102ba57600080fd5b5061027f6102c9366004611c68565b61078e565b3480156102da57600080fd5b506102a06102e9366004611d25565b61088e565b3480156102fa57600080fd5b5060405160098152602001610256565b34801561031657600080fd5b5061032a610325366004611ca9565b610912565b005b34801561033857600080fd5b5061027f610347366004611cde565b610967565b34801561035857600080fd5b5061027f610367366004611bf5565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561039157600080fd5b5061032a6103a0366004611bf5565b6109ed565b3480156103b157600080fd5b506102a06103c0366004611d3e565b610a3b565b3480156103d157600080fd5b5060095461027f9062010000900460ff1681565b3480156103f157600080fd5b5061027f610400366004611bf5565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561042a57600080fd5b5061032a610439366004611ca9565b610acb565b34801561044a57600080fd5b5060095461027f9060ff1681565b34801561046457600080fd5b506102a0610473366004611bf5565b610b20565b34801561048457600080fd5b5061032a610b7f565b34801561049957600080fd5b50600f546104ad906001600160a01b031681565b6040516001600160a01b039091168152602001610256565b3480156104d157600080fd5b506010546011546104e0919082565b60408051928352602083019190915201610256565b34801561050157600080fd5b5061027f610510366004611bf5565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561053a57600080fd5b506000546001600160a01b03166104ad565b34801561055857600080fd5b5061032a610567366004611d0a565b610bb5565b34801561057857600080fd5b506012546013546104e0919082565b34801561059357600080fd5b5061027f6105a2366004611cde565b610bf2565b3480156105b357600080fd5b50600a546104ad906001600160a01b031681565b3480156105d357600080fd5b5061027f6105e2366004611cde565b610cde565b3480156105f357600080fd5b5061032a610602366004611bf5565b610d39565b34801561061357600080fd5b506102a0600e5481565b34801561062957600080fd5b5061032a610638366004611d0a565b610d85565b34801561064957600080fd5b5061032a610658366004611d25565b610dcb565b34801561066957600080fd5b506102a0610678366004611c2f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106af57600080fd5b506102a0600d5481565b3480156106c557600080fd5b5061032a6106d4366004611bf5565b610e11565b3480156106e557600080fd5b5061032a6106f4366004611bf5565b610e5c565b34801561070557600080fd5b506009546104ad90630100000090046001600160a01b031681565b600954600090339062010000900460ff168061075457506001600160a01b03811660009081526007602052604090205460ff165b6107795760405162461bcd60e51b815260040161077090611deb565b60405180910390fd5b610784338585610ef7565b5060019392505050565b600954600090849062010000900460ff16806107c257506001600160a01b03811660009081526007602052604090205460ff165b6107de5760405162461bcd60e51b815260040161077090611deb565b6107e985858561101b565b6001600160a01b03851660009081526003602090815260408083203384529091529020548381101561086e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610770565b610882863361087d8785611fda565b610ef7565b50600195945050505050565b6000600c548211156108f55760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610770565b60006108ff6113cc565b905061090b8184611eab565b9392505050565b6000546001600160a01b0316331461093c5760405162461bcd60e51b815260040161077090611db6565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600954600090339062010000900460ff168061099b57506001600160a01b03811660009081526007602052604090205460ff165b6109b75760405162461bcd60e51b815260040161077090611deb565b3360008181526003602090815260408083206001600160a01b03891684529091529020546107849190869061087d908790611e93565b6000546001600160a01b03163314610a175760405162461bcd60e51b815260040161077090611db6565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600b54831115610a8f5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610770565b81610aab576000610aa18460016113ef565b519150610ac59050565b6000610ab88460016113ef565b602001519150610ac59050565b92915050565b6000546001600160a01b03163314610af55760405162461bcd60e51b815260040161077090611db6565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b03811660009081526005602052604081205460ff1615610b5d57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610ac59061088e565b6000546001600160a01b03163314610ba95760405162461bcd60e51b815260040161077090611db6565b610bb36000611465565b565b6000546001600160a01b03163314610bdf5760405162461bcd60e51b815260040161077090611db6565b6009805460ff1916911515919091179055565b600954600090339062010000900460ff1680610c2657506001600160a01b03811660009081526007602052604090205460ff165b610c425760405162461bcd60e51b815260040161077090611deb565b3360009081526003602090815260408083206001600160a01b038816845290915290205483811015610cc45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610770565b610cd3338661087d8785611fda565b506001949350505050565b600954600090339062010000900460ff1680610d1257506001600160a01b03811660009081526007602052604090205460ff165b610d2e5760405162461bcd60e51b815260040161077090611deb565b61078433858561101b565b6000546001600160a01b03163314610d635760405162461bcd60e51b815260040161077090611db6565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610daf5760405162461bcd60e51b815260040161077090611db6565b60098054911515620100000262ff000019909216919091179055565b6000546001600160a01b03163314610df55760405162461bcd60e51b815260040161077090611db6565b610e016009600a611f10565b610e0b9082611fbb565b600d5550565b6000546001600160a01b03163314610e3b5760405162461bcd60e51b815260040161077090611db6565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314610e865760405162461bcd60e51b815260040161077090611db6565b6001600160a01b038116610eeb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610770565b610ef481611465565b50565b6001600160a01b038316610f595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610770565b6001600160a01b038216610fba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610770565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661107f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610770565b6001600160a01b0382166110e15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610770565b600081116111435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610770565b61114c83610b20565b8111156111b55760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610770565b6001600160a01b03831660009081526006602052604090205460ff161580156111f757506001600160a01b03821660009081526006602052604090205460ff16155b61123a5760405162461bcd60e51b8152602060048201526014602482015273109bdd1cc8185c99481b9bdd08185b1b1bddd95960621b6044820152606401610770565b6001600160a01b03831660009081526004602052604090205460ff1615801561127c57506001600160a01b03821660009081526004602052604090205460ff16155b80156112965750600a546001600160a01b03838116911614155b1561130b57600e54816112a884610b20565b6112b29190611e93565b111561130b5760405162461bcd60e51b815260206004820152602260248201527f596f752061726520657863656564696e67206d617857616c6c657442616c616e604482015261636560f01b6064820152608401610770565b600061131630610b20565b600d5460095491925082101590610100900460ff1615801561133a575060095460ff165b80156113435750805b801561135d5750600a546001600160a01b03868116911614155b1561136d5761136d600d546114b5565b6001600160a01b03851660009081526004602052604090205460019060ff16806113af57506001600160a01b03851660009081526004602052604090205460ff165b156113b8575060005b6113c4868686846114e9565b505050505050565b60008060006113d9611701565b90925090506113e88183611eab565b9250505090565b61142f6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6114398383611884565b905061144e8184846114496113cc565b611939565b606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6009805461ff001916610100179055600f546114db9082906001600160a01b03166119a4565b506009805461ff0019169055565b60006114f583836113ef565b6001600160a01b03861660009081526005602052604090205490915060ff1615611557576001600160a01b03851660009081526002602052604090205461153d908490611fda565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff16156115ba5760808101516001600160a01b0385166000908152600260205260409020546115a09190611e93565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b0386166000908152600160205260409020546115df9190611fda565b6001600160a01b03808716600090815260016020908152604080832094909455840151918716815291909120546116169190611e93565b6001600160a01b038516600090815260016020526040908190209190915581015160a08201516116469190611b35565b61165881606001518260c00151611b6a565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83608001516040516116a191815260200190565b60405180910390a3306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c001516040516116f291815260200190565b60405180910390a35050505050565b600c54600b546000918291825b6008548110156118535782600160006008848154811061173057611730612022565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061179b575081600260006008848154811061177457611774612022565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156117b157600c54600b54945094505050509091565b60016000600883815481106117c8576117c8612022565b60009182526020808320909101546001600160a01b031683528201929092526040019020546117f79084611fda565b9250600260006008838154811061181057611810612022565b60009182526020808320909101546001600160a01b0316835282019290925260400190205461183f9083611fda565b91508061184b81611ff1565b91505061170e565b50600b54600c546118649190611eab565b82101561187b57600c54600b549350935050509091565b90939092509050565b6118c46040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b816118d55760808101839052610ac5565b6010546064906118e59085611fbb565b6118ef9190611eab565b60a08201526011546064906119049085611fbb565b61190e9190611eab565b60c0820181905260a08201516119249085611fda565b61192e9190611fda565b608082015292915050565b60008080806119488588611fbb565b93508561195d57508291506000905080611999565b848860a0015161196d9190611fbb565b9150848860c0015161197f9190611fbb565b90508061198c8386611fda565b6119969190611fda565b92505b945094509450949050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119d9576119d9612022565b60200260200101906001600160a01b031690816001600160a01b031681525050600960039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7f9190611c12565b81600181518110611a9257611a92612022565b6001600160a01b039283166020918202929092010152600954611abf913091630100000090041685610ef7565b60095460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790611afe908690600090869088904290600401611e22565b600060405180830381600087803b158015611b1857600080fd5b505af1158015611b2c573d6000803e3d6000fd5b50505050505050565b81600c6000828254611b479190611fda565b909155505060128054829190600090611b61908490611e93565b90915550505050565b8060126001016000828254611b7f9190611e93565b90915550503060009081526005602052604090205460ff1615611bc1573060009081526002602052604081208054839290611bbb908490611e93565b90915550505b3060009081526001602052604081208054849290611b61908490611e93565b80358015158114611bf057600080fd5b919050565b600060208284031215611c0757600080fd5b813561090b81612038565b600060208284031215611c2457600080fd5b815161090b81612038565b60008060408385031215611c4257600080fd5b8235611c4d81612038565b91506020830135611c5d81612038565b809150509250929050565b600080600060608486031215611c7d57600080fd5b8335611c8881612038565b92506020840135611c9881612038565b929592945050506040919091013590565b60008060408385031215611cbc57600080fd5b8235611cc781612038565b9150611cd560208401611be0565b90509250929050565b60008060408385031215611cf157600080fd5b8235611cfc81612038565b946020939093013593505050565b600060208284031215611d1c57600080fd5b61090b82611be0565b600060208284031215611d3757600080fd5b5035919050565b60008060408385031215611d5157600080fd5b82359150611cd560208401611be0565b600060208083528351808285015260005b81811015611d8e57858101830151858201604001528201611d72565b81811115611da0576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e725784516001600160a01b031683529383019391830191600101611e4d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ea657611ea661200c565b500190565b600082611ec857634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611f08578160001904821115611eee57611eee61200c565b80851615611efb57918102915b93841c9390800290611ed2565b509250929050565b600061090b60ff841683600082611f2957506001610ac5565b81611f3657506000610ac5565b8160018114611f4c5760028114611f5657611f72565b6001915050610ac5565b60ff841115611f6757611f6761200c565b50506001821b610ac5565b5060208310610133831016604e8410600b8410161715611f95575081810a610ac5565b611f9f8383611ecd565b8060001904821115611fb357611fb361200c565b029392505050565b6000816000190483118215151615611fd557611fd561200c565b500290565b600082821015611fec57611fec61200c565b500390565b60006000198214156120055761200561200c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610ef457600080fdfea26469706673582212207dabdc3c495805f941d505ec2eee2e3f33771d9c97fd10dd89be6e5dcb0bd77b64736f6c63430008060033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

2633:13286:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5398:83;;;;;;;;;;-1:-1:-1;5468:5:0;;;;;;;;;;;-1:-1:-1;;;5468:5:0;;;;5398:83;;;;5468:5;5398:83;:::i;:::-;;;;;;;;6329:184;;;;;;;;;;-1:-1:-1;6329:184:0;;;;;:::i;:::-;;:::i;:::-;;;3177:14:1;;3170:22;3152:41;;3140:2;3125:18;6329:184:0;3107:92:1;5671:95:0;;;;;;;;;;-1:-1:-1;5751:7:0;;5671:95;;;10079:25:1;;;10067:2;10052:18;5671:95:0;10034:76:1;6521:437:0;;;;;;;;;;-1:-1:-1;6521:437:0;;;;;:::i;:::-;;:::i;8208:248::-;;;;;;;;;;-1:-1:-1;8208:248:0;;;;;:::i;:::-;;:::i;5580:83::-;;;;;;;;;;-1:-1:-1;5580:83:0;;3296:1;11503:36:1;;11491:2;11476:18;5580:83:0;11458:87:1;15665:101:0;;;;;;;;;;-1:-1:-1;15665:101:0;;;;;:::i;:::-;;:::i;:::-;;6966:236;;;;;;;;;;-1:-1:-1;6966:236:0;;;;;:::i;:::-;;:::i;15778:94::-;;;;;;;;;;-1:-1:-1;15778:94:0;;;;;:::i;:::-;-1:-1:-1;;;;;15852:12:0;15829:4;15852:12;;;:6;:12;;;;;;;;;15778:94;9266:111;;;;;;;;;;-1:-1:-1;9266:111:0;;;;;:::i;:::-;;:::i;7744:456::-;;;;;;;;;;-1:-1:-1;7744:456:0;;;;;:::i;:::-;;:::i;3170:26::-;;;;;;;;;;-1:-1:-1;3170:26:0;;;;;;;;;;;9760:123;;;;;;;;;;-1:-1:-1;9760:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;9848:27:0;9824:4;9848:27;;;:18;:27;;;;;;;;;9760:123;9507:127;;;;;;;;;;-1:-1:-1;9507:127:0;;;;;:::i;:::-;;:::i;3112:23::-;;;;;;;;;;-1:-1:-1;3112:23:0;;;;;;;;5774:198;;;;;;;;;;-1:-1:-1;5774:198:0;;;;;:::i;:::-;;:::i;1681:94::-;;;;;;;;;;;;;:::i;3711:75::-;;;;;;;;;;-1:-1:-1;3711:75:0;;;;-1:-1:-1;;;;;3711:75:0;;;;;;-1:-1:-1;;;;;2968:32:1;;;2950:51;;2938:2;2923:18;3711:75:0;2905:102:1;3879:91:0;;;;;;;;;;-1:-1:-1;3879:91:0;;;;;;;;;;;;;11282:25:1;;;11338:2;11323:18;;11316:34;;;;11255:18;3879:91:0;11237:119:1;7616:120:0;;;;;;;;;;-1:-1:-1;7616:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;7708:20:0;7684:4;7708:20;;;:11;:20;;;;;;;;;7616:120;1458:87;;;;;;;;;;-1:-1:-1;1504:7:0;1531:6;-1:-1:-1;;;;;1531:6:0;1458:87;;15552:101;;;;;;;;;;-1:-1:-1;15552:101:0;;;;;:::i;:::-;;:::i;4067:36::-;;;;;;;;;;-1:-1:-1;4067:36:0;;;;;;;;;7210:398;;;;;;;;;;-1:-1:-1;7210:398:0;;;;;:::i;:::-;;:::i;3233:19::-;;;;;;;;;;-1:-1:-1;3233:19:0;;;;-1:-1:-1;;;;;3233:19:0;;;5980:190;;;;;;;;;;-1:-1:-1;5980:190:0;;;;;:::i;:::-;;:::i;15292:114::-;;;;;;;;;;-1:-1:-1;15292:114:0;;;;;:::i;:::-;;:::i;3537:59::-;;;;;;;;;;;;;;;;9646:104;;;;;;;;;;-1:-1:-1;9646:104:0;;;;;:::i;:::-;;:::i;15414:130::-;;;;;;;;;;-1:-1:-1;15414:130:0;;;;;:::i;:::-;;:::i;6178:143::-;;;;;;;;;;-1:-1:-1;6178:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6286:18:0;;;6259:7;6286:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6178:143;3473:57;;;;;;;;;;;;;;;;9385:110;;;;;;;;;;-1:-1:-1;9385:110:0;;;;;:::i;:::-;;:::i;1783:192::-;;;;;;;;;;-1:-1:-1;1783:192:0;;;;;:::i;:::-;;:::i;3205:21::-;;;;;;;;;;-1:-1:-1;3205:21:0;;;;;;;-1:-1:-1;;;;;3205:21:0;;;6329:184;4489:14;;6427:4;;6406:10;;4489:14;;;;;;:43;;-1:-1:-1;;;;;;4507:25:0;;;;;;:16;:25;;;;;;;;4489:43;4481:79;;;;-1:-1:-1;;;4481:79:0;;;;;;;:::i;:::-;;;;;;;;;6444:39:::1;959:10:::0;6467:7:::1;6476:6;6444:8;:39::i;:::-;-1:-1:-1::0;6501:4:0::1;::::0;6329:184;-1:-1:-1;;;6329:184:0:o;6521:437::-;4489:14;;6646:4;;6629:6;;4489:14;;;;;;:43;;-1:-1:-1;;;;;;4507:25:0;;;;;;:16;:25;;;;;;;;4489:43;4481:79;;;;-1:-1:-1;;;4481:79:0;;;;;;;:::i;:::-;6663:36:::1;6673:6;6681:9;6692:6;6663:9;:36::i;:::-;-1:-1:-1::0;;;;;6737:19:0;::::1;6710:24;6737:19:::0;;;:11:::1;:19;::::0;;;;;;;959:10;6737:33;;;;;;;;6789:26;;::::1;;6781:79;;;::::0;-1:-1:-1;;;6781:79:0;;7037:2:1;6781:79:0::1;::::0;::::1;7019:21:1::0;7076:2;7056:18;;;7049:30;7115:34;7095:18;;;7088:62;-1:-1:-1;;;7166:18:1;;;7159:38;7214:19;;6781:79:0::1;7009:230:1::0;6781:79:0::1;6871:57;6880:6:::0;959:10;6902:25:::1;6921:6:::0;6902:16;:25:::1;:::i;:::-;6871:8;:57::i;:::-;-1:-1:-1::0;6946:4:0::1;::::0;6521:437;-1:-1:-1;;;;;6521:437:0:o;8208:248::-;8274:7;8313;;8302;:18;;8294:73;;;;-1:-1:-1;;;8294:73:0;;5456:2:1;8294:73:0;;;5438:21:1;5495:2;5475:18;;;5468:30;5534:34;5514:18;;;5507:62;-1:-1:-1;;;5585:18:1;;;5578:40;5635:19;;8294:73:0;5428:232:1;8294:73:0;8378:19;8401:10;:8;:10::i;:::-;8378:33;-1:-1:-1;8429:19:0;8378:33;8429:7;:19;:::i;:::-;8422:26;8208:248;-1:-1:-1;;;8208:248:0:o;15665:101::-;1504:7;1531:6;-1:-1:-1;;;;;1531:6:0;959:10;1593:23;1585:68;;;;-1:-1:-1;;;1585:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15737:13:0;;;::::1;;::::0;;;:6:::1;:13;::::0;;;;:21;;-1:-1:-1;;15737:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15665:101::o;6966:236::-;4489:14;;7077:4;;7056:10;;4489:14;;;;;;:43;;-1:-1:-1;;;;;;4507:25:0;;;;;;:16;:25;;;;;;;;4489:43;4481:79;;;;-1:-1:-1;;;4481:79:0;;;;;;;:::i;:::-;959:10;7126:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;7126:34:0;::::1;::::0;;;;;;;;7094:78:::1;::::0;959:10;7117:7;;7126:45:::1;::::0;7161:10;;7126:45:::1;:::i;9266:111::-:0;1504:7;1531:6;-1:-1:-1;;;;;1531:6:0;959:10;1593:23;1585:68;;;;-1:-1:-1;;;1585:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9335:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;9335:34:0::1;9365:4;9335:34;::::0;;9266:111::o;7744:456::-;7834:7;7873;;7862;:18;;7854:62;;;;-1:-1:-1;;;7854:62:0;;6677:2:1;7854:62:0;;;6659:21:1;6716:2;6696:18;;;6689:30;6755:33;6735:18;;;6728:61;6806:18;;7854:62:0;6649:181:1;7854:62:0;7932:17;7927:266;;7966:28;7997:25;8008:7;8017:4;7997:10;:25::i;:::-;8044:9;;-1:-1:-1;8037:16:0;;-1:-1:-1;8037:16:0;7927:266;8086:28;8117:25;8128:7;8137:4;8117:10;:25::i;:::-;8164:17;;;;-1:-1:-1;8157:24:0;;-1:-1:-1;8157:24:0;7927:266;7744:456;;;;:::o;9507:127::-;1504:7;1531:6;-1:-1:-1;;;;;1531:6:0;959:10;1593:23;1585:68;;;;-1:-1:-1;;;1585:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9593:25:0;;;::::1;;::::0;;;:16:::1;:25;::::0;;;;:33;;-1:-1:-1;;9593:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9507:127::o;5774:198::-;-1:-1:-1;;;;;5864:20:0;;5840:7;5864:20;;;:11;:20;;;;;;;;5860:49;;;-1:-1:-1;;;;;;5893:16:0;;;;;:7;:16;;;;;;;5774:198::o;5860:49::-;-1:-1:-1;;;;;5947:16:0;;;;;;:7;:16;;;;;;5927:37;;:19;:37::i;1681:94::-;1504:7;1531:6;-1:-1:-1;;;;;1531:6:0;959:10;1593:23;1585:68;;;;-1:-1:-1;;;1585:68:0;;;;;;;:::i;:::-;1746:21:::1;1764:1;1746:9;:21::i;:::-;1681:94::o:0;15552:101::-;1504:7;1531:6;-1:-1:-1;;;;;1531:6:0;959:10;1593:23;1585:68;;;;-1:-1:-1;;;1585:68:0;;;;;;;:::i;:::-;15623:11:::1;:22:::0;;-1:-1:-1;;15623:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15552:101::o;7210:398::-;4489:14;;7326:4;;7305:10;;4489:14;;;;;;:43;;-1:-1:-1;;;;;;4507:25:0;;;;;;:16;:25;;;;;;;;4489:43;4481:79;;;;-1:-1:-1;;;4481:79:0;;;;;;;:::i;:::-;959:10;7343:24:::1;7370:25:::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;7370:34:0;::::1;::::0;;;;;;;;7423:35;;::::1;;7415:85;;;::::0;-1:-1:-1;;;7415:85:0;;9729:2:1;7415:85:0::1;::::0;::::1;9711:21:1::0;9768:2;9748:18;;;9741:30;9807:34;9787:18;;;9780:62;-1:-1:-1;;;9858:18:1;;;9851:35;9903:19;;7415:85:0::1;9701:227:1::0;7415:85:0::1;7511:67;959:10:::0;7534:7;7543:34:::1;7562:15:::0;7543:16;:34:::1;:::i;7511:67::-;-1:-1:-1::0;7596:4:0::1;::::0;7210:398;-1:-1:-1;;;;7210:398:0:o;5980:190::-;4489:14;;6081:4;;6060:10;;4489:14;;;;;;:43;;-1:-1:-1;;;;;;4507:25:0;;;;;;:16;:25;;;;;;;;4489:43;4481:79;;;;-1:-1:-1;;;4481:79:0;;;;;;;:::i;:::-;6098:42:::1;959:10:::0;6122:9:::1;6133:6;6098:9;:42::i;15292:114::-:0;1504:7;1531:6;-1:-1:-1;;;;;1531:6:0;959:10;1593:23;1585:68;;;;-1:-1:-1;;;1585:68:0;;;;;;;:::i;:::-;15371:15:::1;:27:::0;;-1:-1:-1;;;;;;15371:27:0::1;-1:-1:-1::0;;;;;15371:27:0;;;::::1;::::0;;;::::1;::::0;;15292:114::o;9646:104::-;1504:7;1531:6;-1:-1:-1;;;;;1531:6:0;959:10;1593:23;1585:68;;;;-1:-1:-1;;;1585:68:0;;;;;;;:::i;:::-;9717:14:::1;:25:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;9717:25:0;;::::1;::::0;;;::::1;::::0;;9646:104::o;15414:130::-;1504:7;1531:6;-1:-1:-1;;;;;1531:6:0;959:10;1593:23;1585:68;;;;-1:-1:-1;;;1585:68:0;;;;;;;:::i;:::-;15523:13:::1;3296:1;15523:2;:13;:::i;:::-;15514:22;::::0;:6;:22:::1;:::i;:::-;15493:18;:43:::0;-1:-1:-1;15414:130:0:o;9385:110::-;1504:7;1531:6;-1:-1:-1;;;;;1531:6:0;959:10;1593:23;1585:68;;;;-1:-1:-1;;;1585:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9452:27:0::1;9482:5;9452:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;9452:35:0::1;::::0;;9385:110::o;1783:192::-;1504:7;1531:6;-1:-1:-1;;;;;1531:6:0;959:10;1593:23;1585:68;;;;-1:-1:-1;;;1585:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1872:22:0;::::1;1864:73;;;::::0;-1:-1:-1;;;1864:73:0;;5867:2:1;1864:73:0::1;::::0;::::1;5849:21:1::0;5906:2;5886:18;;;5879:30;5945:34;5925:18;;;5918:62;-1:-1:-1;;;5996:18:1;;;5989:36;6042:19;;1864:73:0::1;5839:228:1::0;1864:73:0::1;1948:19;1958:8;1948:9;:19::i;:::-;1783:192:::0;:::o;12317:335::-;-1:-1:-1;;;;;12410:19:0;;12402:68;;;;-1:-1:-1;;;12402:68:0;;8972:2:1;12402:68:0;;;8954:21:1;9011:2;8991:18;;;8984:30;9050:34;9030:18;;;9023:62;-1:-1:-1;;;9101:18:1;;;9094:34;9145:19;;12402:68:0;8944:226:1;12402:68:0;-1:-1:-1;;;;;12489:21:0;;12481:68;;;;-1:-1:-1;;;12481:68:0;;6274:2:1;12481:68:0;;;6256:21:1;6313:2;6293:18;;;6286:30;6352:34;6332:18;;;6325:62;-1:-1:-1;;;6403:18:1;;;6396:32;6445:19;;12481:68:0;6246:224:1;12481:68:0;-1:-1:-1;;;;;12560:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12612:32;;10079:25:1;;;12612:32:0;;10052:18:1;12612:32:0;;;;;;;12317:335;;;:::o;12660:1141::-;-1:-1:-1;;;;;12748:18:0;;12740:68;;;;-1:-1:-1;;;12740:68:0;;8217:2:1;12740:68:0;;;8199:21:1;8256:2;8236:18;;;8229:30;8295:34;8275:18;;;8268:62;-1:-1:-1;;;8346:18:1;;;8339:35;8391:19;;12740:68:0;8189:227:1;12740:68:0;-1:-1:-1;;;;;12827:16:0;;12819:64;;;;-1:-1:-1;;;12819:64:0;;4231:2:1;12819:64:0;;;4213:21:1;4270:2;4250:18;;;4243:30;4309:34;4289:18;;;4282:62;-1:-1:-1;;;4360:18:1;;;4353:33;4403:19;;12819:64:0;4203:225:1;12819:64:0;12911:1;12902:6;:10;12894:64;;;;-1:-1:-1;;;12894:64:0;;7807:2:1;12894:64:0;;;7789:21:1;7846:2;7826:18;;;7819:30;7885:34;7865:18;;;7858:62;-1:-1:-1;;;7936:18:1;;;7929:39;7985:19;;12894:64:0;7779:231:1;12894:64:0;12987:15;12997:4;12987:9;:15::i;:::-;12977:6;:25;;12969:86;;;;-1:-1:-1;;;12969:86:0;;5038:2:1;12969:86:0;;;5020:21:1;5077:2;5057:18;;;5050:30;5116:34;5096:18;;;5089:62;-1:-1:-1;;;5167:18:1;;;5160:47;5224:19;;12969:86:0;5010:239:1;12969:86:0;-1:-1:-1;;;;;13075:12:0;;;;;;:6;:12;;;;;;;;13074:13;:28;;;;-1:-1:-1;;;;;;13092:10:0;;;;;;:6;:10;;;;;;;;13091:11;13074:28;13066:61;;;;-1:-1:-1;;;13066:61:0;;8623:2:1;13066:61:0;;;8605:21:1;8662:2;8642:18;;;8635:30;-1:-1:-1;;;8681:18:1;;;8674:50;8741:18;;13066:61:0;8595:170:1;13066:61:0;-1:-1:-1;;;;;13144:24:0;;;;;;:18;:24;;;;;;;;13143:25;:52;;;;-1:-1:-1;;;;;;13173:22:0;;;;;;:18;:22;;;;;;;;13172:23;13143:52;:66;;;;-1:-1:-1;13205:4:0;;-1:-1:-1;;;;;13199:10:0;;;13205:4;;13199:10;;13143:66;13140:186;;;13259:16;;13249:6;13233:13;13243:2;13233:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;13225:89;;;;-1:-1:-1;;;13225:89:0;;4635:2:1;13225:89:0;;;4617:21:1;4674:2;4654:18;;;4647:30;4713:34;4693:18;;;4686:62;-1:-1:-1;;;4764:18:1;;;4757:32;4806:19;;13225:89:0;4607:224:1;13225:89:0;13342:28;13373:24;13391:4;13373:9;:24::i;:::-;13447:18;;13480:8;;13342:55;;-1:-1:-1;13423:42:0;;;;13480:8;;;;;13479:9;:24;;;;-1:-1:-1;13492:11:0;;;;13479:24;:35;;;;;13507:7;13479:35;:51;;;;-1:-1:-1;13526:4:0;;-1:-1:-1;;;;;13518:12:0;;;13526:4;;13518:12;;13479:51;13476:118;;;13546:36;13563:18;;13546:16;:36::i;:::-;-1:-1:-1;;;;;13647:24:0;;13614:12;13647:24;;;:18;:24;;;;;;13629:4;;13647:24;;;:50;;-1:-1:-1;;;;;;13675:22:0;;;;;;:18;:22;;;;;;;;13647:50;13644:96;;;-1:-1:-1;13723:5:0;13644:96;13752:41;13767:4;13773:2;13777:6;13785:7;13752:14;:41::i;:::-;12729:1072;;;12660:1141;;;:::o;11603:158::-;11644:7;11665:15;11682;11701:19;:17;:19::i;:::-;11664:56;;-1:-1:-1;11664:56:0;-1:-1:-1;11738:15:0;11664:56;;11738:15;:::i;:::-;11731:22;;;;11603:158;:::o;10316:348::-;10389:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10389:36:0;10450:29;10462:7;10471;10450:11;:29::i;:::-;10438:41;;10577:52;10589:9;10600:7;10609;10618:10;:8;:10::i;:::-;10577:11;:52::i;:::-;10553:20;;;10490:139;10537:14;;;10490:139;10510:25;;;10490:139;;;10316:348;;;;:::o;1983:173::-;2039:16;2058:6;;-1:-1:-1;;;;;2075:17:0;;;-1:-1:-1;;;;;;2075:17:0;;;;;;2108:40;;2058:6;;;;;;;2108:40;;2039:16;2108:40;2028:128;1983:173;:::o;14676:121::-;4622:8;:15;;-1:-1:-1;;4622:15:0;;;;;14773::::1;::::0;14748:41:::1;::::0;14765:6;;-1:-1:-1;;;;;14773:15:0::1;14748:16;:41::i;:::-;-1:-1:-1::0;4660:8:0;:16;;-1:-1:-1;;4660:16:0;;;14676:121::o;13884:782::-;13995:28;14026;14037:7;14046;14026:10;:28::i;:::-;-1:-1:-1;;;;;14071:19:0;;;;;;:11;:19;;;;;;13995:59;;-1:-1:-1;14071:19:0;;14067:115;;;-1:-1:-1;;;;;14147:15:0;;;;;;:7;:15;;;;;;:23;;14163:7;;14147:23;:::i;:::-;-1:-1:-1;;;;;14129:15:0;;;;;;:7;:15;;;;;:41;14067:115;-1:-1:-1;;;;;14196:22:0;;;;;;:11;:22;;;;;;;;14192:130;;;14293:17;;;;-1:-1:-1;;;;;14274:18:0;;;;;;:7;:18;;;;;;:36;;14293:17;14274:36;:::i;:::-;-1:-1:-1;;;;;14253:18:0;;;;;;:7;:18;;;;;:57;14192:130;14368:9;;-1:-1:-1;;;;;14352:15:0;;14368:9;14352:15;;;:7;:15;;;;;;:25;;14368:9;14352:25;:::i;:::-;-1:-1:-1;;;;;14334:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;14428:17;;;14409:18;;;;;;;;;;:36;;14428:17;14409:36;:::i;:::-;-1:-1:-1;;;;;14388:18:0;;;;;;:7;:18;;;;;;;:57;;;;14468:6;;;14476;;;;14456:27;;14468:6;14456:11;:27::i;:::-;14494:41;14509:1;:12;;;14522:1;:12;;;14494:14;:41::i;:::-;14568:9;-1:-1:-1;;;;;14551:46:0;14560:6;-1:-1:-1;;;;;14551:46:0;;14579:1;:17;;;14551:46;;;;10079:25:1;;10067:2;10052:18;;10034:76;14551:46:0;;;;;;;;14638:4;-1:-1:-1;;;;;14613:45:0;14622:6;-1:-1:-1;;;;;14613:45:0;;14645:1;:12;;;14613:45;;;;10079:25:1;;10067:2;10052:18;;10034:76;14613:45:0;;;;;;;;13982:684;13884:782;;;;:::o;11769:540::-;11866:7;;11902;;11819;;;;;11920:279;11944:9;:16;11940:20;;11920:279;;;12010:7;11986;:21;11994:9;12004:1;11994:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11994:12:0;11986:21;;;;;;;;;;;;;:31;;:66;;;12045:7;12021;:21;12029:9;12039:1;12029:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12029:12:0;12021:21;;;;;;;;;;;;;:31;11986:66;11982:97;;;12062:7;;12071;;12054:25;;;;;;;11769:540;;:::o;11982:97::-;12112:7;:21;12120:9;12130:1;12120:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12120:12:0;12112:21;;;;;;;;;;;;;12104:29;;:7;:29;:::i;:::-;12094:39;;12166:7;:21;12174:9;12184:1;12174:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12174:12:0;12166:21;;;;;;;;;;;;;12158:29;;:7;:29;:::i;:::-;12148:39;-1:-1:-1;11962:3:0;;;;:::i;:::-;;;;11920:279;;;;12231:7;;12223;;:15;;;;:::i;:::-;12213:7;:25;12209:56;;;12248:7;;12257;;12240:25;;;;;;11769:540;;:::o;12209:56::-;12284:7;;12293;;-1:-1:-1;11769:540:0;-1:-1:-1;11769:540:0:o;10672:387::-;10746:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10746:28:0;10793:7;10789:86;;10815:17;;;:27;;;10855:8;;10789:86;10902:8;:12;10915:3;;10894:20;;:7;:20;:::i;:::-;:24;;;;:::i;:::-;10885:6;;;:33;10952:18;;10971:3;;10944:26;;:7;:26;:::i;:::-;:30;;;;:::i;:::-;10929:12;;;:45;;;11013:6;;;;11005:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;10985:17;;;:47;10672:387;;;;:::o;11067:528::-;11192:15;;;;11289:19;11297:11;11289:7;:19;:::i;:::-;11279:29;;11325:7;11321:67;;-1:-1:-1;11354:7:0;;-1:-1:-1;11372:1:0;;-1:-1:-1;11372:1:0;11347:29;;11321:67;11414:11;11407:1;:6;;;:18;;;;:::i;:::-;11400:25;;11462:11;11449:1;:12;;;:24;;;;:::i;:::-;11436:37;-1:-1:-1;11436:37:0;11503:12;11511:4;11503:7;:12;:::i;:::-;:23;;;;:::i;:::-;11484:42;;11067:528;;;;;;;;;;:::o;14805:475::-;14914:16;;;14928:1;14914:16;;;;;;;;14890:21;;14914:16;;;;;;;;;;-1:-1:-1;14914:16:0;14890:40;;14959:4;14941;14946:1;14941:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;14941:23:0;;;-1:-1:-1;;;;;14941:23:0;;;;;14985:6;;;;;;;;;-1:-1:-1;;;;;14985:6:0;-1:-1:-1;;;;;14985:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14975:4;14980:1;14975:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14975:23:0;;;:7;;;;;;;;;:23;15043:6;;15011:53;;15028:4;;15043:6;;;;15052:11;15011:8;:53::i;:::-;15077:6;;:193;;-1:-1:-1;;;15077:193:0;;:6;;;;-1:-1:-1;;;;;15077:6:0;;:57;;:193;;15149:11;;15175:1;;15192:4;;15219:9;;15244:15;;15077:193;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14879:401;14805:475;;:::o;9891:123::-;9969:4;9959:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;9984:11:0;:22;;10002:4;;9984:11;:15;;:22;;10002:4;;9984:22;:::i;:::-;;;;-1:-1:-1;;;;9891:123:0:o;10024:284::-;10131:10;10107:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;10177:4:0;10157:26;;;;:11;:26;;;;;;;;10154:101;;;10225:4;10209:22;;;;:7;:22;;;;;:34;;10233:10;;10209:22;:34;;10233:10;;10209:34;:::i;:::-;;;;-1:-1:-1;;10154:101:0;10281:4;10265:22;;;;:7;:22;;;;;:35;;10290:10;;10265:22;:35;;10290:10;;10265:35;:::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;307:1;304;297:12;259:2;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:2;;;570:1;567;560:12;522:2;602:9;596:16;621:31;646:5;621:31;:::i;687:388::-;755:6;763;816:2;804:9;795:7;791:23;787:32;784:2;;;832:1;829;822:12;784:2;871:9;858:23;890:31;915:5;890:31;:::i;:::-;940:5;-1:-1:-1;997:2:1;982:18;;969:32;1010:33;969:32;1010:33;:::i;:::-;1062:7;1052:17;;;774:301;;;;;:::o;1080:456::-;1157:6;1165;1173;1226:2;1214:9;1205:7;1201:23;1197:32;1194:2;;;1242:1;1239;1232:12;1194:2;1281:9;1268:23;1300:31;1325:5;1300:31;:::i;:::-;1350:5;-1:-1:-1;1407:2:1;1392:18;;1379:32;1420:33;1379:32;1420:33;:::i;:::-;1184:352;;1472:7;;-1:-1:-1;;;1526:2:1;1511:18;;;;1498:32;;1184:352::o;1541:315::-;1606:6;1614;1667:2;1655:9;1646:7;1642:23;1638:32;1635:2;;;1683:1;1680;1673:12;1635:2;1722:9;1709:23;1741:31;1766:5;1741:31;:::i;:::-;1791:5;-1:-1:-1;1815:35:1;1846:2;1831:18;;1815:35;:::i;:::-;1805:45;;1625:231;;;;;:::o;1861:315::-;1929:6;1937;1990:2;1978:9;1969:7;1965:23;1961:32;1958:2;;;2006:1;2003;1996:12;1958:2;2045:9;2032:23;2064:31;2089:5;2064:31;:::i;:::-;2114:5;2166:2;2151:18;;;;2138:32;;-1:-1:-1;;;1948:228:1:o;2181:180::-;2237:6;2290:2;2278:9;2269:7;2265:23;2261:32;2258:2;;;2306:1;2303;2296:12;2258:2;2329:26;2345:9;2329:26;:::i;2366:180::-;2425:6;2478:2;2466:9;2457:7;2453:23;2449:32;2446:2;;;2494:1;2491;2484:12;2446:2;-1:-1:-1;2517:23:1;;2436:110;-1:-1:-1;2436:110:1:o;2551:248::-;2616:6;2624;2677:2;2665:9;2656:7;2652:23;2648:32;2645:2;;;2693:1;2690;2683:12;2645:2;2729:9;2716:23;2706:33;;2758:35;2789:2;2778:9;2774:18;2758:35;:::i;3427:597::-;3539:4;3568:2;3597;3586:9;3579:21;3629:6;3623:13;3672:6;3667:2;3656:9;3652:18;3645:34;3697:1;3707:140;3721:6;3718:1;3715:13;3707:140;;;3816:14;;;3812:23;;3806:30;3782:17;;;3801:2;3778:26;3771:66;3736:10;;3707:140;;;3865:6;3862:1;3859:13;3856:2;;;3935:1;3930:2;3921:6;3910:9;3906:22;3902:31;3895:42;3856:2;-1:-1:-1;4008:2:1;3987:15;-1:-1:-1;;3983:29:1;3968:45;;;;4015:2;3964:54;;3548:476;-1:-1:-1;;;3548:476:1:o;7244:356::-;7446:2;7428:21;;;7465:18;;;7458:30;7524:34;7519:2;7504:18;;7497:62;7591:2;7576:18;;7418:182::o;9175:347::-;9377:2;9359:21;;;9416:2;9396:18;;;9389:30;9455:25;9450:2;9435:18;;9428:53;9513:2;9498:18;;9349:173::o;10115:988::-;10385:4;10433:3;10422:9;10418:19;10464:6;10453:9;10446:25;10490:2;10528:6;10523:2;10512:9;10508:18;10501:34;10571:3;10566:2;10555:9;10551:18;10544:31;10595:6;10630;10624:13;10661:6;10653;10646:22;10699:3;10688:9;10684:19;10677:26;;10738:2;10730:6;10726:15;10712:29;;10759:1;10769:195;10783:6;10780:1;10777:13;10769:195;;;10848:13;;-1:-1:-1;;;;;10844:39:1;10832:52;;10939:15;;;;10904:12;;;;10880:1;10798:9;10769:195;;;-1:-1:-1;;;;;;;11020:32:1;;;;11015:2;11000:18;;10993:60;-1:-1:-1;;;11084:3:1;11069:19;11062:35;10981:3;10394:709;-1:-1:-1;;;10394:709:1:o;11550:128::-;11590:3;11621:1;11617:6;11614:1;11611:13;11608:2;;;11627:18;;:::i;:::-;-1:-1:-1;11663:9:1;;11598:80::o;11683:217::-;11723:1;11749;11739:2;;11793:10;11788:3;11784:20;11781:1;11774:31;11828:4;11825:1;11818:15;11856:4;11853:1;11846:15;11739:2;-1:-1:-1;11885:9:1;;11729:171::o;11905:422::-;11994:1;12037:5;11994:1;12051:270;12072:7;12062:8;12059:21;12051:270;;;12131:4;12127:1;12123:6;12119:17;12113:4;12110:27;12107:2;;;12140:18;;:::i;:::-;12190:7;12180:8;12176:22;12173:2;;;12210:16;;;;12173:2;12289:22;;;;12249:15;;;;12051:270;;;12055:3;11969:358;;;;;:::o;12332:140::-;12390:5;12419:47;12460:4;12450:8;12446:19;12440:4;12526:5;12556:8;12546:2;;-1:-1:-1;12597:1:1;12611:5;;12546:2;12645:4;12635:2;;-1:-1:-1;12682:1:1;12696:5;;12635:2;12727:4;12745:1;12740:59;;;;12813:1;12808:130;;;;12720:218;;12740:59;12770:1;12761:10;;12784:5;;;12808:130;12845:3;12835:8;12832:17;12829:2;;;12852:18;;:::i;:::-;-1:-1:-1;;12908:1:1;12894:16;;12923:5;;12720:218;;13022:2;13012:8;13009:16;13003:3;12997:4;12994:13;12990:36;12984:2;12974:8;12971:16;12966:2;12960:4;12957:12;12953:35;12950:77;12947:2;;;-1:-1:-1;13059:19:1;;;13091:5;;12947:2;13138:34;13163:8;13157:4;13138:34;:::i;:::-;13208:6;13204:1;13200:6;13196:19;13187:7;13184:32;13181:2;;;13219:18;;:::i;:::-;13257:20;;12536:747;-1:-1:-1;;;12536:747:1:o;13288:168::-;13328:7;13394:1;13390;13386:6;13382:14;13379:1;13376:21;13371:1;13364:9;13357:17;13353:45;13350:2;;;13401:18;;:::i;:::-;-1:-1:-1;13441:9:1;;13340:116::o;13461:125::-;13501:4;13529:1;13526;13523:8;13520:2;;;13534:18;;:::i;:::-;-1:-1:-1;13571:9:1;;13510:76::o;13591:135::-;13630:3;-1:-1:-1;;13651:17:1;;13648:2;;;13671:18;;:::i;:::-;-1:-1:-1;13718:1:1;13707:13;;13638:88::o;13731:127::-;13792:10;13787:3;13783:20;13780:1;13773:31;13823:4;13820:1;13813:15;13847:4;13844:1;13837:15;13863:127;13924:10;13919:3;13915:20;13912:1;13905:31;13955:4;13952:1;13945:15;13979:4;13976:1;13969:15;14127:131;-1:-1:-1;;;;;14202:31:1;;14192:42;;14182:2;;14248:1;14245;14238:12

Swarm Source

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