ETH Price: $3,439.78 (-1.27%)

Token

Shinar (SHIN)
 

Overview

Max Total Supply

2,443,209.03908766979489343 SHIN

Holders

205

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2.519710118350169048 SHIN

Value
$0.00
0xbffc39c5b410aa07eabde253bb348c41e81ce5e6
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:
Shinar

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-10
*/

//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.16;

// Telegram: https://t.me/landofshinar

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}


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

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

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
         uint amountIn,
         uint amountOutMin,
         address[] calldata path,
         address to,
         uint deadline
     ) external;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
         uint amountIn,
         uint amountOutMin,
         address[] calldata path,
         address to,
         uint deadline
     ) external;
     function factory() external pure returns (address);
     function WETH() external pure returns (address);
     function addLiquidityETH(
         address token,
         uint amountTokenDesired,
         uint amountTokenMin,
         uint amountETHMin,
         address to,
         uint deadline
     ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IPair {
     function skim(address to) external;
     function sync() external;
     function mint(address to) external;
     function burn(address to) external;
}

interface IWETH {
    function withdraw(uint wad) external;
    function approve(address who, uint wad) external returns(bool);
    function deposit() payable external;
    function transfer(address dst, uint wad) external returns (bool);
    function balanceOf(address _owner) external view returns(uint256);
}


contract Shinar is Context, IERC20, IERC20Metadata {

    IUniswapV2Router02 internal router;

    address internal dev;
    address internal pair;
    address internal WETH;
    address internal routerAddress;
    address internal _owner;

    address public kingOfShinar;
    address public stETH;

    uint256 public startStamp;
    uint256 public startBlock;
    uint256 internal maxSizePerWallet;
    uint256 internal initialLP;
    uint256 private _totalSupply;

    uint256 public kingOfShinarAmount;
    uint256 public lastRebaseStamp;
    uint256 public lastPumpStamp;
    
    bool internal inSwapAndLiquify;

    string private _name;
    string private _symbol;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public autoBlacklisted;


    event kingOfShinarRebase(address _kingOfShinar, uint256 _randomPercent, uint256 tokensAdded);
    event newKingOfShinar(address _oldKing, address _newKing, uint256 amount);

    constructor(address owner) payable {
        _name = "Shinar";
        _symbol = "SHIN";

        routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        stETH = 0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84;
        router = IUniswapV2Router02(routerAddress);
        WETH = router.WETH();
        pair = IUniswapV2Factory(router.factory()).createPair(WETH, address(this));

        //Initial supply
        _mint(address(this), 10_000_000e18);
        _mint(msg.sender, 800_000e18);

        //Approvals
        IERC20(pair).approve(routerAddress, type(uint256).max);
        IERC20(WETH).approve(routerAddress, type(uint256).max);
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[msg.sender][address(router)] = type(uint256).max;
        
        //Initial reserve
        IWETH(WETH).deposit{value: msg.value}();

        dev = owner;
        _owner = msg.sender;
        maxSizePerWallet = 100_000e18;
        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = stETH;
        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            IERC20(WETH).balanceOf(address(this)),
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLPAndAllowExchange() public payable {
        require(msg.sender == _owner,"Not Liq Add");
        (,,uint256 gotLP)=router.addLiquidityETH{value: msg.value}(
            address(this),
            10_000_000e18,
            0,
            0,
            address(this),
            block.timestamp
        );

        initialLP = gotLP/2;
        startStamp = block.timestamp;
        startBlock = block.number;
    }

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

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        //Auto-redeem if you transfer tokens to yourself
        //Minimum 1 token
        if(msg.sender == to && amount >= 1e18) {
            redeemForETH(amount);
        } else {
            _transfer(_msgSender(),to, amount);  
        }
        return true;
    }

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _approve(from, spender, _allowances[from][spender] - amount);
        _transfer(from, to, amount);
        return true;
    }

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

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

        return true;
    } 

    function renounceOwnership() external {
        require(msg.sender == dev,"Not owner");
        dev = address(0);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(amount>=100, "minAmt");

        //Auto blaclist everyone who buys in the same block or the block after liquidity addition
        if(startBlock+1>=block.number && recipient != address(this) && recipient != pair && recipient != routerAddress) {
            autoBlacklisted[recipient] = true;
        } else {
            if(autoBlacklisted[sender]) revert("Auto Blacklisted");
        }

        //Dont tax in swapback or this address or router address
        if(inSwapAndLiquify || sender == address(this) || recipient == address(this) || recipient == routerAddress || sender == routerAddress){ return _basicTransfer(sender, recipient, amount); }
        //Swap tax tokens to ETH for distribution (0.05% of supply)
        if(sender != pair && !inSwapAndLiquify && _balances[address(this)] >= _totalSupply / 2000){ swapBack(); }
        
        _balances[sender] -= amount;

        //Tax & Final transfer amounts
        uint256 taxAmount = amount / 20;
        uint256 finalAmount = amount - taxAmount;
       
        //Check if amount bought qualifies as King Of Shinar
        if(sender == pair && recipient != routerAddress && amount > kingOfShinarAmount) {
            emit newKingOfShinar(kingOfShinar, recipient, finalAmount);

            kingOfShinarAmount = finalAmount;
            kingOfShinar = recipient;
        }

        if(block.timestamp < startStamp + 10 minutes && recipient != address(this) && recipient != pair) {
            require(_balances[recipient] + finalAmount <= maxSizePerWallet, "Max Tokens Per Wallet Reached!");
            _totalSupply -= taxAmount;
            emit Transfer(sender, address(0), taxAmount);
        } else {
            uint256 taxPartForChad = taxAmount * 40 / 100;

            //Current King Of Shinar gets 40% of all taxes for 2 HRs
            //He must hold the King Of Shinar Amount tokens
            if(kingOfShinar != address(0) && _balances[kingOfShinar]>=kingOfShinarAmount) {
                if(kingOfShinar==recipient){
                    _totalSupply -= taxPartForChad;
                    emit Transfer(sender, address(0), taxPartForChad);
                } else {
                    _balances[kingOfShinar] += taxPartForChad;
                    emit Transfer(sender, kingOfShinar, taxPartForChad);
                }
                _balances[address(this)] += taxAmount - taxPartForChad;
                emit Transfer(sender, address(this), taxAmount - taxPartForChad);
            } else { 
                //If there is no King Of Shinar OR King Of Shinar sold his tokens early
                //King Of Shinar Tax part will be burned
                uint256 taxKept = taxAmount - taxPartForChad;
                _balances[address(this)] += taxKept;
                _totalSupply -= taxPartForChad;

                emit Transfer(sender, address(this), taxKept);
                emit Transfer(sender, address(0), taxPartForChad);
               
            }



        }

        _balances[recipient] += finalAmount;
        emit Transfer(sender, recipient, finalAmount);

                    //King Of Shinar Rebase
            rewardkingOfShinar();
      
        return true;
    } 

    //Rebases Positively King Of Shinar Balance
    //Random +1-10% Rebase on King Of Shinar Amount Tokens
    function rewardkingOfShinar() internal {
        if(kingOfShinar != address(0) && block.timestamp >= lastRebaseStamp + 1 hours) {

            uint256 currentBal = _balances[kingOfShinar];
            //King Of Shinar must keep his tokens otherwise no reward
            if(currentBal >= kingOfShinarAmount){
                
                //Random reward 1-10% balance increase
                uint256 randomPercent = (uint256(
                    keccak256( 
                        abi.encode(
                            blockhash(block.number - 1),
                            blockhash(block.number),
                            block.number,
                            block.timestamp,
                            currentBal,
                            kingOfShinar))) % 10) + 1;

                uint256 addedTokens = kingOfShinarAmount * randomPercent / 100;
                _balances[kingOfShinar] += addedTokens;
                _totalSupply += addedTokens;
                emit Transfer(address(0), kingOfShinar, addedTokens);
                emit kingOfShinarRebase(kingOfShinar,randomPercent,addedTokens);
            }

            //Reset King Of Shinar to zero address
            //Tokens to become next King Of Shinar are 20% of previous
            kingOfShinar = address(0);
            kingOfShinarAmount = kingOfShinarAmount / 5;
            lastRebaseStamp = block.timestamp;

        }       
    }

    //Swap back Tokens for ETH
    function swapBack() internal lockTheSwap {

        //50% of Tokens added as LP
        //50% of Tokens sold for ETH for LP
        uint256 forLP = _balances[address(this)] / 2;
        uint256 swapAmt = _balances[address(this)] - forLP;

        //Swap tokens for ETH
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            swapAmt,
            0,
            path,
            address(this),
            block.timestamp
        );

        //Add 50% of ETH as LP
        //Add 50% of Tokens as LP
        (,,uint256 gotLP) = router.addLiquidityETH{value: address(this).balance/2}(
            address(this),
            forLP,
            0,
            0,
            address(this),
            block.timestamp
        );

        //20%
        initialLP += gotLP/5;

        //Get WETH from ETH
        IWETH(WETH).deposit{value: address(this).balance}();

        //Burn the swap amount from pair
        _balances[pair] -= swapAmt;
        _balances[address(this)] = 1 wei;
        _totalSupply -= swapAmt;

        //Must be updated when burning tokens from the pair.
        IPair(pair).sync();
        emit Transfer(pair, address(0), swapAmt);

        //Perfrom 2% LP removal for buy-back and burn
        //Once every 2 hours
        if(block.timestamp >= lastPumpStamp + 5 hours) {
            pumpFromLockedLP();
        }
    }

    function pumpFromLockedLP() internal {
        
        //Removes 2% of 'flowing liquidity' from this contract LP Tokens
        uint256 burnLPAmt = (IERC20(pair).balanceOf(address(this)) - initialLP) / 50;
        
        //Set cooldown
        lastPumpStamp = block.timestamp;

        uint256 wethBefore = IERC20(WETH).balanceOf(address(this));
        uint256 tokensBefore = _balances[address(this)];

        //Remove LP 
        IERC20(pair).transfer(pair, burnLPAmt);
        IPair(pair).burn(address(this));

        //How much ETH and Tokens we got from removed LP ?
        uint256 wethGot = IERC20(WETH).balanceOf(address(this)) - wethBefore;
        uint256 tokensGot = _balances[address(this)] - tokensBefore;

        //Burn Tokens from removed lp side
        _balances[address(this)] -= tokensGot;
        
        //Swap WETH For Tokens
        //Sends received tokens to burn address
        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = address(this);

        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            wethGot/2, //50% of ETH from removed LP
            0,
            path,
            0x0000000000000000000000000000000000000001, //swap receiver
            block.timestamp
        );

        uint256 amtToBurn = _balances[0x0000000000000000000000000000000000000001] + tokensGot;

        //Reduce total supply from swapback and removed lp tokens
        _totalSupply -= amtToBurn;
        //Reset swap receiver address balance
        _balances[0x0000000000000000000000000000000000000001] = 1 wei;
        emit Transfer(address(this), address(0), amtToBurn);
     
        path[0] = WETH;
        path[1] = stETH;
        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            IERC20(WETH).balanceOf(address(this)),
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    
    function redeemForETH(uint256 amt) public lockTheSwap {
        require(inSwapAndLiquify, " ALREADY REDEEMING ");
        require(amt >= 1e18, "Minimum redeem is 1 token!");
        require(_balances[msg.sender] >= amt, "Insufficient Tokens!");

        //Get current price floor per 1 token
        uint256 rate = redeemRate();

        //Burn tokens used to redeem 
        _balances[msg.sender] -= amt;
        _totalSupply -= amt;
        emit Transfer(msg.sender, address(0), amt);

        //Send redeemed ETH
        uint256 sethToSend = amt * rate / 1e18;
        require(sethToSend != 0,"AmountOut");
        IERC20(stETH).transfer(msg.sender, sethToSend);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }    

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner,address spender,uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function getstETHInReserve() public view returns (uint256) {
        return IERC20(stETH).balanceOf(address(this));
    }

    function redeemRate() public view returns(uint256) {
        return getstETHInReserve() * 1e18 / _totalSupply;
    }

    function tokensToRedeemFor1ETH() public view returns(uint256){
        return _totalSupply / getstETHInReserve();
    }

    //in seconds
    function nextRebaseTimeLeft() public view returns(uint256) {
       return block.timestamp >= lastRebaseStamp + 2 hours ? 0 : lastRebaseStamp + 2 hours - block.timestamp;
    }

    function tokensLeftForSwapback() external view returns(uint256 amt){
        return _balances[address(this)] >= _totalSupply / 2000 ? 0 : _totalSupply / 2000 - _balances[address(this)];
    }

    function nextLPPumpTimeLeft() public view returns(uint256){
        return block.timestamp >= lastPumpStamp + 2 hours ? 0 : lastPumpStamp + 2 hours - block.timestamp;
    }

    receive() external payable { }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_kingOfShinar","type":"address"},{"indexed":false,"internalType":"uint256","name":"_randomPercent","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensAdded","type":"uint256"}],"name":"kingOfShinarRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_oldKing","type":"address"},{"indexed":false,"internalType":"address","name":"_newKing","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"newKingOfShinar","type":"event"},{"inputs":[],"name":"addLPAndAllowExchange","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"autoBlacklisted","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getstETHInReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kingOfShinar","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kingOfShinarAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastPumpStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRebaseStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextLPPumpTimeLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextRebaseTimeLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"redeemForETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"redeemRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensLeftForSwapback","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensToRedeemFor1ETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260405162002bf538038062002bf583398101604081905262000026916200069d565b60408051808201909152600681526529b434b730b960d11b602082015260119062000052908262000774565b5060408051808201909152600481526329a424a760e11b60208201526012906200007d908262000774565b50600480546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d908117835560078054831673ae7ab96520de3a18e5e111b5eaab095312d7fe84179055600080549092168117909155604080516315ab88c960e31b81529051919263ad5c46489282820192602092908290030181865afa1580156200010c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013291906200069d565b600380546001600160a01b0319166001600160a01b039283161790556000546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000191573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b791906200069d565b6003546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f91906200069d565b600280546001600160a01b0319166001600160a01b039290921691909117905562000266306a084595161401484a000000620005b5565b6200027c3369a968163f0a57b4000000620005b5565b6002546004805460405163095ea7b360e01b81526001600160a01b039182169281019290925260001960248301529091169063095ea7b3906044016020604051808303816000875af1158015620002d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fd919062000840565b506003546004805460405163095ea7b360e01b81526001600160a01b039182169281019290925260001960248301529091169063095ea7b3906044016020604051808303816000875af115801562000359573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037f919062000840565b5030600090815260146020818152604080842084546001600160a01b03908116865290835281852060001990819055338652938352818520855482168652909252808420929092556003548251630d0e30db60e41b8152925191169263d0e30db09234926004808301939282900301818588803b1580156200040057600080fd5b505af115801562000415573d6000803e3d6000fd5b5050600180546001600160a01b0386166001600160a01b0319918216179091556005805490911633179055505069152d02c7e14af6800000600a5550604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b03169183915060009062000495576200049562000864565b6001600160a01b039283166020918202929092010152600754825191169082906001908110620004c957620004c962000864565b6001600160a01b0392831660209182029290920101526000546003546040516370a0823160e01b815230600482015291831692635c11d795929116906370a0823190602401602060405180830381865afa1580156200052c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200055291906200087a565b60008430426040518663ffffffff1660e01b81526004016200057995949392919062000894565b600060405180830381600087803b1580156200059457600080fd5b505af1158015620005a9573d6000803e3d6000fd5b5050505050506200092f565b6001600160a01b038216620006105760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600c600082825462000624919062000907565b90915550506001600160a01b038216600090815260136020526040812080548392906200065390849062000907565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208284031215620006b057600080fd5b81516001600160a01b0381168114620006c857600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006fa57607f821691505b6020821081036200071b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200076f57600081815260208120601f850160051c810160208610156200074a5750805b601f850160051c820191505b818110156200076b5782815560010162000756565b5050505b505050565b81516001600160401b03811115620007905762000790620006cf565b620007a881620007a18454620006e5565b8462000721565b602080601f831160018114620007e05760008415620007c75750858301515b600019600386901b1c1916600185901b1785556200076b565b600085815260208120601f198616915b828110156200081157888601518255948401946001909101908401620007f0565b5085821015620008305787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200085357600080fd5b81518015158114620006c857600080fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156200088d57600080fd5b5051919050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015620008e65784516001600160a01b031683529383019391830191600101620008bf565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156200092957634e487b7160e01b600052601160045260246000fd5b92915050565b6122b6806200093f6000396000f3fe6080604052600436106101bb5760003560e01c806370a08231116100ec578063c1fe3e481161008a578063dbda782711610064578063dbda782714610495578063dd62ed3e146104b5578063f7e2121f146104fb578063fd8051421461051057600080fd5b8063c1fe3e4814610440578063ce3322f614610478578063ce9a47051461048057600080fd5b80638f9bf12a116100c65780638f9bf12a146103cb57806395d89b41146103eb578063a457c2d714610400578063a9059cbb1461042057600080fd5b806370a0823114610368578063715018a61461039e578063759f9f50146103b557600080fd5b80632b30e9bd11610159578063450288901161013357806345028890146102f757806348cd4cb11461030c57806353e121fb146103225780635540421b1461035257600080fd5b80632b30e9bd146102a5578063313ce567146102bb57806339509351146102d757600080fd5b806313e7f4e51161019557806313e7f4e51461024557806318160ddd1461025b5780631e95eeaa1461027057806323b872dd1461028557600080fd5b806306fdde03146101c7578063095ea7b3146101f25780630adcdbaa1461022257600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610525565b6040516101e99190611f33565b60405180910390f35b3480156101fe57600080fd5b5061021261020d366004611f9d565b6105b7565b60405190151581526020016101e9565b34801561022e57600080fd5b506102376105ce565b6040519081526020016101e9565b34801561025157600080fd5b50610237600d5481565b34801561026757600080fd5b50600c54610237565b34801561027c57600080fd5b506102376105fc565b34801561029157600080fd5b506102126102a0366004611fc7565b610654565b3480156102b157600080fd5b50610237600f5481565b3480156102c757600080fd5b50604051601281526020016101e9565b3480156102e357600080fd5b506102126102f2366004611f9d565b6106a9565b34801561030357600080fd5b506102376106ed565b34801561031857600080fd5b5061023760095481565b34801561032e57600080fd5b5061021261033d366004612003565b60156020526000908152604090205460ff1681565b34801561035e57600080fd5b5061023760085481565b34801561037457600080fd5b50610237610383366004612003565b6001600160a01b031660009081526013602052604090205490565b3480156103aa57600080fd5b506103b3610717565b005b3480156103c157600080fd5b50610237600e5481565b3480156103d757600080fd5b506103b36103e636600461201e565b610774565b3480156103f757600080fd5b506101dc610983565b34801561040c57600080fd5b5061021261041b366004611f9d565b610992565b34801561042c57600080fd5b5061021261043b366004611f9d565b610a2f565b34801561044c57600080fd5b50600754610460906001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b6103b3610a79565b34801561048c57600080fd5b50610237610b6b565b3480156104a157600080fd5b50600654610460906001600160a01b031681565b3480156104c157600080fd5b506102376104d0366004612037565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b34801561050757600080fd5b50610237610b95565b34801561051c57600080fd5b50610237610c02565b6060601180546105349061206a565b80601f01602080910402602001604051908101604052809291908181526020018280546105609061206a565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b60006105c4338484610c19565b5060015b92915050565b6000600c546105db610b95565b6105ed90670de0b6b3a76400006120ba565b6105f791906120e7565b905090565b60006107d0600c5461060e91906120e7565b30600090815260136020526040902054101561064e5730600090815260136020526040902054600c54610644906107d0906120e7565b6105f791906120fb565b50600090565b6001600160a01b0383166000908152601460209081526040808320338085529252822054610690908690839061068b9087906120fb565b610c19565b61069b858585610d3d565b5060019150505b9392505050565b3360008181526014602090815260408083206001600160a01b03871684529091528120549091906106e3908290869061068b90879061210e565b5060019392505050565b6000600f54611c206106ff919061210e565b42101561064e5742600f54611c20610644919061210e565b6001546001600160a01b031633146107625760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064015b60405180910390fd5b600180546001600160a01b0319169055565b6010805460ff19166001179055670de0b6b3a76400008110156107d95760405162461bcd60e51b815260206004820152601a60248201527f4d696e696d756d2072656465656d206973203120746f6b656e210000000000006044820152606401610759565b3360009081526013602052604090205481111561082f5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e7420546f6b656e732160601b6044820152606401610759565b60006108396105ce565b3360009081526013602052604081208054929350849290919061085d9084906120fb565b9250508190555081600c600082825461087691906120fb565b909155505060405182815260009033906000805160206122618339815191529060200160405180910390a36000670de0b6b3a76400006108b683856120ba565b6108c091906120e7565b9050806000036108fe5760405162461bcd60e51b8152602060048201526009602482015268105b5bdd5b9d13dd5d60ba1b6044820152606401610759565b60075460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af115801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190612121565b50506010805460ff191690555050565b6060601280546105349061206a565b3360008181526014602090815260408083206001600160a01b038716845290915281205490919083811015610a175760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610759565b610a248286868403610c19565b506001949350505050565b6000336001600160a01b038416148015610a515750670de0b6b3a76400008210155b15610a6457610a5f82610774565b6105c4565b610a6f338484610d3d565b5050600192915050565b6005546001600160a01b03163314610ac15760405162461bcd60e51b815260206004820152600b60248201526a139bdd08131a5c4810591960aa1b6044820152606401610759565b6000805460405163f305d71960e01b81526001600160a01b039091169063f305d719903490610b099030906a084595161401484a000000908790819084904290600401612143565b60606040518083038185885af1158015610b27573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b4c919061217e565b92505050600281610b5d91906120e7565b600b55504260085543600955565b6000600e54611c20610b7d919061210e565b42101561064e5742600e54611c20610644919061210e565b6007546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610bde573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f791906121ac565b6000610c0c610b95565b600c546105f791906120e7565b6001600160a01b038316610c7b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610759565b6001600160a01b038216610cdc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610759565b6001600160a01b0383811660008181526014602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006064821015610d795760405162461bcd60e51b81526020600482015260066024820152651b5a5b905b5d60d21b6044820152606401610759565b436009546001610d89919061210e565b10158015610da057506001600160a01b0383163014155b8015610dba57506002546001600160a01b03848116911614155b8015610dd457506004546001600160a01b03848116911614155b15610e01576001600160a01b0383166000908152601560205260409020805460ff19166001179055610e5d565b6001600160a01b03841660009081526015602052604090205460ff1615610e5d5760405162461bcd60e51b815260206004820152601060248201526f105d5d1bc8109b1858dadb1a5cdd195960821b6044820152606401610759565b60105460ff1680610e7657506001600160a01b03841630145b80610e8957506001600160a01b03831630145b80610ea157506004546001600160a01b038481169116145b80610eb957506004546001600160a01b038581169116145b15610ed057610ec98484846113d5565b90506106a2565b6002546001600160a01b03858116911614801590610ef1575060105460ff16155b8015610f1b57506107d0600c54610f0891906120e7565b3060009081526013602052604090205410155b15610f2857610f2861147d565b6001600160a01b03841660009081526013602052604081208054849290610f509084906120fb565b9091555060009050610f636014846120e7565b90506000610f7182856120fb565b6002549091506001600160a01b038781169116148015610f9f57506004546001600160a01b03868116911614155b8015610fac5750600d5484115b1561102057600654604080516001600160a01b039283168152918716602083015281018290527f02ddf90a6df7de960dee12f0af651593775600ad8dd4f5410bdde6c7deb242e09060600160405180910390a1600d819055600680546001600160a01b0319166001600160a01b0387161790555b60085461102f9061025861210e565b4210801561104657506001600160a01b0385163014155b801561106057506002546001600160a01b03868116911614155b1561112557600a546001600160a01b03861660009081526013602052604090205461108c90839061210e565b11156110da5760405162461bcd60e51b815260206004820152601e60248201527f4d617820546f6b656e73205065722057616c6c657420526561636865642100006044820152606401610759565b81600c60008282546110ec91906120fb565b90915550506040518281526000906001600160a01b038816906000805160206122618339815191529060200160405180910390a3611357565b600060646111348460286120ba565b61113e91906120e7565b6006549091506001600160a01b0316158015906111775750600d546006546001600160a01b031660009081526013602052604090205410155b156112a8576006546001600160a01b038088169116036111dc5780600c60008282546111a391906120fb565b90915550506040518181526000906001600160a01b038916906000805160206122618339815191529060200160405180910390a361123f565b6006546001600160a01b03166000908152601360205260408120805483929061120690849061210e565b90915550506006546040518281526001600160a01b03918216918916906000805160206122618339815191529060200160405180910390a35b61124981846120fb565b306000908152601360205260408120805490919061126890849061210e565b909155503090506001600160a01b03881660008051602061226183398151915261129284876120fb565b60405190815260200160405180910390a3611355565b60006112b482856120fb565b306000908152601360205260408120805492935083929091906112d890849061210e565b9250508190555081600c60008282546112f191906120fb565b909155505060405181815230906001600160a01b038a16906000805160206122618339815191529060200160405180910390a36040518281526000906001600160a01b038a16906000805160206122618339815191529060200160405180910390a3505b505b6001600160a01b0385166000908152601360205260408120805483929061137f90849061210e565b92505081905550846001600160a01b0316866001600160a01b0316600080516020612261833981519152836040516113b991815260200190565b60405180910390a36113c96117c6565b50600195945050505050565b6001600160a01b0383166000908152601360205260408120546113f99083906120fb565b6001600160a01b03808616600090815260136020526040808220939093559085168152205461142990839061210e565b6001600160a01b0380851660008181526013602052604090819020939093559151908616906000805160206122618339815191529061146b9086815260200190565b60405180910390a35060019392505050565b6010805460ff19166001179055306000908152601360205260408120546114a6906002906120e7565b30600090815260136020526040812054919250906114c59083906120fb565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106114ff576114ff6121c5565b6001600160a01b039283166020918202929092010152600354825191169082906001908110611530576115306121c5565b6001600160a01b0392831660209182029290920101526000805460405163791ac94760e01b815292169163791ac94791611575918691908690309042906004016121db565b600060405180830381600087803b15801561158f57600080fd5b505af11580156115a3573d6000803e3d6000fd5b5050600080549092506001600160a01b0316905063f305d7196115c76002476120e7565b308760008030426040518863ffffffff1660e01b81526004016115ef96959493929190612143565b60606040518083038185885af115801561160d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611632919061217e565b9250505060058161164391906120e7565b600b6000828254611654919061210e565b909155505060035460408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0914791600480830192600092919082900301818588803b1580156116a057600080fd5b505af11580156116b4573d6000803e3d6000fd5b50506002546001600160a01b0316600090815260136020526040812080548895509093509091506116e69084906120fb565b909155505030600090815260136020526040812060019055600c80548592906117109084906120fb565b90915550506002546040805160016209351760e01b0319815290516001600160a01b039092169163fff6cae99160048082019260009290919082900301818387803b15801561175e57600080fd5b505af1158015611772573d6000803e3d6000fd5b5050600254604051868152600093506001600160a01b0390911691506000805160206122618339815191529060200160405180910390a3600f546117b89061465061210e565b4210610973576109736119a7565b6006546001600160a01b0316158015906117ee5750600e546117ea90610e1061210e565b4210155b156119a5576006546001600160a01b0316600090815260136020526040902054600d54811061197d576000600a6118266001436120fb565b600654604080519240602084015243804091840191909152606083015242608083015260a082018590526001600160a01b031660c082015260e0016040516020818303038152906040528051906020012060001c611884919061224c565b61188f90600161210e565b90506000606482600d546118a391906120ba565b6118ad91906120e7565b6006546001600160a01b03166000908152601360205260408120805492935083929091906118dc90849061210e565b9250508190555080600c60008282546118f5919061210e565b90915550506006546040518281526001600160a01b03909116906000906000805160206122618339815191529060200160405180910390a3600654604080516001600160a01b0390921682526020820184905281018290527f884b32f30d608ad4492f40b3e0e3012ba3a0f17d7f8891fcfcd8f8fef03598db9060600160405180910390a150505b600680546001600160a01b0319169055600d5461199c906005906120e7565b600d555042600e555b565b600b546002546040516370a0823160e01b815230600482015260009260329290916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e91906121ac565b611a2891906120fb565b611a3291906120e7565b42600f556003546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa891906121ac565b306000908152601360205260409081902054600254915163a9059cbb60e01b81526001600160a01b039092166004830181905260248301869052929350919063a9059cbb906044016020604051808303816000875af1158015611b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b339190612121565b5060025460405163226bf2d160e21b81523060048201526001600160a01b03909116906389afcb4490602401600060405180830381600087803b158015611b7957600080fd5b505af1158015611b8d573d6000803e3d6000fd5b50506003546040516370a0823160e01b8152306004820152600093508592506001600160a01b03909116906370a0823190602401602060405180830381865afa158015611bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0291906121ac565b611c0c91906120fb565b3060009081526013602052604081205491925090611c2b9084906120fb565b30600090815260136020526040812080549293508392909190611c4f9084906120fb565b9091555050604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b031691839150600090611c9557611c956121c5565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611cc957611cc96121c5565b6001600160a01b03928316602091820292909201015260005416635c11d795611cf36002866120e7565b6000846001426040518663ffffffff1660e01b8152600401611d199594939291906121db565b600060405180830381600087803b158015611d3357600080fd5b505af1158015611d47573d6000803e3d6000fd5b50506001600090815260136020527f4155c2f711f2cdd34f8262ab8fb9b7020a700fe7b6948222152f7670d1fdf34d54909250611d869150849061210e565b905080600c6000828254611d9a91906120fb565b90915550506001600081815260136020527f4155c2f711f2cdd34f8262ab8fb9b7020a700fe7b6948222152f7670d1fdf34d91909155604051309060008051602061226183398151915290611df29085815260200190565b60405180910390a360035482516001600160a01b03909116908390600090611e1c57611e1c6121c5565b6001600160a01b039283166020918202929092010152600754835191169083906001908110611e4d57611e4d6121c5565b6001600160a01b0392831660209182029290920101526000546003546040516370a0823160e01b815230600482015291831692635c11d795929116906370a0823190602401602060405180830381865afa158015611eaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed391906121ac565b60008530426040518663ffffffff1660e01b8152600401611ef89594939291906121db565b600060405180830381600087803b158015611f1257600080fd5b505af1158015611f26573d6000803e3d6000fd5b5050505050505050505050565b600060208083528351808285015260005b81811015611f6057858101830151858201604001528201611f44565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611f9857600080fd5b919050565b60008060408385031215611fb057600080fd5b611fb983611f81565b946020939093013593505050565b600080600060608486031215611fdc57600080fd5b611fe584611f81565b9250611ff360208501611f81565b9150604084013590509250925092565b60006020828403121561201557600080fd5b6106a282611f81565b60006020828403121561203057600080fd5b5035919050565b6000806040838503121561204a57600080fd5b61205383611f81565b915061206160208401611f81565b90509250929050565b600181811c9082168061207e57607f821691505b60208210810361209e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176105c8576105c86120a4565b634e487b7160e01b600052601260045260246000fd5b6000826120f6576120f66120d1565b500490565b818103818111156105c8576105c86120a4565b808201808211156105c8576105c86120a4565b60006020828403121561213357600080fd5b815180151581146106a257600080fd5b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561219357600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156121be57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561222b5784516001600160a01b031683529383019391830191600101612206565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261225b5761225b6120d1565b50069056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122008cc27f4af03c05fed9043911ed8b271d8aae487d354925c8c1c627faf2b587664736f6c63430008110033000000000000000000000000586f7268e802616867dfcc9ba0f60f17e23a87e2

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806370a08231116100ec578063c1fe3e481161008a578063dbda782711610064578063dbda782714610495578063dd62ed3e146104b5578063f7e2121f146104fb578063fd8051421461051057600080fd5b8063c1fe3e4814610440578063ce3322f614610478578063ce9a47051461048057600080fd5b80638f9bf12a116100c65780638f9bf12a146103cb57806395d89b41146103eb578063a457c2d714610400578063a9059cbb1461042057600080fd5b806370a0823114610368578063715018a61461039e578063759f9f50146103b557600080fd5b80632b30e9bd11610159578063450288901161013357806345028890146102f757806348cd4cb11461030c57806353e121fb146103225780635540421b1461035257600080fd5b80632b30e9bd146102a5578063313ce567146102bb57806339509351146102d757600080fd5b806313e7f4e51161019557806313e7f4e51461024557806318160ddd1461025b5780631e95eeaa1461027057806323b872dd1461028557600080fd5b806306fdde03146101c7578063095ea7b3146101f25780630adcdbaa1461022257600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610525565b6040516101e99190611f33565b60405180910390f35b3480156101fe57600080fd5b5061021261020d366004611f9d565b6105b7565b60405190151581526020016101e9565b34801561022e57600080fd5b506102376105ce565b6040519081526020016101e9565b34801561025157600080fd5b50610237600d5481565b34801561026757600080fd5b50600c54610237565b34801561027c57600080fd5b506102376105fc565b34801561029157600080fd5b506102126102a0366004611fc7565b610654565b3480156102b157600080fd5b50610237600f5481565b3480156102c757600080fd5b50604051601281526020016101e9565b3480156102e357600080fd5b506102126102f2366004611f9d565b6106a9565b34801561030357600080fd5b506102376106ed565b34801561031857600080fd5b5061023760095481565b34801561032e57600080fd5b5061021261033d366004612003565b60156020526000908152604090205460ff1681565b34801561035e57600080fd5b5061023760085481565b34801561037457600080fd5b50610237610383366004612003565b6001600160a01b031660009081526013602052604090205490565b3480156103aa57600080fd5b506103b3610717565b005b3480156103c157600080fd5b50610237600e5481565b3480156103d757600080fd5b506103b36103e636600461201e565b610774565b3480156103f757600080fd5b506101dc610983565b34801561040c57600080fd5b5061021261041b366004611f9d565b610992565b34801561042c57600080fd5b5061021261043b366004611f9d565b610a2f565b34801561044c57600080fd5b50600754610460906001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b6103b3610a79565b34801561048c57600080fd5b50610237610b6b565b3480156104a157600080fd5b50600654610460906001600160a01b031681565b3480156104c157600080fd5b506102376104d0366004612037565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b34801561050757600080fd5b50610237610b95565b34801561051c57600080fd5b50610237610c02565b6060601180546105349061206a565b80601f01602080910402602001604051908101604052809291908181526020018280546105609061206a565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b60006105c4338484610c19565b5060015b92915050565b6000600c546105db610b95565b6105ed90670de0b6b3a76400006120ba565b6105f791906120e7565b905090565b60006107d0600c5461060e91906120e7565b30600090815260136020526040902054101561064e5730600090815260136020526040902054600c54610644906107d0906120e7565b6105f791906120fb565b50600090565b6001600160a01b0383166000908152601460209081526040808320338085529252822054610690908690839061068b9087906120fb565b610c19565b61069b858585610d3d565b5060019150505b9392505050565b3360008181526014602090815260408083206001600160a01b03871684529091528120549091906106e3908290869061068b90879061210e565b5060019392505050565b6000600f54611c206106ff919061210e565b42101561064e5742600f54611c20610644919061210e565b6001546001600160a01b031633146107625760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064015b60405180910390fd5b600180546001600160a01b0319169055565b6010805460ff19166001179055670de0b6b3a76400008110156107d95760405162461bcd60e51b815260206004820152601a60248201527f4d696e696d756d2072656465656d206973203120746f6b656e210000000000006044820152606401610759565b3360009081526013602052604090205481111561082f5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e7420546f6b656e732160601b6044820152606401610759565b60006108396105ce565b3360009081526013602052604081208054929350849290919061085d9084906120fb565b9250508190555081600c600082825461087691906120fb565b909155505060405182815260009033906000805160206122618339815191529060200160405180910390a36000670de0b6b3a76400006108b683856120ba565b6108c091906120e7565b9050806000036108fe5760405162461bcd60e51b8152602060048201526009602482015268105b5bdd5b9d13dd5d60ba1b6044820152606401610759565b60075460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af115801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190612121565b50506010805460ff191690555050565b6060601280546105349061206a565b3360008181526014602090815260408083206001600160a01b038716845290915281205490919083811015610a175760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610759565b610a248286868403610c19565b506001949350505050565b6000336001600160a01b038416148015610a515750670de0b6b3a76400008210155b15610a6457610a5f82610774565b6105c4565b610a6f338484610d3d565b5050600192915050565b6005546001600160a01b03163314610ac15760405162461bcd60e51b815260206004820152600b60248201526a139bdd08131a5c4810591960aa1b6044820152606401610759565b6000805460405163f305d71960e01b81526001600160a01b039091169063f305d719903490610b099030906a084595161401484a000000908790819084904290600401612143565b60606040518083038185885af1158015610b27573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b4c919061217e565b92505050600281610b5d91906120e7565b600b55504260085543600955565b6000600e54611c20610b7d919061210e565b42101561064e5742600e54611c20610644919061210e565b6007546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610bde573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f791906121ac565b6000610c0c610b95565b600c546105f791906120e7565b6001600160a01b038316610c7b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610759565b6001600160a01b038216610cdc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610759565b6001600160a01b0383811660008181526014602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006064821015610d795760405162461bcd60e51b81526020600482015260066024820152651b5a5b905b5d60d21b6044820152606401610759565b436009546001610d89919061210e565b10158015610da057506001600160a01b0383163014155b8015610dba57506002546001600160a01b03848116911614155b8015610dd457506004546001600160a01b03848116911614155b15610e01576001600160a01b0383166000908152601560205260409020805460ff19166001179055610e5d565b6001600160a01b03841660009081526015602052604090205460ff1615610e5d5760405162461bcd60e51b815260206004820152601060248201526f105d5d1bc8109b1858dadb1a5cdd195960821b6044820152606401610759565b60105460ff1680610e7657506001600160a01b03841630145b80610e8957506001600160a01b03831630145b80610ea157506004546001600160a01b038481169116145b80610eb957506004546001600160a01b038581169116145b15610ed057610ec98484846113d5565b90506106a2565b6002546001600160a01b03858116911614801590610ef1575060105460ff16155b8015610f1b57506107d0600c54610f0891906120e7565b3060009081526013602052604090205410155b15610f2857610f2861147d565b6001600160a01b03841660009081526013602052604081208054849290610f509084906120fb565b9091555060009050610f636014846120e7565b90506000610f7182856120fb565b6002549091506001600160a01b038781169116148015610f9f57506004546001600160a01b03868116911614155b8015610fac5750600d5484115b1561102057600654604080516001600160a01b039283168152918716602083015281018290527f02ddf90a6df7de960dee12f0af651593775600ad8dd4f5410bdde6c7deb242e09060600160405180910390a1600d819055600680546001600160a01b0319166001600160a01b0387161790555b60085461102f9061025861210e565b4210801561104657506001600160a01b0385163014155b801561106057506002546001600160a01b03868116911614155b1561112557600a546001600160a01b03861660009081526013602052604090205461108c90839061210e565b11156110da5760405162461bcd60e51b815260206004820152601e60248201527f4d617820546f6b656e73205065722057616c6c657420526561636865642100006044820152606401610759565b81600c60008282546110ec91906120fb565b90915550506040518281526000906001600160a01b038816906000805160206122618339815191529060200160405180910390a3611357565b600060646111348460286120ba565b61113e91906120e7565b6006549091506001600160a01b0316158015906111775750600d546006546001600160a01b031660009081526013602052604090205410155b156112a8576006546001600160a01b038088169116036111dc5780600c60008282546111a391906120fb565b90915550506040518181526000906001600160a01b038916906000805160206122618339815191529060200160405180910390a361123f565b6006546001600160a01b03166000908152601360205260408120805483929061120690849061210e565b90915550506006546040518281526001600160a01b03918216918916906000805160206122618339815191529060200160405180910390a35b61124981846120fb565b306000908152601360205260408120805490919061126890849061210e565b909155503090506001600160a01b03881660008051602061226183398151915261129284876120fb565b60405190815260200160405180910390a3611355565b60006112b482856120fb565b306000908152601360205260408120805492935083929091906112d890849061210e565b9250508190555081600c60008282546112f191906120fb565b909155505060405181815230906001600160a01b038a16906000805160206122618339815191529060200160405180910390a36040518281526000906001600160a01b038a16906000805160206122618339815191529060200160405180910390a3505b505b6001600160a01b0385166000908152601360205260408120805483929061137f90849061210e565b92505081905550846001600160a01b0316866001600160a01b0316600080516020612261833981519152836040516113b991815260200190565b60405180910390a36113c96117c6565b50600195945050505050565b6001600160a01b0383166000908152601360205260408120546113f99083906120fb565b6001600160a01b03808616600090815260136020526040808220939093559085168152205461142990839061210e565b6001600160a01b0380851660008181526013602052604090819020939093559151908616906000805160206122618339815191529061146b9086815260200190565b60405180910390a35060019392505050565b6010805460ff19166001179055306000908152601360205260408120546114a6906002906120e7565b30600090815260136020526040812054919250906114c59083906120fb565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106114ff576114ff6121c5565b6001600160a01b039283166020918202929092010152600354825191169082906001908110611530576115306121c5565b6001600160a01b0392831660209182029290920101526000805460405163791ac94760e01b815292169163791ac94791611575918691908690309042906004016121db565b600060405180830381600087803b15801561158f57600080fd5b505af11580156115a3573d6000803e3d6000fd5b5050600080549092506001600160a01b0316905063f305d7196115c76002476120e7565b308760008030426040518863ffffffff1660e01b81526004016115ef96959493929190612143565b60606040518083038185885af115801561160d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611632919061217e565b9250505060058161164391906120e7565b600b6000828254611654919061210e565b909155505060035460408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0914791600480830192600092919082900301818588803b1580156116a057600080fd5b505af11580156116b4573d6000803e3d6000fd5b50506002546001600160a01b0316600090815260136020526040812080548895509093509091506116e69084906120fb565b909155505030600090815260136020526040812060019055600c80548592906117109084906120fb565b90915550506002546040805160016209351760e01b0319815290516001600160a01b039092169163fff6cae99160048082019260009290919082900301818387803b15801561175e57600080fd5b505af1158015611772573d6000803e3d6000fd5b5050600254604051868152600093506001600160a01b0390911691506000805160206122618339815191529060200160405180910390a3600f546117b89061465061210e565b4210610973576109736119a7565b6006546001600160a01b0316158015906117ee5750600e546117ea90610e1061210e565b4210155b156119a5576006546001600160a01b0316600090815260136020526040902054600d54811061197d576000600a6118266001436120fb565b600654604080519240602084015243804091840191909152606083015242608083015260a082018590526001600160a01b031660c082015260e0016040516020818303038152906040528051906020012060001c611884919061224c565b61188f90600161210e565b90506000606482600d546118a391906120ba565b6118ad91906120e7565b6006546001600160a01b03166000908152601360205260408120805492935083929091906118dc90849061210e565b9250508190555080600c60008282546118f5919061210e565b90915550506006546040518281526001600160a01b03909116906000906000805160206122618339815191529060200160405180910390a3600654604080516001600160a01b0390921682526020820184905281018290527f884b32f30d608ad4492f40b3e0e3012ba3a0f17d7f8891fcfcd8f8fef03598db9060600160405180910390a150505b600680546001600160a01b0319169055600d5461199c906005906120e7565b600d555042600e555b565b600b546002546040516370a0823160e01b815230600482015260009260329290916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e91906121ac565b611a2891906120fb565b611a3291906120e7565b42600f556003546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa891906121ac565b306000908152601360205260409081902054600254915163a9059cbb60e01b81526001600160a01b039092166004830181905260248301869052929350919063a9059cbb906044016020604051808303816000875af1158015611b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b339190612121565b5060025460405163226bf2d160e21b81523060048201526001600160a01b03909116906389afcb4490602401600060405180830381600087803b158015611b7957600080fd5b505af1158015611b8d573d6000803e3d6000fd5b50506003546040516370a0823160e01b8152306004820152600093508592506001600160a01b03909116906370a0823190602401602060405180830381865afa158015611bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0291906121ac565b611c0c91906120fb565b3060009081526013602052604081205491925090611c2b9084906120fb565b30600090815260136020526040812080549293508392909190611c4f9084906120fb565b9091555050604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b031691839150600090611c9557611c956121c5565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611cc957611cc96121c5565b6001600160a01b03928316602091820292909201015260005416635c11d795611cf36002866120e7565b6000846001426040518663ffffffff1660e01b8152600401611d199594939291906121db565b600060405180830381600087803b158015611d3357600080fd5b505af1158015611d47573d6000803e3d6000fd5b50506001600090815260136020527f4155c2f711f2cdd34f8262ab8fb9b7020a700fe7b6948222152f7670d1fdf34d54909250611d869150849061210e565b905080600c6000828254611d9a91906120fb565b90915550506001600081815260136020527f4155c2f711f2cdd34f8262ab8fb9b7020a700fe7b6948222152f7670d1fdf34d91909155604051309060008051602061226183398151915290611df29085815260200190565b60405180910390a360035482516001600160a01b03909116908390600090611e1c57611e1c6121c5565b6001600160a01b039283166020918202929092010152600754835191169083906001908110611e4d57611e4d6121c5565b6001600160a01b0392831660209182029290920101526000546003546040516370a0823160e01b815230600482015291831692635c11d795929116906370a0823190602401602060405180830381865afa158015611eaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed391906121ac565b60008530426040518663ffffffff1660e01b8152600401611ef89594939291906121db565b600060405180830381600087803b158015611f1257600080fd5b505af1158015611f26573d6000803e3d6000fd5b5050505050505050505050565b600060208083528351808285015260005b81811015611f6057858101830151858201604001528201611f44565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611f9857600080fd5b919050565b60008060408385031215611fb057600080fd5b611fb983611f81565b946020939093013593505050565b600080600060608486031215611fdc57600080fd5b611fe584611f81565b9250611ff360208501611f81565b9150604084013590509250925092565b60006020828403121561201557600080fd5b6106a282611f81565b60006020828403121561203057600080fd5b5035919050565b6000806040838503121561204a57600080fd5b61205383611f81565b915061206160208401611f81565b90509250929050565b600181811c9082168061207e57607f821691505b60208210810361209e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176105c8576105c86120a4565b634e487b7160e01b600052601260045260246000fd5b6000826120f6576120f66120d1565b500490565b818103818111156105c8576105c86120a4565b808201808211156105c8576105c86120a4565b60006020828403121561213357600080fd5b815180151581146106a257600080fd5b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561219357600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156121be57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561222b5784516001600160a01b031683529383019391830191600101612206565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261225b5761225b6120d1565b50069056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122008cc27f4af03c05fed9043911ed8b271d8aae487d354925c8c1c627faf2b587664736f6c63430008110033

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

000000000000000000000000586f7268e802616867dfcc9ba0f60f17e23a87e2

-----Decoded View---------------
Arg [0] : owner (address): 0x586F7268E802616867DfcC9BA0f60F17e23a87E2

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000586f7268e802616867dfcc9ba0f60f17e23a87e2


Deployed Bytecode Sourcemap

2796:17035:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5765:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6877:169;;;;;;;;;;-1:-1:-1;6877:169:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;6877:169:0;1004:187:1;18950:118:0;;;;;;;;;;;;;:::i;:::-;;;1342:25:1;;;1330:2;1315:18;18950:118:0;1196:177:1;3288:33:0;;;;;;;;;;;;;;;;6086:108;;;;;;;;;;-1:-1:-1;6174:12:0;;6086:108;;19409:193;;;;;;;;;;;;;:::i;7054:317::-;;;;;;;;;;-1:-1:-1;7054:317:0;;;;;:::i;:::-;;:::i;3365:28::-;;;;;;;;;;;;;;;;5985:93;;;;;;;;;;-1:-1:-1;5985:93:0;;6068:2;1853:36:1;;1841:2;1826:18;5985:93:0;1711:184:1;7379:240:0;;;;;;;;;;-1:-1:-1;7379:240:0;;;;;:::i;:::-;;:::i;19610:174::-;;;;;;;;;;;;;:::i;3146:25::-;;;;;;;;;;;;;;;;3629:47;;;;;;;;;;-1:-1:-1;3629:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3114:25;;;;;;;;;;;;;;;;6204:127;;;;;;;;;;-1:-1:-1;6204:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6305:18:0;6278:7;6305:18;;;:9;:18;;;;;;;6204:127;8074:122;;;;;;;;;;;;;:::i;:::-;;3328:30;;;;;;;;;;;;;;;;16699:688;;;;;;;;;;-1:-1:-1;16699:688:0;;;;;:::i;:::-;;:::i;5873:104::-;;;;;;;;;;;;;:::i;7627:438::-;;;;;;;;;;-1:-1:-1;7627:438:0;;;;;:::i;:::-;;:::i;6339:365::-;;;;;;;;;;-1:-1:-1;6339:365:0;;;;;:::i;:::-;;:::i;3085:20::-;;;;;;;;;;-1:-1:-1;3085:20:0;;;;-1:-1:-1;;;;;3085:20:0;;;;;;-1:-1:-1;;;;;2440:32:1;;;2422:51;;2410:2;2395:18;3085:20:0;2276:203:1;5196:443:0;;;:::i;19223:178::-;;;;;;;;;;;;;:::i;3051:27::-;;;;;;;;;;-1:-1:-1;3051:27:0;;;;-1:-1:-1;;;;;3051:27:0;;;6718:151;;;;;;;;;;-1:-1:-1;6718:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;6834:18:0;;;6807:7;6834:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6718:151;18819:123;;;;;;;;;;;;;:::i;19076:121::-;;;;;;;;;;;;;:::i;5765:100::-;5819:13;5852:5;5845:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5765:100;:::o;6877:169::-;6960:4;6977:39;1156:10;7000:7;7009:6;6977:8;:39::i;:::-;-1:-1:-1;7034:4:0;6877:169;;;;;:::o;18950:118::-;18992:7;19048:12;;19019:19;:17;:19::i;:::-;:26;;19041:4;19019:26;:::i;:::-;:41;;;;:::i;:::-;19012:48;;18950:118;:::o;19409:193::-;19464:11;19537:4;19522:12;;:19;;;;:::i;:::-;19512:4;19494:24;;;;:9;:24;;;;;;:47;;:100;;19588:4;19570:24;;;;:9;:24;;;;;;19548:12;;:19;;19563:4;;19548:19;:::i;:::-;:46;;;;:::i;19494:100::-;-1:-1:-1;19544:1:0;;19409:193::o;7054:317::-;-1:-1:-1;;;;;7267:17:0;;7185:4;7267:17;;;:11;:17;;;;;;;;1156:10;7267:26;;;;;;;;7243:60;;7267:17;;1156:10;;7267:35;;7296:6;;7267:35;:::i;:::-;7243:8;:60::i;:::-;7314:27;7324:4;7330:2;7334:6;7314:9;:27::i;:::-;;7359:4;7352:11;;;7054:317;;;;;;:::o;7379:240::-;1156:10;7467:4;7548:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;7548:27:0;;;;;;;;;;7467:4;;1156:10;7523:66;;1156:10;;7548:27;;:40;;7578:10;;7548:40;:::i;7523:66::-;-1:-1:-1;7607:4:0;;7379:240;-1:-1:-1;;;7379:240:0:o;19610:174::-;19660:7;19705:13;;19721:7;19705:23;;;;:::i;:::-;19686:15;:42;;:90;;19761:15;19735:13;;19751:7;19735:23;;;;:::i;8074:122::-;8145:3;;-1:-1:-1;;;;;8145:3:0;8131:10;:17;8123:38;;;;-1:-1:-1;;;8123:38:0;;4161:2:1;8123:38:0;;;4143:21:1;4200:1;4180:18;;;4173:29;-1:-1:-1;;;4218:18:1;;;4211:39;4267:18;;8123:38:0;;;;;;;;;8172:3;:16;;-1:-1:-1;;;;;;8172:16:0;;;8074:122::o;16699:688::-;5679:16;:23;;-1:-1:-1;;5679:23:0;5698:4;5679:23;;;16838:4:::1;16831:3;:11;;16823:50;;;::::0;-1:-1:-1;;;16823:50:0;;4846:2:1;16823:50:0::1;::::0;::::1;4828:21:1::0;4885:2;4865:18;;;4858:30;4924:28;4904:18;;;4897:56;4970:18;;16823:50:0::1;4644:350:1::0;16823:50:0::1;16902:10;16892:21;::::0;;;:9:::1;:21;::::0;;;;;:28;-1:-1:-1;16892:28:0::1;16884:61;;;::::0;-1:-1:-1;;;16884:61:0;;5201:2:1;16884:61:0::1;::::0;::::1;5183:21:1::0;5240:2;5220:18;;;5213:30;-1:-1:-1;;;5259:18:1;;;5252:50;5319:18;;16884:61:0::1;4999:344:1::0;16884:61:0::1;17005:12;17020;:10;:12::i;:::-;17094:10;17084:21;::::0;;;:9:::1;:21;::::0;;;;:28;;17005:27;;-1:-1:-1;17109:3:0;;17084:21;;;:28:::1;::::0;17109:3;;17084:28:::1;:::i;:::-;;;;;;;;17139:3;17123:12;;:19;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;17158:37:0::1;::::0;1342:25:1;;;17187:1:0::1;::::0;17167:10:::1;::::0;-1:-1:-1;;;;;;;;;;;17158:37:0;1330:2:1;1315:18;17158:37:0::1;;;;;;;17237:18;17271:4;17258:10;17264:4:::0;17258:3;:10:::1;:::i;:::-;:17;;;;:::i;:::-;17237:38;;17294:10;17308:1;17294:15:::0;17286:36:::1;;;::::0;-1:-1:-1;;;17286:36:0;;5550:2:1;17286:36:0::1;::::0;::::1;5532:21:1::0;5589:1;5569:18;;;5562:29;-1:-1:-1;;;5607:18:1;;;5600:39;5656:18;;17286:36:0::1;5348:332:1::0;17286:36:0::1;17340:5;::::0;17333:46:::1;::::0;-1:-1:-1;;;17333:46:0;;17356:10:::1;17333:46;::::0;::::1;5859:51:1::0;5926:18;;;5919:34;;;-1:-1:-1;;;;;17340:5:0;;::::1;::::0;17333:22:::1;::::0;5832:18:1;;17333:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;5725:16:0;:24;;-1:-1:-1;;5725:24:0;;;-1:-1:-1;;16699:688:0:o;5873:104::-;5929:13;5962:7;5955:14;;;;;:::i;7627:438::-;1156:10;7720:4;7803:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;7803:27:0;;;;;;;;;;7720:4;;1156:10;7849:35;;;;7841:85;;;;-1:-1:-1;;;7841:85:0;;6448:2:1;7841:85:0;;;6430:21:1;6487:2;6467:18;;;6460:30;6526:34;6506:18;;;6499:62;-1:-1:-1;;;6577:18:1;;;6570:35;6622:19;;7841:85:0;6246:401:1;7841:85:0;7962:60;7971:5;7978:7;8006:15;7987:16;:34;7962:8;:60::i;:::-;-1:-1:-1;8053:4:0;;7627:438;-1:-1:-1;;;;7627:438:0:o;6339:365::-;6418:4;6523:10;-1:-1:-1;;;;;6523:16:0;;;:34;;;;;6553:4;6543:6;:14;;6523:34;6520:155;;;6574:20;6587:6;6574:12;:20::i;:::-;6520:155;;;6627:34;1156:10;6650:2;6654:6;6627:9;:34::i;:::-;;-1:-1:-1;6692:4:0;6339:365;;;;:::o;5196:443::-;5277:6;;-1:-1:-1;;;;;5277:6:0;5263:10;:20;5255:43;;;;-1:-1:-1;;;5255:43:0;;6854:2:1;5255:43:0;;;6836:21:1;6893:2;6873:18;;;6866:30;-1:-1:-1;;;6912:18:1;;;6905:41;6963:18;;5255:43:0;6652:335:1;5255:43:0;5312:13;5327:6;;:197;;-1:-1:-1;;;5327:197:0;;-1:-1:-1;;;;;5327:6:0;;;;:22;;5357:9;;5327:197;;5390:4;;5410:13;;5312;;;;5390:4;;5498:15;;5327:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5309:215;;;;5555:1;5549:5;:7;;;;:::i;:::-;5537:9;:19;-1:-1:-1;5580:15:0;5567:10;:28;5619:12;5606:10;:25;5196:443::o;19223:178::-;19273:7;19318:15;;19336:7;19318:25;;;;:::i;:::-;19299:15;:44;;:94;;19378:15;19350;;19368:7;19350:25;;;;:::i;18819:123::-;18903:5;;18896:38;;-1:-1:-1;;;18896:38:0;;18928:4;18896:38;;;2422:51:1;18869:7:0;;-1:-1:-1;;;;;18903:5:0;;18896:23;;2395:18:1;;18896:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19076:121::-;19129:7;19170:19;:17;:19::i;:::-;19155:12;;:34;;;;:::i;18467:344::-;-1:-1:-1;;;;;18567:19:0;;18559:68;;;;-1:-1:-1;;;18559:68:0;;8339:2:1;18559:68:0;;;8321:21:1;8378:2;8358:18;;;8351:30;8417:34;8397:18;;;8390:62;-1:-1:-1;;;8468:18:1;;;8461:34;8512:19;;18559:68:0;8137:400:1;18559:68:0;-1:-1:-1;;;;;18646:21:0;;18638:68;;;;-1:-1:-1;;;18638:68:0;;8744:2:1;18638:68:0;;;8726:21:1;8783:2;8763:18;;;8756:30;8822:34;8802:18;;;8795:62;-1:-1:-1;;;8873:18:1;;;8866:32;8915:19;;18638:68:0;8542:398:1;18638:68:0;-1:-1:-1;;;;;18719:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18771:32;;1342:25:1;;;18771:32:0;;1315:18:1;18771:32:0;;;;;;;18467:344;;;:::o;8204:3349::-;8292:4;8325:3;8317:6;:11;;8309:30;;;;-1:-1:-1;;;8309:30:0;;9147:2:1;8309:30:0;;;9129:21:1;9186:1;9166:18;;;9159:29;-1:-1:-1;;;9204:18:1;;;9197:36;9250:18;;8309:30:0;8945:329:1;8309:30:0;8468:12;8454:10;;8465:1;8454:12;;;;:::i;:::-;:26;;:56;;;;-1:-1:-1;;;;;;8484:26:0;;8505:4;8484:26;;8454:56;:77;;;;-1:-1:-1;8527:4:0;;-1:-1:-1;;;;;8514:17:0;;;8527:4;;8514:17;;8454:77;:107;;;;-1:-1:-1;8548:13:0;;-1:-1:-1;;;;;8535:26:0;;;8548:13;;8535:26;;8454:107;8451:259;;;-1:-1:-1;;;;;8578:26:0;;;;;;:15;:26;;;;;:33;;-1:-1:-1;;8578:33:0;8607:4;8578:33;;;8451:259;;;-1:-1:-1;;;;;8647:23:0;;;;;;:15;:23;;;;;;;;8644:54;;;8672:26;;-1:-1:-1;;;8672:26:0;;9481:2:1;8672:26:0;;;9463:21:1;9520:2;9500:18;;;9493:30;-1:-1:-1;;;9539:18:1;;;9532:46;9595:18;;8672:26:0;9279:340:1;8644:54:0;8791:16;;;;;:43;;-1:-1:-1;;;;;;8811:23:0;;8829:4;8811:23;8791:43;:73;;;-1:-1:-1;;;;;;8838:26:0;;8859:4;8838:26;8791:73;:103;;;-1:-1:-1;8881:13:0;;-1:-1:-1;;;;;8868:26:0;;;8881:13;;8868:26;8791:103;:130;;;-1:-1:-1;8908:13:0;;-1:-1:-1;;;;;8898:23:0;;;8908:13;;8898:23;8791:130;8788:187;;;8931:41;8946:6;8954:9;8965:6;8931:14;:41::i;:::-;8924:48;;;;8788:187;9067:4;;-1:-1:-1;;;;;9057:14:0;;;9067:4;;9057:14;;;;:35;;-1:-1:-1;9076:16:0;;;;9075:17;9057:35;:86;;;;;9139:4;9124:12;;:19;;;;:::i;:::-;9114:4;9096:24;;;;:9;:24;;;;;;:47;;9057:86;9054:105;;;9146:10;:8;:10::i;:::-;-1:-1:-1;;;;;9179:17:0;;;;;;:9;:17;;;;;:27;;9200:6;;9179:17;:27;;9200:6;;9179:27;:::i;:::-;;;;-1:-1:-1;9259:17:0;;-1:-1:-1;9279:11:0;9288:2;9279:6;:11;:::i;:::-;9259:31;-1:-1:-1;9301:19:0;9323:18;9259:31;9323:6;:18;:::i;:::-;9436:4;;9301:40;;-1:-1:-1;;;;;;9426:14:0;;;9436:4;;9426:14;:44;;;;-1:-1:-1;9457:13:0;;-1:-1:-1;;;;;9444:26:0;;;9457:13;;9444:26;;9426:44;:75;;;;;9483:18;;9474:6;:27;9426:75;9423:253;;;9539:12;;9523:53;;;-1:-1:-1;;;;;9539:12:0;;;9864:34:1;;9934:15;;;9929:2;9914:18;;9907:43;9966:18;;9959:34;;;9523:53:0;;9814:2:1;9799:18;9523:53:0;;;;;;;9593:18;:32;;;9640:12;:24;;-1:-1:-1;;;;;;9640:24:0;-1:-1:-1;;;;;9640:24:0;;;;;9423:253;9709:10;;:23;;9722:10;9709:23;:::i;:::-;9691:15;:41;:71;;;;-1:-1:-1;;;;;;9736:26:0;;9757:4;9736:26;;9691:71;:92;;;;-1:-1:-1;9779:4:0;;-1:-1:-1;;;;;9766:17:0;;;9779:4;;9766:17;;9691:92;9688:1642;;;9846:16;;-1:-1:-1;;;;;9808:20:0;;;;;;:9;:20;;;;;;:34;;9831:11;;9808:34;:::i;:::-;:54;;9800:97;;;;-1:-1:-1;;;9800:97:0;;10206:2:1;9800:97:0;;;10188:21:1;10245:2;10225:18;;;10218:30;10284:32;10264:18;;;10257:60;10334:18;;9800:97:0;10004:354:1;9800:97:0;9928:9;9912:12;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;9957:39:0;;1342:25:1;;;9982:1:0;;-1:-1:-1;;;;;9957:39:0;;;-1:-1:-1;;;;;;;;;;;9957:39:0;1330:2:1;1315:18;9957:39:0;;;;;;;9688:1642;;;10029:22;10071:3;10054:14;:9;10066:2;10054:14;:::i;:::-;:20;;;;:::i;:::-;10225:12;;10029:45;;-1:-1:-1;;;;;;10225:12:0;:26;;;;:73;;-1:-1:-1;10280:18:0;;10265:12;;-1:-1:-1;;;;;10265:12:0;10255:23;;;;:9;:23;;;;;;:43;;10225:73;10222:1091;;;10322:12;;-1:-1:-1;;;;;10322:23:0;;;:12;;:23;10319:336;;10385:14;10369:12;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;10427:44:0;;1342:25:1;;;10452:1:0;;-1:-1:-1;;;;;10427:44:0;;;-1:-1:-1;;;;;;;;;;;10427:44:0;1330:2:1;1315:18;10427:44:0;;;;;;;10319:336;;;10530:12;;-1:-1:-1;;;;;10530:12:0;10520:23;;;;:9;:23;;;;;:41;;10547:14;;10520:23;:41;;10547:14;;10520:41;:::i;:::-;;;;-1:-1:-1;;10606:12:0;;10589:46;;1342:25:1;;;-1:-1:-1;;;;;10606:12:0;;;;10589:46;;;-1:-1:-1;;;;;;;;;;;10589:46:0;1330:2:1;1315:18;10589:46:0;;;;;;;10319:336;10701:26;10713:14;10701:9;:26;:::i;:::-;10691:4;10673:24;;;;:9;:24;;;;;:54;;:24;;;:54;;;;;:::i;:::-;;;;-1:-1:-1;10776:4:0;;-1:-1:-1;;;;;;10751:59:0;;-1:-1:-1;;;;;;;;;;;10783:26:0;10795:14;10783:9;:26;:::i;:::-;10751:59;;1342:25:1;;;1330:2;1315:18;10751:59:0;;;;;;;10222:1091;;;10999:15;11017:26;11029:14;11017:9;:26;:::i;:::-;11080:4;11062:24;;;;:9;:24;;;;;:35;;10999:44;;-1:-1:-1;10999:44:0;;11062:24;;;:35;;10999:44;;11062:35;:::i;:::-;;;;;;;;11132:14;11116:12;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;11172:40:0;;1342:25:1;;;11197:4:0;;-1:-1:-1;;;;;11172:40:0;;;-1:-1:-1;;;;;;;;;;;11172:40:0;1330:2:1;1315:18;11172:40:0;;;;;;;11236:44;;1342:25:1;;;11261:1:0;;-1:-1:-1;;;;;11236:44:0;;;-1:-1:-1;;;;;;;;;;;11236:44:0;1330:2:1;1315:18;11236:44:0;;;;;;;10832:481;10222:1091;10014:1316;9688:1642;-1:-1:-1;;;;;11342:20:0;;;;;;:9;:20;;;;;:35;;11366:11;;11342:20;:35;;11366:11;;11342:35;:::i;:::-;;;;;;;;11410:9;-1:-1:-1;;;;;11393:40:0;11402:6;-1:-1:-1;;;;;11393:40:0;-1:-1:-1;;;;;;;;;;;11421:11:0;11393:40;;;;1342:25:1;;1330:2;1315:18;;1196:177;11393:40:0;;;;;;;;11495:20;:18;:20::i;:::-;-1:-1:-1;11541:4:0;;8204:3349;-1:-1:-1;;;;;8204:3349:0:o;17395:300::-;-1:-1:-1;;;;;17525:17:0;;17488:4;17525:17;;;:9;:17;;;;;;:26;;17545:6;;17525:26;:::i;:::-;-1:-1:-1;;;;;17505:17:0;;;;;;;:9;:17;;;;;;:46;;;;17585:20;;;;;;;:29;;17608:6;;17585:29;:::i;:::-;-1:-1:-1;;;;;17562:20:0;;;;;;;:9;:20;;;;;;;:52;;;;17630:35;;;;;;-1:-1:-1;;;;;;;;;;;17630:35:0;;;17658:6;1342:25:1;;1330:2;1315:18;;1196:177;17630:35:0;;;;;;;;-1:-1:-1;17683:4:0;17395:300;;;;;:::o;13170:1523::-;5679:16;:23;;-1:-1:-1;;5679:23:0;5698:4;5679:23;;;13340:4:::1;5679:16:::0;13322:24;;;:9:::1;:24;::::0;;;;;:28:::1;::::0;13349:1:::1;::::0;13322:28:::1;:::i;:::-;13397:4;13361:15;13379:24:::0;;;:9:::1;:24;::::0;;;;;13306:44;;-1:-1:-1;13361:15:0;13379:32:::1;::::0;13306:44;;13379:32:::1;:::i;:::-;13479:16;::::0;;13493:1:::1;13479:16:::0;;;;;::::1;::::0;;13361:50;;-1:-1:-1;13455:21:0::1;::::0;13479:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13479:16:0::1;13455:40;;13524:4;13506;13511:1;13506:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13506:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13550:4:::1;::::0;13540:7;;13550:4;::::1;::::0;13540;;13550;;13540:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;13540:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;13567:6:::1;::::0;;:183:::1;::::0;-1:-1:-1;;;13567:183:0;;:6;::::1;::::0;:57:::1;::::0;:183:::1;::::0;13639:7;;13567:6;13677:4;;13704::::1;::::0;13724:15:::1;::::0;13567:183:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13833:13:0::1;13850:6:::0;;13833:13;;-1:-1:-1;;;;;;13850:6:0::1;::::0;-1:-1:-1;13850:22:0::1;13880:23;13902:1;13880:21;:23;:::i;:::-;13927:4;13947:5;13967:1;13983::::0;14007:4:::1;14027:15;13850:203;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13830:223;;;;14100:1;14094:5;:7;;;;:::i;:::-;14081:9;;:20;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;14149:4:0::1;::::0;14143:51:::1;::::0;;-1:-1:-1;;;14143:51:0;;;;-1:-1:-1;;;;;14149:4:0;;::::1;::::0;14143:19:::1;::::0;14170:21:::1;::::0;14143:51:::1;::::0;;::::1;::::0;14149:4:::1;::::0;14143:51;;;;;;;14170:21;14149:4;14143:51;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14259:4:0::1;::::0;-1:-1:-1;;;;;14259:4:0::1;14249:15;::::0;;;:9:::1;:15;::::0;;;;:26;;14268:7;;-1:-1:-1;14249:15:0;;-1:-1:-1;14249:15:0;;-1:-1:-1;14249:26:0::1;::::0;14268:7;;14249:26:::1;:::i;:::-;::::0;;;-1:-1:-1;;14304:4:0::1;14286:24;::::0;;;:9:::1;:24;::::0;;;;14313:5:::1;14286:32:::0;;14329:12:::1;:23:::0;;14345:7;;14286:24;14329:23:::1;::::0;14345:7;;14329:23:::1;:::i;:::-;::::0;;;-1:-1:-1;;14433:4:0::1;::::0;14427:18:::1;::::0;;-1:-1:-1;;;;;;14427:18:0;;;;-1:-1:-1;;;;;14433:4:0;;::::1;::::0;14427:16:::1;::::0;:18:::1;::::0;;::::1;::::0;14433:4:::1;::::0;14427:18;;;;;;;;14433:4;;14427:18;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14470:4:0::1;::::0;14461:35:::1;::::0;1342:25:1;;;14484:1:0::1;::::0;-1:-1:-1;;;;;;14470:4:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;;14461:35:0;1330:2:1;1315:18;14461:35:0::1;;;;;;;14616:13;::::0;:23:::1;::::0;14632:7:::1;14616:23;:::i;:::-;14597:15;:42;14594:92;;14656:18;:16;:18::i;11671:1459::-:0;11724:12;;-1:-1:-1;;;;;11724:12:0;:26;;;;:74;;-1:-1:-1;11773:15:0;;:25;;11791:7;11773:25;:::i;:::-;11754:15;:44;;11724:74;11721:1395;;;11848:12;;-1:-1:-1;;;;;11848:12:0;11817:18;11838:23;;;:9;:23;;;;;;11964:18;;11950:32;;11947:884;;12076:21;12469:2;12219:16;12234:1;12219:12;:16;:::i;:::-;12451:12;;12168:296;;;12209:27;;12168:296;;;12511:25:1;12277:12:0;12267:23;;12552:18:1;;;12545:34;;;;12595:18;;;12588:34;12364:15:0;12638:18:1;;;12631:34;12681:19;;;12674:35;;;-1:-1:-1;;;;;12451:12:0;12725:19:1;;;12718:61;12483:19;;12168:296:0;;;;;;;;;;;;12131:334;;;;;;12101:365;;:370;;;;:::i;:::-;12100:376;;12475:1;12100:376;:::i;:::-;12076:400;;12497:19;12556:3;12540:13;12519:18;;:34;;;;:::i;:::-;:40;;;;:::i;:::-;12588:12;;-1:-1:-1;;;;;12588:12:0;12578:23;;;;:9;:23;;;;;:38;;12497:62;;-1:-1:-1;12497:62:0;;12578:23;;;:38;;12497:62;;12578:38;:::i;:::-;;;;;;;;12651:11;12635:12;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;12707:12:0;;12686:47;;1342:25:1;;;-1:-1:-1;;;;;12707:12:0;;;;;;-1:-1:-1;;;;;;;;;;;12686:47:0;1330:2:1;1315:18;12686:47:0;;;;;;;12776:12;;12757:58;;;-1:-1:-1;;;;;12776:12:0;;;13109:51:1;;13191:2;13176:18;;13169:34;;;13219:18;;13212:34;;;12757:58:0;;13097:2:1;13082:18;12757:58:0;;;;;;;11983:848;;11947:884;12971:12;:25;;-1:-1:-1;;;;;;12971:25:0;;;13032:18;;:22;;13053:1;;13032:22;:::i;:::-;13011:18;:43;-1:-1:-1;13087:15:0;13069;:33;11721:1395;11671:1459::o;14701:1986::-;14894:9;;14861:4;;14854:37;;-1:-1:-1;;;14854:37:0;;14885:4;14854:37;;;2422:51:1;14833:17:0;;14907:2;;14894:9;;-1:-1:-1;;;;;14861:4:0;;;;14854:22;;2395:18:1;;14854:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;;;:::i;:::-;14853:56;;;;:::i;:::-;14970:15;14954:13;:31;15026:4;;15019:37;;-1:-1:-1;;;15019:37:0;;15050:4;15019:37;;;2422:51:1;14833:76:0;;-1:-1:-1;14998:18:0;;-1:-1:-1;;;;;15026:4:0;;;;15019:22;;2395:18:1;;15019:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15108:4;15067:20;15090:24;;;:9;:24;;;;;;;;15156:4;;15149:38;;-1:-1:-1;;;15149:38:0;;-1:-1:-1;;;;;15156:4:0;;;15149:38;;;5859:51:1;;;5926:18;;;5919:34;;;14998:58:0;;-1:-1:-1;15090:24:0;15156:4;15149:21;;5832:18:1;;15149:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;15204:4:0;;15198:31;;-1:-1:-1;;;15198:31:0;;15223:4;15198:31;;;2422:51:1;-1:-1:-1;;;;;15204:4:0;;;;15198:16;;2395:18:1;;15198:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15327:4:0;;15320:37;;-1:-1:-1;;;15320:37:0;;15351:4;15320:37;;;2422:51:1;15302:15:0;;-1:-1:-1;15360:10:0;;-1:-1:-1;;;;;;15327:4:0;;;;15320:22;;2395:18:1;;15320:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;;;;:::i;:::-;15419:4;15381:17;15401:24;;;:9;:24;;;;;;15302:68;;-1:-1:-1;15381:17:0;15401:39;;15428:12;;15401:39;:::i;:::-;15515:4;15497:24;;;;:9;:24;;;;;:37;;15381:59;;-1:-1:-1;15381:59:0;;15497:24;;;:37;;15381:59;;15497:37;:::i;:::-;;;;-1:-1:-1;;15660:16:0;;;15674:1;15660:16;;;;;;;;15636:21;;15660:16;;;;;;;;-1:-1:-1;;15697:4:0;;15687:7;;;;-1:-1:-1;;;;;;15697:4:0;;15687:7;;-1:-1:-1;15697:4:0;;15687:7;;;;:::i;:::-;;;;;;:14;-1:-1:-1;;;;;15687:14:0;;;-1:-1:-1;;;;;15687:14:0;;;;;15730:4;15712;15717:1;15712:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15712:23:0;;;:7;;;;;;;;;:23;15748:6;;;:60;15823:9;15831:1;15823:7;:9;:::i;:::-;15876:1;15892:4;15911:42;15984:15;15748:262;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16053:42:0;16023:17;16043:53;;;:9;:53;;;;16023:17;;-1:-1:-1;16043:65:0;;-1:-1:-1;16099:9:0;;16043:65;:::i;:::-;16023:85;;16204:9;16188:12;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;16327:5:0;16271:53;;;;:9;:53;;;:61;;;;:53;16348:46;16365:4;;-1:-1:-1;;;;;;;;;;;16348:46:0;;;16384:9;1342:25:1;;1330:2;1315:18;;1196:177;16348:46:0;;;;;;;;16422:4;;16412:7;;-1:-1:-1;;;;;16422:4:0;;;;16412;;16422;;16412:7;;;;:::i;:::-;-1:-1:-1;;;;;16412:14:0;;;:7;;;;;;;;;:14;16447:5;;16437:7;;16447:5;;;16437:4;;16447:5;;16437:7;;;;;;:::i;:::-;-1:-1:-1;;;;;16437:15:0;;;:7;;;;;;;;;:15;16463:6;;16545:4;;16538:37;;-1:-1:-1;;;16538:37:0;;16569:4;16538:37;;;2422:51:1;16463:6:0;;;;:60;;16545:4;;;16538:22;;2395:18:1;;16538:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16590:1;16606:4;16633;16653:15;16463:216;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14738:1949;;;;;;;14701:1986::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;2091:180::-;2150:6;2203:2;2191:9;2182:7;2178:23;2174:32;2171:52;;;2219:1;2216;2209:12;2171:52;-1:-1:-1;2242:23:1;;2091:180;-1:-1:-1;2091:180:1:o;2484:260::-;2552:6;2560;2613:2;2601:9;2592:7;2588:23;2584:32;2581:52;;;2629:1;2626;2619:12;2581:52;2652:29;2671:9;2652:29;:::i;:::-;2642:39;;2700:38;2734:2;2723:9;2719:18;2700:38;:::i;:::-;2690:48;;2484:260;;;;;:::o;2749:380::-;2828:1;2824:12;;;;2871;;;2892:61;;2946:4;2938:6;2934:17;2924:27;;2892:61;2999:2;2991:6;2988:14;2968:18;2965:38;2962:161;;3045:10;3040:3;3036:20;3033:1;3026:31;3080:4;3077:1;3070:15;3108:4;3105:1;3098:15;2962:161;;2749:380;;;:::o;3134:127::-;3195:10;3190:3;3186:20;3183:1;3176:31;3226:4;3223:1;3216:15;3250:4;3247:1;3240:15;3266:168;3339:9;;;3370;;3387:15;;;3381:22;;3367:37;3357:71;;3408:18;;:::i;3439:127::-;3500:10;3495:3;3491:20;3488:1;3481:31;3531:4;3528:1;3521:15;3555:4;3552:1;3545:15;3571:120;3611:1;3637;3627:35;;3642:18;;:::i;:::-;-1:-1:-1;3676:9:1;;3571:120::o;3696:128::-;3763:9;;;3784:11;;;3781:37;;;3798:18;;:::i;3829:125::-;3894:9;;;3915:10;;;3912:36;;;3928:18;;:::i;5964:277::-;6031:6;6084:2;6072:9;6063:7;6059:23;6055:32;6052:52;;;6100:1;6097;6090:12;6052:52;6132:9;6126:16;6185:5;6178:13;6171:21;6164:5;6161:32;6151:60;;6207:1;6204;6197:12;6992:640;-1:-1:-1;;;;;7384:15:1;;;7366:34;;7431:2;7416:18;;7409:34;;;;7474:2;7459:18;;7452:34;;;;7517:2;7502:18;;7495:34;;;;7566:15;;;7560:3;7545:19;;7538:44;7346:3;7598:19;;7591:35;;;;7315:3;7300:19;;6992:640::o;7637:306::-;7725:6;7733;7741;7794:2;7782:9;7773:7;7769:23;7765:32;7762:52;;;7810:1;7807;7800:12;7762:52;7839:9;7833:16;7823:26;;7889:2;7878:9;7874:18;7868:25;7858:35;;7933:2;7922:9;7918:18;7912:25;7902:35;;7637:306;;;;;:::o;7948:184::-;8018:6;8071:2;8059:9;8050:7;8046:23;8042:32;8039:52;;;8087:1;8084;8077:12;8039:52;-1:-1:-1;8110:16:1;;7948:184;-1:-1:-1;7948:184:1:o;10495:127::-;10556:10;10551:3;10547:20;10544:1;10537:31;10587:4;10584:1;10577:15;10611:4;10608:1;10601:15;10627:980;10889:4;10937:3;10926:9;10922:19;10968:6;10957:9;10950:25;10994:2;11032:6;11027:2;11016:9;11012:18;11005:34;11075:3;11070:2;11059:9;11055:18;11048:31;11099:6;11134;11128:13;11165:6;11157;11150:22;11203:3;11192:9;11188:19;11181:26;;11242:2;11234:6;11230:15;11216:29;;11263:1;11273:195;11287:6;11284:1;11281:13;11273:195;;;11352:13;;-1:-1:-1;;;;;11348:39:1;11336:52;;11443:15;;;;11408:12;;;;11384:1;11302:9;11273:195;;;-1:-1:-1;;;;;;;11524:32:1;;;;11519:2;11504:18;;11497:60;-1:-1:-1;;;11588:3:1;11573:19;11566:35;11485:3;10627:980;-1:-1:-1;;;10627:980:1:o;12790:112::-;12822:1;12848;12838:35;;12853:18;;:::i;:::-;-1:-1:-1;12887:9:1;;12790:112::o

Swarm Source

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