ETH Price: $3,145.61 (+2.39%)
Gas: 13 Gwei

Token

Curve Network (CURVE)
 

Overview

Max Total Supply

1,000,000,000 CURVE

Holders

741 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
10 CURVE

Value
$0.00
0x6e9cd8864a04f5a799c1de68d5b738cd2ad70534
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Curve build with Delegated Proof of Stake (DPoS) consensus mechanism and EVM (Ethereum Virtual Machine) compatible blockchain. It will be a green and fast network focused on Interoperability, DeFi and Responsible Web3 project adoption as well as user security.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CURVE

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-08
*/

/*
   Original code Curve Network
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

interface ERC20 {
    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 addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}


contract CURVE is ERC20, Context, Ownable {
    using Address for address payable;
    
    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) public allowedTransfer;
    mapping (address => bool) private _isBlacklisted;

    address[] private _excluded;

    bool public tradingEnabled;
    bool public swapEnabled;
    bool private swapping;
    
    mapping(address => uint256) private _lastSell;
    
    uint256 public coolDownTime = 0 seconds;
    bool public coolDownEnabled = false;
    
    modifier antiBot(address account){
        require(tradingEnabled || allowedTransfer[account], "Trading not enabled yet");
        _;
    }

    IRouter public router;
    address public pair;

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

    uint256 private _tTotal = 1000000000  * 10 **_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    
    uint256 private genesis_block;
    
    string private constant _symbol = "CURVE";
    string private constant _name = "Curve Network";

    uint256 public Max_Buy_Limit = 20000000 * 10**9;
    uint256 public Max_Sell_Limit = 20000000 * 10**9;

    address private Marketing_Wallet = 0xa32Caa7454496f436cd9168bBF197Bb085eE7545;
    address private Team_Wallet = 0x72944c157A9F134C3D90500c80E7a1dE61f6f84D;

    uint256 public Max_Wallet_Holding = 20000000  * 10**9;
    uint256 private swapTokensAtAmount = 5000000 * 10**9;
    

    struct Taxes {
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity; 
        uint256 team;
    }

    Taxes public sellTaxes = Taxes(0, 4, 1, 5);
    Taxes public taxes = Taxes(0, 4, 1, 5);
    

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

    struct valuesFromGetValues{
      uint256 rAmount;
      uint256 rTransferAmount;
      uint256 rRfi;
      uint256 rMarketing;
      uint256 rLiquidity;
      uint256 rTeam;
      uint256 tTransferAmount;
      uint256 tRfi;
      uint256 tMarketing;
      uint256 tLiquidity;
      uint256 tTeam;
    }

    event FeesChanged();
    event UpdatedRouter(address oldRouter, address newRouter);

    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[address(this)] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[Marketing_Wallet] = true;
        _isExcludedFromFee[Team_Wallet] = true;
        
        allowedTransfer[address(this)] = true;
        allowedTransfer[owner()] = true;
        allowedTransfer[pair] = true;
        allowedTransfer[Marketing_Wallet] = true;
        allowedTransfer[Team_Wallet] = true;

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

    //std ERC20:
    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;
    }

    //override ERC20:
    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 allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public override antiBot(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  antiBot(msg.sender) returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public  antiBot(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 transfer(address recipient, uint256 amount) public override antiBot(msg.sender) returns (bool)
    { 
      _transfer(msg.sender, recipient, amount);
      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, false);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true, false);
            return s.rTransferAmount;
        }
    }

    function setTradingStatus(bool state) external onlyOwner{
        tradingEnabled = state;
        swapEnabled = state;
        if(state == true && genesis_block == 0) genesis_block = block.number;
    }

    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) public onlyOwner() {
        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) external onlyOwner() {
        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 isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function setTaxes(uint256 _rfi, uint256 _marketing, uint256 _liquidity, uint256 _team) public onlyOwner {
       taxes = Taxes(_rfi,_marketing,_liquidity,_team);
        emit FeesChanged();
    }
    
    function setSellTaxes(uint256 _rfi, uint256 _marketing, uint256 _liquidity, uint256 _team) public onlyOwner {
       sellTaxes = Taxes(_rfi,_marketing,_liquidity,_team);
        emit FeesChanged();
    }

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

    function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private {
        totFeesPaid.liquidity +=tLiquidity;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tLiquidity;
        }
        _rOwned[address(this)] +=rLiquidity;
    }

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

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tMarketing;
        }
        _rOwned[address(this)] +=rMarketing;
    }
    
    function _takeTeam(uint256 rTeam, uint256 tTeam) private {
        totFeesPaid.team +=tTeam;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tTeam;
        }
        _rOwned[address(this)] +=rTeam;
    }


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

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

        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }
        Taxes memory temp;
        if(isSell) temp = sellTaxes;
        else temp = taxes;
        
        s.tRfi = tAmount*temp.rfi/100;
        s.tMarketing = tAmount*temp.marketing/100;
        s.tLiquidity = tAmount*temp.liquidity/100;
        s.tTeam = tAmount*temp.team/100;
        s.tTransferAmount = tAmount-s.tRfi-s.tMarketing-s.tLiquidity-s.tTeam;
        return s;
    }

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

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

        rRfi = s.tRfi*currentRate;
        rMarketing = s.tMarketing*currentRate;
        rLiquidity = s.tLiquidity*currentRate;
        uint256 rTeam = s.tTeam*currentRate;
        rTransferAmount =  rAmount-rRfi-rMarketing-rLiquidity-rTeam;
        return (rAmount, rTransferAmount, rRfi,rMarketing,rLiquidity);
    }
    
    function _getRValues2(valuesFromGetValues memory s, bool takeFee, uint256 currentRate) private pure returns (uint256 rTeam) {

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

        rTeam = s.tTeam*currentRate;
        return (rTeam);
    }

    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(!_isBlacklisted[from] && !_isBlacklisted[to], "You are a bot");
        
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            require(tradingEnabled, "Trading not active");
        }
        
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && block.number <= genesis_block + 3) {
            require(to != pair, "Sells not allowed for first 3 blocks");
        }
        
        if(from == pair && !_isExcludedFromFee[to] && !swapping){
            require(amount <= Max_Buy_Limit, "You are exceeding Max_Buy_Limit");
            require(balanceOf(to) + amount <= Max_Wallet_Holding, "You are exceeding Max_Wallet_Holding");
        }
        
        if(from != pair && !_isExcludedFromFee[to] && !_isExcludedFromFee[from] && !swapping){
            require(amount <= Max_Sell_Limit, "You are exceeding Max_Sell_Limit");
            if(to != pair){
                require(balanceOf(to) + amount <= Max_Wallet_Holding, "You are exceeding Max_Wallet_Holding");
            }
            if(coolDownEnabled){
                uint256 timePassed = block.timestamp - _lastSell[from];
                require(timePassed >= coolDownTime, "Cooldown enabled");
                _lastSell[from] = block.timestamp;
            }
        }
        
        
        if(balanceOf(from) - amount <= 10 *  10**decimals()) amount -= (10 * 10**decimals() + amount - balanceOf(from));
        
       
        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            if(to == pair)  swapAndLiquify(swapTokensAtAmount, sellTaxes);
            else  swapAndLiquify(swapTokensAtAmount, taxes);
        }
        bool takeFee = true;
        bool isSell = false;
        if(swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false;
        if(to == pair) isSell = true;

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


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

        valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell);

        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;
        
        if(s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi);
        if(s.rLiquidity > 0 || s.tLiquidity > 0) {
            _takeLiquidity(s.rLiquidity,s.tLiquidity);
            emit Transfer(sender, address(this), s.tLiquidity + s.tMarketing + s.tTeam);
        }
        if(s.rMarketing > 0 || s.tMarketing > 0) _takeMarketing(s.rMarketing, s.tMarketing);
        if(s.rTeam > 0 || s.tTeam > 0) _takeTeam(s.rTeam, s.tTeam);
        emit Transfer(sender, recipient, s.tTransferAmount);
        
    }

    function swapAndLiquify(uint256 contractBalance, Taxes memory temp) private lockTheSwap{
        uint256 denominator = (temp.liquidity + temp.marketing + temp.team) * 2;
        uint256 tokensToAddLiquidityWith = contractBalance * temp.liquidity / denominator;
        uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

        uint256 initialBalance = address(this).balance;

        swapTokensForBNB(toSwap);

        uint256 deltaBalance = address(this).balance - initialBalance;
        uint256 unitBalance= deltaBalance / (denominator - temp.liquidity);
        uint256 bnbToAddLiquidityWith = unitBalance * temp.liquidity;

        if(bnbToAddLiquidityWith > 0){
            // Add liquidity to pancake
            addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith);
        }

        uint256 marketingAmt = unitBalance * 2 * temp.marketing;
        if(marketingAmt > 0){
            payable(Marketing_Wallet).sendValue(marketingAmt);
        }
        uint256 teamAmt = unitBalance * 2 * temp.team;
        if(teamAmt > 0){
            payable(Team_Wallet).sendValue(teamAmt);
        }
    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

    function swapTokensForBNB(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }
    
    function airdropTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner{
        require(accounts.length == amounts.length, "Arrays must have same size");
        for(uint256 i = 0; i < accounts.length; i++){
            _tokenTransfer(msg.sender, accounts[i], amounts[i], false, false);
        }
    }
    
    function bulkExcludeFee(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            _isExcludedFromFee[accounts[i]] = state;
        }
    }

    function Update_MarketingWallet(address newWallet) external onlyOwner{
        Marketing_Wallet = newWallet;
    }
    
    function Update_TeamWallet(address newWallet) external onlyOwner{
        Team_Wallet = newWallet;
    }

    
    function updateCooldown(bool state, uint256 time) external onlyOwner{
        coolDownTime = time * 1 seconds;
        coolDownEnabled = state;
    }

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

    function updateSwapEnabled(bool _enabled) external onlyOwner{
        swapEnabled = _enabled;
    }
    
    function updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }
    
    function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i =0; i < accounts.length; i++){
            _isBlacklisted[accounts[i]] = state;

        }
    }
    
    function updateAllowedTransfer(address account, bool state) external onlyOwner{
        allowedTransfer[account] = state;
    }
    
    function Update_Max_Tx_Limit(uint256 maxBuy, uint256 maxSell) external onlyOwner{
        Max_Buy_Limit = maxBuy * 10**decimals();
        Max_Sell_Limit = maxSell * 10**decimals();
    }
    
    function Update_Max_Wallet_Holding(uint256 amount) external onlyOwner{
        Max_Wallet_Holding = amount * 10**decimals();
    }

    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
    }
    
    //Use this in case BNB are sent to the contract by mistake
    function rescueBNB(uint256 weiAmount) external onlyOwner{
        require(address(this).balance >= weiAmount, "insufficient BNB balance");
        payable(msg.sender).transfer(weiAmount);
    }
    

    function rescueAnyERC20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner {
        ERC20(_tokenAddr).transfer(_to, _amount);
    }

    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":[],"name":"Max_Buy_Limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Max_Sell_Limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Max_Wallet_Holding","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"Update_MarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"Update_Max_Tx_Limit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Update_Max_Wallet_Holding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"Update_TeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"allowedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExcludeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","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":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","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":"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":"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":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"team","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_team","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_team","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setTradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"team","type":"uint256"}],"stateMutability":"view","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"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"team","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":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","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"}]

60806040526000600b55600c805460ff19169055620000216009600a620009b2565b6200003190633b9aca0062000a73565b600e819055620000449060001962000acd565b620000529060001962000a95565b600f5566470de4df82000060118190556012819055601380546001600160a01b031990811673a32caa7454496f436cd9168bbf197bb085ee754517909155601480549091167372944c157a9f134c3d90500c80e7a1de61f6f84d1790556015556611c37937e080006016556040805160808082018352600080835260046020808501829052600185870181905260056060968701819052601785905560188490556019829055601a8190558751958601885284865291850183905295840186905292909301829052601b55601c91909155601d91909155601e553480156200013957600080fd5b50604051620044fd380380620044fd8339810160408190526200015c9162000927565b6200016733620004fd565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001a857600080fd5b505afa158015620001bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e3919062000927565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022c57600080fd5b505afa15801562000241573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000267919062000927565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002b057600080fd5b505af1158015620002c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002eb919062000927565b600c80546001600160a01b0380861661010002610100600160a81b031990921691909117909155600d80549183166001600160a01b03199092168217905590915062000337906200054d565b600f5460016000620003516000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120939093553083526004918290528220805460ff1916600190811790915591620003a06000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560135482168152600484528281208054861660019081179091556014549092168152828120805486168317905530815260069384905291822080549094168117909355620004246000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600d54821681526006909352818320805485166001908117909155601354821684528284208054861682179055601454909116835291208054909216179055620004a46000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e54604051620004ec91815260200190565b60405180910390a350505062000b26565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620005ad5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620006185760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401620005a4565b6001600160a01b0381166000908152600160205260409020541562000675576001600160a01b0381166000908152600160205260409020546200065b90620006db565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000600f54821115620007445760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401620005a4565b60006200075062000765565b90506200075e818462000952565b9392505050565b60008080620007736200078b565b909250905062000784818362000952565b9250505090565b600f54600e546000918291825b600854811015620008f357826001600060088481548110620007be57620007be62000b10565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806200082d575081600260006008848154811062000806576200080662000b10565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200084457600f54600e54945094505050509091565b60016000600883815481106200085e576200085e62000b10565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200088f908462000a95565b92506002600060088381548110620008ab57620008ab62000b10565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620008dc908362000a95565b915080620008ea8162000aaf565b91505062000798565b50600e54600f5462000906919062000952565b8210156200091e57600f54600e549350935050509091565b90939092509050565b6000602082840312156200093a57600080fd5b81516001600160a01b03811681146200075e57600080fd5b60008262000964576200096462000afa565b500490565b600181815b80851115620009aa5781600019048211156200098e576200098e62000ae4565b808516156200099c57918102915b93841c93908002906200096e565b509250929050565b60006200075e60ff841683600082620009ce5750600162000a6d565b81620009dd5750600062000a6d565b8160018114620009f6576002811462000a015762000a21565b600191505062000a6d565b60ff84111562000a155762000a1562000ae4565b50506001821b62000a6d565b5060208310610133831016604e8410600b841016171562000a46575081810a62000a6d565b62000a52838362000969565b806000190482111562000a695762000a6962000ae4565b0290505b92915050565b600081600019048311821515161562000a905762000a9062000ae4565b500290565b60008282101562000aaa5762000aaa62000ae4565b500390565b600060001982141562000ac65762000ac662000ae4565b5060010190565b60008262000adf5762000adf62000afa565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6139c78062000b366000396000f3fe60806040526004361061031e5760003560e01c806370a08231116101ab578063b5c57145116100f7578063ee36e35911610095578063f480fec21161006f578063f480fec2146109ed578063f66895a314610a0d578063f887ea4014610a30578063f8b4d92414610a5557600080fd5b8063ee36e3591461099d578063f1c05a5c146109b7578063f2fde38b146109cd57600080fd5b8063d2ce0db2116100d1578063d2ce0db214610901578063dd62ed3e14610917578063e517f2b91461095d578063ea2f0b371461097d57600080fd5b8063b5c57145146108ab578063c59a832c146108cb578063d257b34f146108e157600080fd5b8063924de9b711610164578063a12a7d611161013e578063a12a7d611461082b578063a457c2d71461084b578063a8aa1b311461086b578063a9059cbb1461088b57600080fd5b8063924de9b7146107ba57806395d89b41146107da5780639ba5e4d51461080857600080fd5b806370a08231146106b7578063715018a6146106d7578063728f8eea146106ec57806388f820201461072f5780638da5cb5b146107685780638e2839ff1461079a57600080fd5b8063437823ec1161026a5780635342acb41161022357806362695eae116101fd57806362695eae146106285780636cd0f9ca146106585780636ddd171314610678578063706f69371461069757600080fd5b80635342acb4146105af5780635b24ea5e146105e85780635ead8c9f1461060857600080fd5b8063437823ec146104ff578063441b1d301461051f5780634549b0391461053f57806349fac9551461055f5780634ada218b1461057557806352390c021461058f57600080fd5b806323b872dd116102d75780633685d419116102b15780633685d4191461047f578063379ba1d91461049f57806339509351146104bf57806340b28c2f146104df57600080fd5b806323b872dd146104235780632d83811914610443578063313ce5671461046357600080fd5b806306fdde031461032a578063095ea7b3146103725780630d65df9b146103a2578063107202cd146103c457806313f97a8e146103e457806318160ddd1461040457600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5060408051808201909152600d81526c4375727665204e6574776f726b60981b60208201525b60405161036991906135d2565b60405180910390f35b34801561037e57600080fd5b5061039261038d366004613385565b610a75565b6040519015158152602001610369565b3480156103ae57600080fd5b506103c26103bd366004613316565b610add565b005b3480156103d057600080fd5b506103c26103df3660046132a3565b610b8f565b3480156103f057600080fd5b506103c26103ff366004613473565b610bdb565b34801561041057600080fd5b50600e545b604051908152602001610369565b34801561042f57600080fd5b5061039261043e366004613316565b610c71565b34801561044f57600080fd5b5061041561045e366004613512565b610d6b565b34801561046f57600080fd5b5060405160098152602001610369565b34801561048b57600080fd5b506103c261049a3660046132a3565b610def565b3480156104ab57600080fd5b506103c26104ba3660046134ba565b610fa6565b3480156104cb57600080fd5b506103926104da366004613385565b61100c565b3480156104eb57600080fd5b506103c26104fa3660046132dd565b61108c565b34801561050b57600080fd5b506103c261051a3660046132a3565b6110ee565b34801561052b57600080fd5b506103c261053a366004613512565b61113c565b34801561054b57600080fd5b5061041561055a36600461352b565b6111e3565b34801561056b57600080fd5b5061041560155481565b34801561058157600080fd5b506009546103929060ff1681565b34801561059b57600080fd5b506103c26105aa3660046132a3565b611277565b3480156105bb57600080fd5b506103926105ca3660046132a3565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156105f457600080fd5b506103c2610603366004613357565b6113ca565b34801561061457600080fd5b506103c2610623366004613550565b61141f565b34801561063457600080fd5b506103926106433660046132a3565b60066020526000908152604090205460ff1681565b34801561066457600080fd5b506103c26106733660046132a3565b61147f565b34801561068457600080fd5b5060095461039290610100900460ff1681565b3480156106a357600080fd5b506103c26106b23660046133b1565b6114cb565b3480156106c357600080fd5b506104156106d23660046132a3565b6115a4565b3480156106e357600080fd5b506103c2611603565b3480156106f857600080fd5b50601b54601c54601d54601e5461070f9392919084565b604080519485526020850193909352918301526060820152608001610369565b34801561073b57600080fd5b5061039261074a3660046132a3565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561077457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610369565b3480156107a657600080fd5b506103c26107b5366004613473565b611639565b3480156107c657600080fd5b506103c26107d53660046134ba565b6116ca565b3480156107e657600080fd5b50604080518082019091526005815264435552564560d81b602082015261035c565b34801561081457600080fd5b50601f5460205460215460225461070f9392919084565b34801561083757600080fd5b506103c26108463660046135a0565b61170e565b34801561085757600080fd5b50610392610866366004613385565b611799565b34801561087757600080fd5b50600d54610782906001600160a01b031681565b34801561089757600080fd5b506103926108a6366004613385565b61187f565b3480156108b757600080fd5b506103c26108c6366004613357565b6118d4565b3480156108d757600080fd5b5061041560125481565b3480156108ed57600080fd5b506103c26108fc366004613512565b611929565b34801561090d57600080fd5b50610415600b5481565b34801561092357600080fd5b506104156109323660046132dd565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561096957600080fd5b506103c26109783660046134f4565b61196f565b34801561098957600080fd5b506103c26109983660046132a3565b6119bb565b3480156109a957600080fd5b50600c546103929060ff1681565b3480156109c357600080fd5b5061041560115481565b3480156109d957600080fd5b506103c26109e83660046132a3565b611a06565b3480156109f957600080fd5b506103c2610a083660046135a0565b611a9e565b348015610a1957600080fd5b50601754601854601954601a5461070f9392919084565b348015610a3c57600080fd5b50600c546107829061010090046001600160a01b031681565b348015610a6157600080fd5b506103c2610a70366004613512565b611b29565b600954600090339060ff1680610aa357506001600160a01b03811660009081526006602052604090205460ff165b610ac85760405162461bcd60e51b8152600401610abf906136a0565b60405180910390fd5b610ad3338585611b6f565b5060019392505050565b6000546001600160a01b03163314610b075760405162461bcd60e51b8152600401610abf9061366b565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b158015610b5157600080fd5b505af1158015610b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8991906134d7565b50505050565b6000546001600160a01b03163314610bb95760405162461bcd60e51b8152600401610abf9061366b565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c055760405162461bcd60e51b8152600401610abf9061366b565b60005b8251811015610c6c578160076000858481518110610c2857610c28613942565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c64816138fb565b915050610c08565b505050565b600954600090849060ff1680610c9f57506001600160a01b03811660009081526006602052604090205460ff165b610cbb5760405162461bcd60e51b8152600401610abf906136a0565b610cc6858585611c93565b6001600160a01b038516600090815260036020908152604080832033845290915290205483811015610d4b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610abf565b610d5f8633610d5a87856138e4565b611b6f565b50600195945050505050565b6000600f54821115610dd25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610abf565b6000610ddc6124ad565b9050610de881846137b5565b9392505050565b6000546001600160a01b03163314610e195760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b03811660009081526005602052604090205460ff16610e815760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610abf565b60005b600854811015610fa257816001600160a01b031660088281548110610eab57610eab613942565b6000918252602090912001546001600160a01b03161415610f905760088054610ed6906001906138e4565b81548110610ee657610ee6613942565b600091825260209091200154600880546001600160a01b039092169183908110610f1257610f12613942565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556008805480610f6a57610f6a61392c565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f9a816138fb565b915050610e84565b5050565b6000546001600160a01b03163314610fd05760405162461bcd60e51b8152600401610abf9061366b565b6009805461ffff191661ff0019831515908116919091176101008202179091556001148015610fff5750601054155b1561100957436010555b50565b600954600090339060ff168061103a57506001600160a01b03811660009081526006602052604090205460ff165b6110565760405162461bcd60e51b8152600401610abf906136a0565b3360008181526003602090815260408083206001600160a01b0389168452909152902054610ad391908690610d5a90879061379d565b6000546001600160a01b031633146110b65760405162461bcd60e51b8152600401610abf9061366b565b600c8054610100600160a81b0319166101006001600160a01b0394851602179055600d80546001600160a01b03191691909216179055565b6000546001600160a01b031633146111185760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146111665760405162461bcd60e51b8152600401610abf9061366b565b804710156111b65760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610abf565b604051339082156108fc029083906000818181858888f19350505050158015610fa2573d6000803e3d6000fd5b6000600e548311156112375760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610abf565b8161125557600061124b84600160006124d0565b5191506112719050565b600061126484600160006124d0565b6020015191506112719050565b92915050565b6000546001600160a01b031633146112a15760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b03811660009081526005602052604090205460ff161561130a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610abf565b6001600160a01b03811660009081526001602052604090205415611364576001600160a01b03811660009081526001602052604090205461134a90610d6b565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146113f45760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146114495760405162461bcd60e51b8152600401610abf9061366b565b6114556009600a61381a565b61145f90836138c5565b60115561146e6009600a61381a565b61147890826138c5565b6012555050565b6000546001600160a01b031633146114a95760405162461bcd60e51b8152600401610abf9061366b565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114f55760405162461bcd60e51b8152600401610abf9061366b565b80518251146115465760405162461bcd60e51b815260206004820152601a60248201527f417272617973206d75737420686176652073616d652073697a650000000000006044820152606401610abf565b60005b8251811015610c6c576115923384838151811061156857611568613942565b602002602001015184848151811061158257611582613942565b602002602001015160008061252c565b8061159c816138fb565b915050611549565b6001600160a01b03811660009081526005602052604081205460ff16156115e157506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461127190610d6b565b6000546001600160a01b0316331461162d5760405162461bcd60e51b8152600401610abf9061366b565b61163760006127f9565b565b6000546001600160a01b031633146116635760405162461bcd60e51b8152600401610abf9061366b565b60005b8251811015610c6c57816004600085848151811061168657611686613942565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806116c2816138fb565b915050611666565b6000546001600160a01b031633146116f45760405162461bcd60e51b8152600401610abf9061366b565b600980549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146117385760405162461bcd60e51b8152600401610abf9061366b565b6040805160808101825285815260208101859052808201849052606001829052601b859055601c849055601d839055601e829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b600954600090339060ff16806117c757506001600160a01b03811660009081526006602052604090205460ff165b6117e35760405162461bcd60e51b8152600401610abf906136a0565b3360009081526003602090815260408083206001600160a01b0388168452909152902054838110156118655760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610abf565b6118743386610d5a87856138e4565b506001949350505050565b600954600090339060ff16806118ad57506001600160a01b03811660009081526006602052604090205460ff165b6118c95760405162461bcd60e51b8152600401610abf906136a0565b610ad3338585611c93565b6000546001600160a01b031633146118fe5760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119535760405162461bcd60e51b8152600401610abf9061366b565b61195f6009600a61381a565b61196990826138c5565b60165550565b6000546001600160a01b031633146119995760405162461bcd60e51b8152600401610abf9061366b565b6119a48160016138c5565b600b5550600c805460ff1916911515919091179055565b6000546001600160a01b031633146119e55760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611a305760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b038116611a955760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610abf565b611009816127f9565b6000546001600160a01b03163314611ac85760405162461bcd60e51b8152600401610abf9061366b565b6040805160808101825285815260208101859052808201849052606001829052601785905560188490556019839055601a829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6000546001600160a01b03163314611b535760405162461bcd60e51b8152600401610abf9061366b565b611b5f6009600a61381a565b611b6990826138c5565b60155550565b6001600160a01b038316611bd15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610abf565b6001600160a01b038216611c325760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610abf565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611cf75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610abf565b6001600160a01b038216611d595760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610abf565b60008111611dbb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610abf565b611dc4836115a4565b811115611e2d5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610abf565b6001600160a01b03831660009081526007602052604090205460ff16158015611e6f57506001600160a01b03821660009081526007602052604090205460ff16155b611eab5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610abf565b6001600160a01b03831660009081526004602052604090205460ff16158015611eed57506001600160a01b03821660009081526004602052604090205460ff16155b15611f395760095460ff16611f395760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610abf565b6001600160a01b03831660009081526004602052604090205460ff16158015611f7b57506001600160a01b03821660009081526004602052604090205460ff16155b8015611f945750601054611f9090600361379d565b4311155b1561200357600d546001600160a01b03838116911614156120035760405162461bcd60e51b8152602060048201526024808201527f53656c6c73206e6f7420616c6c6f77656420666f72206669727374203320626c6044820152636f636b7360e01b6064820152608401610abf565b600d546001600160a01b03848116911614801561203957506001600160a01b03821660009081526004602052604090205460ff16155b801561204e575060095462010000900460ff16155b156120da576011548111156120a55760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67204d61785f4275795f4c696d6974006044820152606401610abf565b601554816120b2846115a4565b6120bc919061379d565b11156120da5760405162461bcd60e51b8152600401610abf90613627565b600d546001600160a01b0384811691161480159061211157506001600160a01b03821660009081526004602052604090205460ff16155b801561213657506001600160a01b03831660009081526004602052604090205460ff16155b801561214b575060095462010000900460ff16155b1561227e576012548111156121a25760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67204d61785f53656c6c5f4c696d69746044820152606401610abf565b600d546001600160a01b038381169116146121ec57601554816121c4846115a4565b6121ce919061379d565b11156121ec5760405162461bcd60e51b8152600401610abf90613627565b600c5460ff161561227e576001600160a01b0383166000908152600a602052604081205461221a90426138e4565b9050600b548110156122615760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610abf565b506001600160a01b0383166000908152600a602052604090204290555b61228a6009600a61381a565b61229590600a6138c5565b8161229f856115a4565b6122a991906138e4565b116122f0576122b7836115a4565b816122c46009600a61381a565b6122cf90600a6138c5565b6122d9919061379d565b6122e391906138e4565b6122ed90826138e4565b90505b60006016546122fe306115a4565b600954911115915062010000900460ff161580156123235750600954610100900460ff165b801561232c5750805b80156123465750600d546001600160a01b03858116911614155b801561236b57506001600160a01b03841660009081526004602052604090205460ff16155b801561239057506001600160a01b03831660009081526004602052604090205460ff16155b1561241c57600d546001600160a01b03848116911614156123e657601654604080516080810182526017548152601854602082015260195491810191909152601a5460608201526123e19190612849565b61241c565b60165460408051608081018252601b548152601c546020820152601d5491810191909152601e54606082015261241c9190612849565b60095460019060009062010000900460ff168061245157506001600160a01b03861660009081526004602052604090205460ff165b8061247457506001600160a01b03851660009081526004602052604090205460ff165b1561247e57600091505b600d546001600160a01b0386811691161415612498575060015b6124a5868686858561252c565b505050505050565b60008060006124ba6129a3565b90925090506124c981836137b5565b9250505090565b6124d86131ce565b6124e3848484612b26565b90506124f88185856124f36124ad565b612c96565b60808601526060850152604084015260208301528152612520818461251b6124ad565b612d45565b60a08201529392505050565b60006125398484846124d0565b6001600160a01b03871660009081526005602052604090205490915060ff161561259b576001600160a01b0386166000908152600260205260409020546125819085906138e4565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff16156125fe5760c08101516001600160a01b0386166000908152600260205260409020546125e4919061379d565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b03871660009081526001602052604090205461262391906138e4565b6001600160a01b038088166000908152600160209081526040808320949094558401519188168152919091205461265a919061379d565b6001600160a01b038616600090815260016020526040908190209190915581015115158061268c575060008160e00151115b156126a3576126a381604001518260e00151612d6d565b6000816080015111806126bb57506000816101200151115b15612740576126d38160800151826101200151612da2565b306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836101400151846101000151856101200151612724919061379d565b61272e919061379d565b60405190815260200160405180910390a35b60008160600151118061275857506000816101000151115b15612770576127708160600151826101000151612e18565b60008160a00151118061278857506000816101400151115b156127a0576127a08160a00151826101400151612e2d565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c001516040516127e991815260200190565b60405180910390a3505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6009805462ff0000191662010000179055606081015160208201516040830151600092916128769161379d565b612880919061379d565b61288b9060026138c5565b90506000818360400151856128a091906138c5565b6128aa91906137b5565b905060006128b882866138e4565b9050476128c482612e42565b60006128d082476138e4565b905060008660400151866128e491906138e4565b6128ee90836137b5565b9050600087604001518261290291906138c5565b90508015612914576129148682612fc6565b60208801516000906129278460026138c5565b61293191906138c5565b9050801561294f5760135461294f906001600160a01b0316826130b5565b60608901516000906129628560026138c5565b61296c91906138c5565b9050801561298a5760145461298a906001600160a01b0316826130b5565b50506009805462ff000019169055505050505050505050565b600f54600e546000918291825b600854811015612af5578260016000600884815481106129d2576129d2613942565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612a3d5750816002600060088481548110612a1657612a16613942565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612a5357600f54600e54945094505050509091565b6001600060088381548110612a6a57612a6a613942565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612a9990846138e4565b92506002600060088381548110612ab257612ab2613942565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612ae190836138e4565b915080612aed816138fb565b9150506129b0565b50600e54600f54612b0691906137b5565b821015612b1d57600f54600e549350935050509091565b90939092509050565b612b2e6131ce565b82612b3f5760c08101849052610de8565b612b6a6040518060800160405280600081526020016000815260200160008152602001600081525090565b8215612b9f5750604080516080810182526017548152601854602082015260195491810191909152601a546060820152612bca565b5060408051608081018252601b548152601c546020820152601d5491810191909152601e5460608201525b8051606490612bd990876138c5565b612be391906137b5565b60e08301526020810151606490612bfa90876138c5565b612c0491906137b5565b6101008301526040810151606490612c1c90876138c5565b612c2691906137b5565b6101208301526060810151606490612c3e90876138c5565b612c4891906137b5565b610140830181905261012083015161010084015160e0850151612c6b90896138e4565b612c7591906138e4565b612c7f91906138e4565b612c8991906138e4565b60c0830152509392505050565b600080808080612ca686896138c5565b945086612cbe57508392506000915081905080612d3a565b858960e00151612cce91906138c5565b925085896101000151612ce191906138c5565b915085896101200151612cf491906138c5565b90506000868a6101400151612d0991906138c5565b9050808284612d18878a6138e4565b612d2291906138e4565b612d2c91906138e4565b612d3691906138e4565b9450505b945094509450945094565b600082612d5457506000610de8565b81846101400151612d6591906138c5565b949350505050565b81600f6000828254612d7f91906138e4565b9091555050601f8054829190600090612d9990849061379d565b90915550505050565b80601f6002016000828254612db7919061379d565b90915550503060009081526005602052604090205460ff1615612df9573060009081526002602052604081208054839290612df390849061379d565b90915550505b3060009081526001602052604081208054849290612d9990849061379d565b80601f6001016000828254612db7919061379d565b80601f6003016000828254612db7919061379d565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612e7757612e77613942565b60200260200101906001600160a01b031690816001600160a01b031681525050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612ee557600080fd5b505afa158015612ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1d91906132c0565b81600181518110612f3057612f30613942565b6001600160a01b039283166020918202929092010152600c54612f5b91309161010090041684611b6f565b600c5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790612f989085906000908690309042906004016136d7565b600060405180830381600087803b158015612fb257600080fd5b505af11580156124a5573d6000803e3d6000fd5b600c54612fe390309061010090046001600160a01b031684611b6f565b600c546001600160a01b036101009091041663f305d7198230856000806130126000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561307557600080fd5b505af1158015613089573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906130ae9190613572565b5050505050565b804710156131055760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610abf565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613152576040519150601f19603f3d011682016040523d82523d6000602084013e613157565b606091505b5050905080610c6c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610abf565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f83011261323957600080fd5b8135602061324e61324983613779565b613748565b80838252828201915082860187848660051b890101111561326e57600080fd5b60005b858110156132965781356132848161396e565b84529284019290840190600101613271565b5090979650505050505050565b6000602082840312156132b557600080fd5b8135610de88161396e565b6000602082840312156132d257600080fd5b8151610de88161396e565b600080604083850312156132f057600080fd5b82356132fb8161396e565b9150602083013561330b8161396e565b809150509250929050565b60008060006060848603121561332b57600080fd5b83356133368161396e565b925060208401356133468161396e565b929592945050506040919091013590565b6000806040838503121561336a57600080fd5b82356133758161396e565b9150602083013561330b81613983565b6000806040838503121561339857600080fd5b82356133a38161396e565b946020939093013593505050565b600080604083850312156133c457600080fd5b823567ffffffffffffffff808211156133dc57600080fd5b6133e886838701613228565b93506020915081850135818111156133ff57600080fd5b85019050601f8101861361341257600080fd5b803561342061324982613779565b80828252848201915084840189868560051b870101111561344057600080fd5b600094505b83851015613463578035835260019490940193918501918501613445565b5080955050505050509250929050565b6000806040838503121561348657600080fd5b823567ffffffffffffffff81111561349d57600080fd5b6134a985828601613228565b925050602083013561330b81613983565b6000602082840312156134cc57600080fd5b8135610de881613983565b6000602082840312156134e957600080fd5b8151610de881613983565b6000806040838503121561350757600080fd5b82356133a381613983565b60006020828403121561352457600080fd5b5035919050565b6000806040838503121561353e57600080fd5b82359150602083013561330b81613983565b6000806040838503121561356357600080fd5b50508035926020909101359150565b60008060006060848603121561358757600080fd5b8351925060208401519150604084015190509250925092565b600080600080608085870312156135b657600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156135ff578581018301518582016040015282016135e3565b81811115613611576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526024908201527f596f752061726520657863656564696e67204d61785f57616c6c65745f486f6c60408201526364696e6760e01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156137275784516001600160a01b031683529383019391830191600101613702565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561377157613771613958565b604052919050565b600067ffffffffffffffff82111561379357613793613958565b5060051b60200190565b600082198211156137b0576137b0613916565b500190565b6000826137d257634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156138125781600019048211156137f8576137f8613916565b8085161561380557918102915b93841c93908002906137dc565b509250929050565b6000610de860ff84168360008261383357506001611271565b8161384057506000611271565b816001811461385657600281146138605761387c565b6001915050611271565b60ff84111561387157613871613916565b50506001821b611271565b5060208310610133831016604e8410600b841016171561389f575081810a611271565b6138a983836137d7565b80600019048211156138bd576138bd613916565b029392505050565b60008160001904831182151516156138df576138df613916565b500290565b6000828210156138f6576138f6613916565b500390565b600060001982141561390f5761390f613916565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461100957600080fd5b801515811461100957600080fdfea2646970667358221220e499d2a75924e0490e8cd64693dbd42f757db7fc56ffe7ebb24ae510dc55359764736f6c634300080700330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061031e5760003560e01c806370a08231116101ab578063b5c57145116100f7578063ee36e35911610095578063f480fec21161006f578063f480fec2146109ed578063f66895a314610a0d578063f887ea4014610a30578063f8b4d92414610a5557600080fd5b8063ee36e3591461099d578063f1c05a5c146109b7578063f2fde38b146109cd57600080fd5b8063d2ce0db2116100d1578063d2ce0db214610901578063dd62ed3e14610917578063e517f2b91461095d578063ea2f0b371461097d57600080fd5b8063b5c57145146108ab578063c59a832c146108cb578063d257b34f146108e157600080fd5b8063924de9b711610164578063a12a7d611161013e578063a12a7d611461082b578063a457c2d71461084b578063a8aa1b311461086b578063a9059cbb1461088b57600080fd5b8063924de9b7146107ba57806395d89b41146107da5780639ba5e4d51461080857600080fd5b806370a08231146106b7578063715018a6146106d7578063728f8eea146106ec57806388f820201461072f5780638da5cb5b146107685780638e2839ff1461079a57600080fd5b8063437823ec1161026a5780635342acb41161022357806362695eae116101fd57806362695eae146106285780636cd0f9ca146106585780636ddd171314610678578063706f69371461069757600080fd5b80635342acb4146105af5780635b24ea5e146105e85780635ead8c9f1461060857600080fd5b8063437823ec146104ff578063441b1d301461051f5780634549b0391461053f57806349fac9551461055f5780634ada218b1461057557806352390c021461058f57600080fd5b806323b872dd116102d75780633685d419116102b15780633685d4191461047f578063379ba1d91461049f57806339509351146104bf57806340b28c2f146104df57600080fd5b806323b872dd146104235780632d83811914610443578063313ce5671461046357600080fd5b806306fdde031461032a578063095ea7b3146103725780630d65df9b146103a2578063107202cd146103c457806313f97a8e146103e457806318160ddd1461040457600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5060408051808201909152600d81526c4375727665204e6574776f726b60981b60208201525b60405161036991906135d2565b60405180910390f35b34801561037e57600080fd5b5061039261038d366004613385565b610a75565b6040519015158152602001610369565b3480156103ae57600080fd5b506103c26103bd366004613316565b610add565b005b3480156103d057600080fd5b506103c26103df3660046132a3565b610b8f565b3480156103f057600080fd5b506103c26103ff366004613473565b610bdb565b34801561041057600080fd5b50600e545b604051908152602001610369565b34801561042f57600080fd5b5061039261043e366004613316565b610c71565b34801561044f57600080fd5b5061041561045e366004613512565b610d6b565b34801561046f57600080fd5b5060405160098152602001610369565b34801561048b57600080fd5b506103c261049a3660046132a3565b610def565b3480156104ab57600080fd5b506103c26104ba3660046134ba565b610fa6565b3480156104cb57600080fd5b506103926104da366004613385565b61100c565b3480156104eb57600080fd5b506103c26104fa3660046132dd565b61108c565b34801561050b57600080fd5b506103c261051a3660046132a3565b6110ee565b34801561052b57600080fd5b506103c261053a366004613512565b61113c565b34801561054b57600080fd5b5061041561055a36600461352b565b6111e3565b34801561056b57600080fd5b5061041560155481565b34801561058157600080fd5b506009546103929060ff1681565b34801561059b57600080fd5b506103c26105aa3660046132a3565b611277565b3480156105bb57600080fd5b506103926105ca3660046132a3565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156105f457600080fd5b506103c2610603366004613357565b6113ca565b34801561061457600080fd5b506103c2610623366004613550565b61141f565b34801561063457600080fd5b506103926106433660046132a3565b60066020526000908152604090205460ff1681565b34801561066457600080fd5b506103c26106733660046132a3565b61147f565b34801561068457600080fd5b5060095461039290610100900460ff1681565b3480156106a357600080fd5b506103c26106b23660046133b1565b6114cb565b3480156106c357600080fd5b506104156106d23660046132a3565b6115a4565b3480156106e357600080fd5b506103c2611603565b3480156106f857600080fd5b50601b54601c54601d54601e5461070f9392919084565b604080519485526020850193909352918301526060820152608001610369565b34801561073b57600080fd5b5061039261074a3660046132a3565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561077457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610369565b3480156107a657600080fd5b506103c26107b5366004613473565b611639565b3480156107c657600080fd5b506103c26107d53660046134ba565b6116ca565b3480156107e657600080fd5b50604080518082019091526005815264435552564560d81b602082015261035c565b34801561081457600080fd5b50601f5460205460215460225461070f9392919084565b34801561083757600080fd5b506103c26108463660046135a0565b61170e565b34801561085757600080fd5b50610392610866366004613385565b611799565b34801561087757600080fd5b50600d54610782906001600160a01b031681565b34801561089757600080fd5b506103926108a6366004613385565b61187f565b3480156108b757600080fd5b506103c26108c6366004613357565b6118d4565b3480156108d757600080fd5b5061041560125481565b3480156108ed57600080fd5b506103c26108fc366004613512565b611929565b34801561090d57600080fd5b50610415600b5481565b34801561092357600080fd5b506104156109323660046132dd565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561096957600080fd5b506103c26109783660046134f4565b61196f565b34801561098957600080fd5b506103c26109983660046132a3565b6119bb565b3480156109a957600080fd5b50600c546103929060ff1681565b3480156109c357600080fd5b5061041560115481565b3480156109d957600080fd5b506103c26109e83660046132a3565b611a06565b3480156109f957600080fd5b506103c2610a083660046135a0565b611a9e565b348015610a1957600080fd5b50601754601854601954601a5461070f9392919084565b348015610a3c57600080fd5b50600c546107829061010090046001600160a01b031681565b348015610a6157600080fd5b506103c2610a70366004613512565b611b29565b600954600090339060ff1680610aa357506001600160a01b03811660009081526006602052604090205460ff165b610ac85760405162461bcd60e51b8152600401610abf906136a0565b60405180910390fd5b610ad3338585611b6f565b5060019392505050565b6000546001600160a01b03163314610b075760405162461bcd60e51b8152600401610abf9061366b565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b158015610b5157600080fd5b505af1158015610b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8991906134d7565b50505050565b6000546001600160a01b03163314610bb95760405162461bcd60e51b8152600401610abf9061366b565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c055760405162461bcd60e51b8152600401610abf9061366b565b60005b8251811015610c6c578160076000858481518110610c2857610c28613942565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c64816138fb565b915050610c08565b505050565b600954600090849060ff1680610c9f57506001600160a01b03811660009081526006602052604090205460ff165b610cbb5760405162461bcd60e51b8152600401610abf906136a0565b610cc6858585611c93565b6001600160a01b038516600090815260036020908152604080832033845290915290205483811015610d4b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610abf565b610d5f8633610d5a87856138e4565b611b6f565b50600195945050505050565b6000600f54821115610dd25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610abf565b6000610ddc6124ad565b9050610de881846137b5565b9392505050565b6000546001600160a01b03163314610e195760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b03811660009081526005602052604090205460ff16610e815760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610abf565b60005b600854811015610fa257816001600160a01b031660088281548110610eab57610eab613942565b6000918252602090912001546001600160a01b03161415610f905760088054610ed6906001906138e4565b81548110610ee657610ee6613942565b600091825260209091200154600880546001600160a01b039092169183908110610f1257610f12613942565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556008805480610f6a57610f6a61392c565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f9a816138fb565b915050610e84565b5050565b6000546001600160a01b03163314610fd05760405162461bcd60e51b8152600401610abf9061366b565b6009805461ffff191661ff0019831515908116919091176101008202179091556001148015610fff5750601054155b1561100957436010555b50565b600954600090339060ff168061103a57506001600160a01b03811660009081526006602052604090205460ff165b6110565760405162461bcd60e51b8152600401610abf906136a0565b3360008181526003602090815260408083206001600160a01b0389168452909152902054610ad391908690610d5a90879061379d565b6000546001600160a01b031633146110b65760405162461bcd60e51b8152600401610abf9061366b565b600c8054610100600160a81b0319166101006001600160a01b0394851602179055600d80546001600160a01b03191691909216179055565b6000546001600160a01b031633146111185760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146111665760405162461bcd60e51b8152600401610abf9061366b565b804710156111b65760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610abf565b604051339082156108fc029083906000818181858888f19350505050158015610fa2573d6000803e3d6000fd5b6000600e548311156112375760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610abf565b8161125557600061124b84600160006124d0565b5191506112719050565b600061126484600160006124d0565b6020015191506112719050565b92915050565b6000546001600160a01b031633146112a15760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b03811660009081526005602052604090205460ff161561130a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610abf565b6001600160a01b03811660009081526001602052604090205415611364576001600160a01b03811660009081526001602052604090205461134a90610d6b565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146113f45760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146114495760405162461bcd60e51b8152600401610abf9061366b565b6114556009600a61381a565b61145f90836138c5565b60115561146e6009600a61381a565b61147890826138c5565b6012555050565b6000546001600160a01b031633146114a95760405162461bcd60e51b8152600401610abf9061366b565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114f55760405162461bcd60e51b8152600401610abf9061366b565b80518251146115465760405162461bcd60e51b815260206004820152601a60248201527f417272617973206d75737420686176652073616d652073697a650000000000006044820152606401610abf565b60005b8251811015610c6c576115923384838151811061156857611568613942565b602002602001015184848151811061158257611582613942565b602002602001015160008061252c565b8061159c816138fb565b915050611549565b6001600160a01b03811660009081526005602052604081205460ff16156115e157506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461127190610d6b565b6000546001600160a01b0316331461162d5760405162461bcd60e51b8152600401610abf9061366b565b61163760006127f9565b565b6000546001600160a01b031633146116635760405162461bcd60e51b8152600401610abf9061366b565b60005b8251811015610c6c57816004600085848151811061168657611686613942565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806116c2816138fb565b915050611666565b6000546001600160a01b031633146116f45760405162461bcd60e51b8152600401610abf9061366b565b600980549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146117385760405162461bcd60e51b8152600401610abf9061366b565b6040805160808101825285815260208101859052808201849052606001829052601b859055601c849055601d839055601e829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b600954600090339060ff16806117c757506001600160a01b03811660009081526006602052604090205460ff165b6117e35760405162461bcd60e51b8152600401610abf906136a0565b3360009081526003602090815260408083206001600160a01b0388168452909152902054838110156118655760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610abf565b6118743386610d5a87856138e4565b506001949350505050565b600954600090339060ff16806118ad57506001600160a01b03811660009081526006602052604090205460ff165b6118c95760405162461bcd60e51b8152600401610abf906136a0565b610ad3338585611c93565b6000546001600160a01b031633146118fe5760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119535760405162461bcd60e51b8152600401610abf9061366b565b61195f6009600a61381a565b61196990826138c5565b60165550565b6000546001600160a01b031633146119995760405162461bcd60e51b8152600401610abf9061366b565b6119a48160016138c5565b600b5550600c805460ff1916911515919091179055565b6000546001600160a01b031633146119e55760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611a305760405162461bcd60e51b8152600401610abf9061366b565b6001600160a01b038116611a955760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610abf565b611009816127f9565b6000546001600160a01b03163314611ac85760405162461bcd60e51b8152600401610abf9061366b565b6040805160808101825285815260208101859052808201849052606001829052601785905560188490556019839055601a829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b6000546001600160a01b03163314611b535760405162461bcd60e51b8152600401610abf9061366b565b611b5f6009600a61381a565b611b6990826138c5565b60155550565b6001600160a01b038316611bd15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610abf565b6001600160a01b038216611c325760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610abf565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611cf75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610abf565b6001600160a01b038216611d595760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610abf565b60008111611dbb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610abf565b611dc4836115a4565b811115611e2d5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610abf565b6001600160a01b03831660009081526007602052604090205460ff16158015611e6f57506001600160a01b03821660009081526007602052604090205460ff16155b611eab5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610abf565b6001600160a01b03831660009081526004602052604090205460ff16158015611eed57506001600160a01b03821660009081526004602052604090205460ff16155b15611f395760095460ff16611f395760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610abf565b6001600160a01b03831660009081526004602052604090205460ff16158015611f7b57506001600160a01b03821660009081526004602052604090205460ff16155b8015611f945750601054611f9090600361379d565b4311155b1561200357600d546001600160a01b03838116911614156120035760405162461bcd60e51b8152602060048201526024808201527f53656c6c73206e6f7420616c6c6f77656420666f72206669727374203320626c6044820152636f636b7360e01b6064820152608401610abf565b600d546001600160a01b03848116911614801561203957506001600160a01b03821660009081526004602052604090205460ff16155b801561204e575060095462010000900460ff16155b156120da576011548111156120a55760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67204d61785f4275795f4c696d6974006044820152606401610abf565b601554816120b2846115a4565b6120bc919061379d565b11156120da5760405162461bcd60e51b8152600401610abf90613627565b600d546001600160a01b0384811691161480159061211157506001600160a01b03821660009081526004602052604090205460ff16155b801561213657506001600160a01b03831660009081526004602052604090205460ff16155b801561214b575060095462010000900460ff16155b1561227e576012548111156121a25760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67204d61785f53656c6c5f4c696d69746044820152606401610abf565b600d546001600160a01b038381169116146121ec57601554816121c4846115a4565b6121ce919061379d565b11156121ec5760405162461bcd60e51b8152600401610abf90613627565b600c5460ff161561227e576001600160a01b0383166000908152600a602052604081205461221a90426138e4565b9050600b548110156122615760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610abf565b506001600160a01b0383166000908152600a602052604090204290555b61228a6009600a61381a565b61229590600a6138c5565b8161229f856115a4565b6122a991906138e4565b116122f0576122b7836115a4565b816122c46009600a61381a565b6122cf90600a6138c5565b6122d9919061379d565b6122e391906138e4565b6122ed90826138e4565b90505b60006016546122fe306115a4565b600954911115915062010000900460ff161580156123235750600954610100900460ff165b801561232c5750805b80156123465750600d546001600160a01b03858116911614155b801561236b57506001600160a01b03841660009081526004602052604090205460ff16155b801561239057506001600160a01b03831660009081526004602052604090205460ff16155b1561241c57600d546001600160a01b03848116911614156123e657601654604080516080810182526017548152601854602082015260195491810191909152601a5460608201526123e19190612849565b61241c565b60165460408051608081018252601b548152601c546020820152601d5491810191909152601e54606082015261241c9190612849565b60095460019060009062010000900460ff168061245157506001600160a01b03861660009081526004602052604090205460ff165b8061247457506001600160a01b03851660009081526004602052604090205460ff165b1561247e57600091505b600d546001600160a01b0386811691161415612498575060015b6124a5868686858561252c565b505050505050565b60008060006124ba6129a3565b90925090506124c981836137b5565b9250505090565b6124d86131ce565b6124e3848484612b26565b90506124f88185856124f36124ad565b612c96565b60808601526060850152604084015260208301528152612520818461251b6124ad565b612d45565b60a08201529392505050565b60006125398484846124d0565b6001600160a01b03871660009081526005602052604090205490915060ff161561259b576001600160a01b0386166000908152600260205260409020546125819085906138e4565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526005602052604090205460ff16156125fe5760c08101516001600160a01b0386166000908152600260205260409020546125e4919061379d565b6001600160a01b0386166000908152600260205260409020555b80516001600160a01b03871660009081526001602052604090205461262391906138e4565b6001600160a01b038088166000908152600160209081526040808320949094558401519188168152919091205461265a919061379d565b6001600160a01b038616600090815260016020526040908190209190915581015115158061268c575060008160e00151115b156126a3576126a381604001518260e00151612d6d565b6000816080015111806126bb57506000816101200151115b15612740576126d38160800151826101200151612da2565b306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836101400151846101000151856101200151612724919061379d565b61272e919061379d565b60405190815260200160405180910390a35b60008160600151118061275857506000816101000151115b15612770576127708160600151826101000151612e18565b60008160a00151118061278857506000816101400151115b156127a0576127a08160a00151826101400151612e2d565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c001516040516127e991815260200190565b60405180910390a3505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6009805462ff0000191662010000179055606081015160208201516040830151600092916128769161379d565b612880919061379d565b61288b9060026138c5565b90506000818360400151856128a091906138c5565b6128aa91906137b5565b905060006128b882866138e4565b9050476128c482612e42565b60006128d082476138e4565b905060008660400151866128e491906138e4565b6128ee90836137b5565b9050600087604001518261290291906138c5565b90508015612914576129148682612fc6565b60208801516000906129278460026138c5565b61293191906138c5565b9050801561294f5760135461294f906001600160a01b0316826130b5565b60608901516000906129628560026138c5565b61296c91906138c5565b9050801561298a5760145461298a906001600160a01b0316826130b5565b50506009805462ff000019169055505050505050505050565b600f54600e546000918291825b600854811015612af5578260016000600884815481106129d2576129d2613942565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612a3d5750816002600060088481548110612a1657612a16613942565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612a5357600f54600e54945094505050509091565b6001600060088381548110612a6a57612a6a613942565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612a9990846138e4565b92506002600060088381548110612ab257612ab2613942565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612ae190836138e4565b915080612aed816138fb565b9150506129b0565b50600e54600f54612b0691906137b5565b821015612b1d57600f54600e549350935050509091565b90939092509050565b612b2e6131ce565b82612b3f5760c08101849052610de8565b612b6a6040518060800160405280600081526020016000815260200160008152602001600081525090565b8215612b9f5750604080516080810182526017548152601854602082015260195491810191909152601a546060820152612bca565b5060408051608081018252601b548152601c546020820152601d5491810191909152601e5460608201525b8051606490612bd990876138c5565b612be391906137b5565b60e08301526020810151606490612bfa90876138c5565b612c0491906137b5565b6101008301526040810151606490612c1c90876138c5565b612c2691906137b5565b6101208301526060810151606490612c3e90876138c5565b612c4891906137b5565b610140830181905261012083015161010084015160e0850151612c6b90896138e4565b612c7591906138e4565b612c7f91906138e4565b612c8991906138e4565b60c0830152509392505050565b600080808080612ca686896138c5565b945086612cbe57508392506000915081905080612d3a565b858960e00151612cce91906138c5565b925085896101000151612ce191906138c5565b915085896101200151612cf491906138c5565b90506000868a6101400151612d0991906138c5565b9050808284612d18878a6138e4565b612d2291906138e4565b612d2c91906138e4565b612d3691906138e4565b9450505b945094509450945094565b600082612d5457506000610de8565b81846101400151612d6591906138c5565b949350505050565b81600f6000828254612d7f91906138e4565b9091555050601f8054829190600090612d9990849061379d565b90915550505050565b80601f6002016000828254612db7919061379d565b90915550503060009081526005602052604090205460ff1615612df9573060009081526002602052604081208054839290612df390849061379d565b90915550505b3060009081526001602052604081208054849290612d9990849061379d565b80601f6001016000828254612db7919061379d565b80601f6003016000828254612db7919061379d565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612e7757612e77613942565b60200260200101906001600160a01b031690816001600160a01b031681525050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612ee557600080fd5b505afa158015612ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1d91906132c0565b81600181518110612f3057612f30613942565b6001600160a01b039283166020918202929092010152600c54612f5b91309161010090041684611b6f565b600c5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790612f989085906000908690309042906004016136d7565b600060405180830381600087803b158015612fb257600080fd5b505af11580156124a5573d6000803e3d6000fd5b600c54612fe390309061010090046001600160a01b031684611b6f565b600c546001600160a01b036101009091041663f305d7198230856000806130126000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561307557600080fd5b505af1158015613089573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906130ae9190613572565b5050505050565b804710156131055760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610abf565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613152576040519150601f19603f3d011682016040523d82523d6000602084013e613157565b606091505b5050905080610c6c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610abf565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f83011261323957600080fd5b8135602061324e61324983613779565b613748565b80838252828201915082860187848660051b890101111561326e57600080fd5b60005b858110156132965781356132848161396e565b84529284019290840190600101613271565b5090979650505050505050565b6000602082840312156132b557600080fd5b8135610de88161396e565b6000602082840312156132d257600080fd5b8151610de88161396e565b600080604083850312156132f057600080fd5b82356132fb8161396e565b9150602083013561330b8161396e565b809150509250929050565b60008060006060848603121561332b57600080fd5b83356133368161396e565b925060208401356133468161396e565b929592945050506040919091013590565b6000806040838503121561336a57600080fd5b82356133758161396e565b9150602083013561330b81613983565b6000806040838503121561339857600080fd5b82356133a38161396e565b946020939093013593505050565b600080604083850312156133c457600080fd5b823567ffffffffffffffff808211156133dc57600080fd5b6133e886838701613228565b93506020915081850135818111156133ff57600080fd5b85019050601f8101861361341257600080fd5b803561342061324982613779565b80828252848201915084840189868560051b870101111561344057600080fd5b600094505b83851015613463578035835260019490940193918501918501613445565b5080955050505050509250929050565b6000806040838503121561348657600080fd5b823567ffffffffffffffff81111561349d57600080fd5b6134a985828601613228565b925050602083013561330b81613983565b6000602082840312156134cc57600080fd5b8135610de881613983565b6000602082840312156134e957600080fd5b8151610de881613983565b6000806040838503121561350757600080fd5b82356133a381613983565b60006020828403121561352457600080fd5b5035919050565b6000806040838503121561353e57600080fd5b82359150602083013561330b81613983565b6000806040838503121561356357600080fd5b50508035926020909101359150565b60008060006060848603121561358757600080fd5b8351925060208401519150604084015190509250925092565b600080600080608085870312156135b657600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156135ff578581018301518582016040015282016135e3565b81811115613611576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526024908201527f596f752061726520657863656564696e67204d61785f57616c6c65745f486f6c60408201526364696e6760e01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156137275784516001600160a01b031683529383019391830191600101613702565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561377157613771613958565b604052919050565b600067ffffffffffffffff82111561379357613793613958565b5060051b60200190565b600082198211156137b0576137b0613916565b500190565b6000826137d257634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156138125781600019048211156137f8576137f8613916565b8085161561380557918102915b93841c93908002906137dc565b509250929050565b6000610de860ff84168360008261383357506001611271565b8161384057506000611271565b816001811461385657600281146138605761387c565b6001915050611271565b60ff84111561387157613871613916565b50506001821b611271565b5060208310610133831016604e8410600b841016171561389f575081810a611271565b6138a983836137d7565b80600019048211156138bd576138bd613916565b029392505050565b60008160001904831182151516156138df576138df613916565b500290565b6000828210156138f6576138f6613916565b500390565b600060001982141561390f5761390f613916565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461100957600080fd5b801515811461100957600080fdfea2646970667358221220e499d2a75924e0490e8cd64693dbd42f757db7fc56ffe7ebb24ae510dc55359764736f6c63430008070033

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

3232:21153:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6784:83;;;;;;;;;;-1:-1:-1;6854:5:0;;;;;;;;;;;;-1:-1:-1;;;6854:5:0;;;;6784:83;;;;;;;:::i;:::-;;;;;;;;7544:181;;;;;;;;;;-1:-1:-1;7544:181:0;;;;;:::i;:::-;;:::i;:::-;;;8209:14:1;;8202:22;8184:41;;8172:2;8157:18;7544:181:0;8044:187:1;24187:153:0;;;;;;;;;;-1:-1:-1;24187:153:0;;;;;:::i;:::-;;:::i;:::-;;22246:116;;;;;;;;;;-1:-1:-1;22246:116:0;;;;;:::i;:::-;;:::i;23043:209::-;;;;;;;;;;-1:-1:-1;23043:209:0;;;;;:::i;:::-;;:::i;7080:95::-;;;;;;;;;;-1:-1:-1;7160:7:0;;7080:95;;;19125:25:1;;;19113:2;19098:18;7080:95:0;18979:177:1;7733:430:0;;;;;;;;;;-1:-1:-1;7733:430:0;;;;;:::i;:::-;;:::i;9824:248::-;;;;;;;;;;-1:-1:-1;9824:248:0;;;;;:::i;:::-;;:::i;6966:83::-;;;;;;;;;;-1:-1:-1;6966:83:0;;4254:1;20684:36:1;;20672:2;20657:18;6966:83:0;20542:184:1;10421:475:0;;;;;;;;;;-1:-1:-1;10421:475:0;;;;;:::i;:::-;;:::i;9610:206::-;;;;;;;;;;-1:-1:-1;9610:206:0;;;;;:::i;:::-;;:::i;8171:228::-;;;;;;;;;;-1:-1:-1;8171:228:0;;;;;:::i;:::-;;:::i;23747:154::-;;;;;;;;;;-1:-1:-1;23747:154:0;;;;;:::i;:::-;;:::i;10904:111::-;;;;;;;;;;-1:-1:-1;10904:111:0;;;;;:::i;:::-;;:::i;23977:196::-;;;;;;;;;;-1:-1:-1;23977:196:0;;;;;:::i;:::-;;:::i;9132:470::-;;;;;;;;;;-1:-1:-1;9132:470:0;;;;;:::i;:::-;;:::i;4858:53::-;;;;;;;;;;;;;;;;3764:26;;;;;;;;;;-1:-1:-1;3764:26:0;;;;;;;;10080:333;;;;;;;;;;-1:-1:-1;10080:333:0;;;;;:::i;:::-;;:::i;11141:123::-;;;;;;;;;;-1:-1:-1;11141:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;11229:27:0;11205:4;11229:27;;;:18;:27;;;;;;;;;11141:123;22905:126;;;;;;;;;;-1:-1:-1;22905:126:0;;;;;:::i;:::-;;:::i;23405:190::-;;;;;;;;;;-1:-1:-1;23405:190:0;;;;;:::i;:::-;;:::i;3616:48::-;;;;;;;;;;-1:-1:-1;3616:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22374:106;;;;;;;;;;-1:-1:-1;22374:106:0;;;;;:::i;:::-;;:::i;3797:23::-;;;;;;;;;;-1:-1:-1;3797:23:0;;;;;;;;;;;21686:331;;;;;;;;;;-1:-1:-1;21686:331:0;;;;;:::i;:::-;;:::i;7183:198::-;;;;;;;;;;-1:-1:-1;7183:198:0;;;;;:::i;:::-;;:::i;1661:94::-;;;;;;;;;;;;;:::i;5165:38::-;;;;;;;;;;-1:-1:-1;5165:38:0;;;;;;;;;;;;;;;;;;;20377:25:1;;;20433:2;20418:18;;20411:34;;;;20461:18;;;20454:34;20519:2;20504:18;;20497:34;20364:3;20349:19;5165:38:0;20146:391:1;9004:120:0;;;;;;;;;;-1:-1:-1;9004:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;9096:20:0;9072:4;9096:20;;;:11;:20;;;;;;;;;9004:120;1438:87;;;;;;;;;;-1:-1:-1;1484:7:0;1511:6;-1:-1:-1;;;;;1511:6:0;1438:87;;;-1:-1:-1;;;;;7109:32:1;;;7091:51;;7079:2;7064:18;1438:87:0;6945:203:1;22029:209:0;;;;;;;;;;-1:-1:-1;22029:209:0;;;;;:::i;:::-;;:::i;22792:101::-;;;;;;;;;;-1:-1:-1;22792:101:0;;;;;:::i;:::-;;:::i;6873:87::-;;;;;;;;;;-1:-1:-1;6945:7:0;;;;;;;;;;;;-1:-1:-1;;;6945:7:0;;;;6873:87;;5364:36;;;;;;;;;;-1:-1:-1;5364:36:0;;;;;;;;;;;;;;;11272:198;;;;;;;;;;-1:-1:-1;11272:198:0;;;;;:::i;:::-;;:::i;8407:390::-;;;;;;;;;;-1:-1:-1;8407:390:0;;;;;:::i;:::-;;:::i;4191:19::-;;;;;;;;;;-1:-1:-1;4191:19:0;;;;-1:-1:-1;;;;;4191:19:0;;;8809:187;;;;;;;;;;-1:-1:-1;8809:187:0;;;;;:::i;:::-;;:::i;23264:129::-;;;;;;;;;;-1:-1:-1;23264:129:0;;;;;:::i;:::-;;:::i;4636:48::-;;;;;;;;;;;;;;;;22654:130;;;;;;;;;;-1:-1:-1;22654:130:0;;;;;:::i;:::-;;:::i;3919:39::-;;;;;;;;;;;;;;;;7393:143;;;;;;;;;;-1:-1:-1;7393:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7501:18:0;;;7474:7;7501:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7393:143;22494:152;;;;;;;;;;-1:-1:-1;22494:152:0;;;;;:::i;:::-;;:::i;11023:110::-;;;;;;;;;;-1:-1:-1;11023:110:0;;;;;:::i;:::-;;:::i;3965:35::-;;;;;;;;;;-1:-1:-1;3965:35:0;;;;;;;;4582:47;;;;;;;;;;;;;;;;1763:192;;;;;;;;;;-1:-1:-1;1763:192:0;;;;;:::i;:::-;;:::i;11482:206::-;;;;;;;;;;-1:-1:-1;11482:206:0;;;;;:::i;:::-;;:::i;5116:42::-;;;;;;;;;;-1:-1:-1;5116:42:0;;;;;;;;;;;;;;;4163:21;;;;;;;;;;-1:-1:-1;4163:21:0;;;;;;;-1:-1:-1;;;;;4163:21:0;;;23607:132;;;;;;;;;;-1:-1:-1;23607:132:0;;;;;:::i;:::-;;:::i;7544:181::-;4065:14;;7639:4;;7619:10;;4065:14;;;:42;;-1:-1:-1;;;;;;4083:24:0;;;;;;:15;:24;;;;;;;;4065:42;4057:78;;;;-1:-1:-1;;;4057:78:0;;;;;;;:::i;:::-;;;;;;;;;7656:39:::1;939:10:::0;7679:7:::1;7688:6;7656:8;:39::i;:::-;-1:-1:-1::0;7713:4:0::1;::::0;7544:181;-1:-1:-1;;;7544:181:0:o;24187:153::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;24292:40:::1;::::0;-1:-1:-1;;;24292:40:0;;-1:-1:-1;;;;;7345:32:1;;;24292:40:0::1;::::0;::::1;7327:51:1::0;7394:18;;;7387:34;;;24292:26:0;::::1;::::0;::::1;::::0;7300:18:1;;24292:40:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24187:153:::0;;;:::o;22246:116::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;22326:16:::1;:28:::0;;-1:-1:-1;;;;;;22326:28:0::1;-1:-1:-1::0;;;;;22326:28:0;;;::::1;::::0;;;::::1;::::0;;22246:116::o;23043:209::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;23142:9:::1;23138:107;23160:8;:15;23156:1;:19;23138:107;;;23226:5;23196:14;:27;23211:8;23220:1;23211:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23196:27:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23196:27:0;:35;;-1:-1:-1;;23196:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23177:3;::::1;::::0;::::1;:::i;:::-;;;;23138:107;;;;23043:209:::0;;:::o;7733:430::-;4065:14;;7847:4;;7830:6;;4065:14;;;:42;;-1:-1:-1;;;;;;4083:24:0;;;;;;:15;:24;;;;;;;;4065:42;4057:78;;;;-1:-1:-1;;;4057:78:0;;;;;;;:::i;:::-;7864:36:::1;7874:6;7882:9;7893:6;7864:9;:36::i;:::-;-1:-1:-1::0;;;;;7940:19:0;::::1;7913:24;7940:19:::0;;;:11:::1;:19;::::0;;;;;;;939:10;7940:33;;;;;;;;7992:26;;::::1;;7984:79;;;::::0;-1:-1:-1;;;7984:79:0;;15030:2:1;7984:79:0::1;::::0;::::1;15012:21:1::0;15069:2;15049:18;;;15042:30;15108:34;15088:18;;;15081:62;-1:-1:-1;;;15159:18:1;;;15152:38;15207:19;;7984:79:0::1;14828:404:1::0;7984:79:0::1;8074:57;8083:6:::0;939:10;8105:25:::1;8124:6:::0;8105:16;:25:::1;:::i;:::-;8074:8;:57::i;:::-;-1:-1:-1::0;8151:4:0::1;::::0;7733:430;-1:-1:-1;;;;;7733:430:0:o;9824:248::-;9890:7;9929;;9918;:18;;9910:73;;;;-1:-1:-1;;;9910:73:0;;10432:2:1;9910:73:0;;;10414:21:1;10471:2;10451:18;;;10444:30;10510:34;10490:18;;;10483:62;-1:-1:-1;;;10561:18:1;;;10554:40;10611:19;;9910:73:0;10230:406:1;9910:73:0;9994:19;10017:10;:8;:10::i;:::-;9994:33;-1:-1:-1;10045:19:0;9994:33;10045:7;:19;:::i;:::-;10038:26;9824:248;-1:-1:-1;;;9824:248:0:o;10421:475::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10503:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10495:56;;;::::0;-1:-1:-1;;;10495:56:0;;13246:2:1;10495:56:0::1;::::0;::::1;13228:21:1::0;13285:2;13265:18;;;13258:30;13324:25;13304:18;;;13297:53;13367:18;;10495:56:0::1;13044:347:1::0;10495:56:0::1;10567:9;10562:327;10586:9;:16:::0;10582:20;::::1;10562:327;;;10644:7;-1:-1:-1::0;;;;;10628:23:0::1;:9;10638:1;10628:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;10628:12:0::1;:23;10624:254;;;10687:9;10697:16:::0;;:20:::1;::::0;10716:1:::1;::::0;10697:20:::1;:::i;:::-;10687:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;10672:9:::1;:12:::0;;-1:-1:-1;;;;;10687:31:0;;::::1;::::0;10682:1;;10672:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;10672:46:0::1;-1:-1:-1::0;;;;;10672:46:0;;::::1;;::::0;;10737:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;10776:11:::1;:20:::0;;;;:28;;-1:-1:-1;;10776:28:0::1;::::0;;10823:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10823:15:0;;;;;-1:-1:-1;;;;;;10823:15:0::1;::::0;;;;;10562:327:::1;10421:475:::0;:::o;10624:254::-:1;10604:3:::0;::::1;::::0;::::1;:::i;:::-;;;;10562:327;;;;10421:475:::0;:::o;9610:206::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;9677:14:::1;:22:::0;;-1:-1:-1;;9710:19:0;-1:-1:-1;;9677:22:0;::::1;;9710:19:::0;;;;;;;9677:22:::1;9710:19:::0;::::1;;::::0;;;-1:-1:-1;9743:13:0::1;:35:::0;::::1;;;-1:-1:-1::0;9760:13:0::1;::::0;:18;9743:35:::1;9740:68;;;9796:12;9780:13;:28:::0;9740:68:::1;9610:206:::0;:::o;8171:228::-;4065:14;;8272:4;;8251:10;;4065:14;;;:42;;-1:-1:-1;;;;;;4083:24:0;;;;;;:15;:24;;;;;;;;4065:42;4057:78;;;;-1:-1:-1;;;4057:78:0;;;;;;;:::i;:::-;939:10;8321:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8321:34:0;::::1;::::0;;;;;;;;8289:80:::1;::::0;939:10;8312:7;;8321:47:::1;::::0;8358:10;;8321:47:::1;:::i;23747:154::-:0;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;23841:6:::1;:27:::0;;-1:-1:-1;;;;;;23841:27:0::1;;-1:-1:-1::0;;;;;23841:27:0;;::::1;;;::::0;;23879:4:::1;:14:::0;;-1:-1:-1;;;;;;23879:14:0::1;::::0;;;::::1;;::::0;;23747:154::o;10904:111::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10973:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;10973:34:0::1;11003:4;10973:34;::::0;;10904:111::o;23977:196::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;24077:9:::1;24052:21;:34;;24044:71;;;::::0;-1:-1:-1;;;24044:71:0;;14316:2:1;24044:71:0::1;::::0;::::1;14298:21:1::0;14355:2;14335:18;;;14328:30;14394:26;14374:18;;;14367:54;14438:18;;24044:71:0::1;14114:348:1::0;24044:71:0::1;24126:39;::::0;24134:10:::1;::::0;24126:39;::::1;;;::::0;24155:9;;24126:39:::1;::::0;;;24155:9;24134:10;24126:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;9132:470:::0;9222:7;9261;;9250;:18;;9242:62;;;;-1:-1:-1;;;9242:62:0;;13956:2:1;9242:62:0;;;13938:21:1;13995:2;13975:18;;;13968:30;14034:33;14014:18;;;14007:61;14085:18;;9242:62:0;13754:355:1;9242:62:0;9320:17;9315:280;;9354:28;9385:32;9396:7;9405:4;9411:5;9385:10;:32::i;:::-;9439:9;;-1:-1:-1;9432:16:0;;-1:-1:-1;9432:16:0;9315:280;9481:28;9512:32;9523:7;9532:4;9538:5;9512:10;:32::i;:::-;9566:17;;;;-1:-1:-1;9559:24:0;;-1:-1:-1;9559:24:0;9315:280;9132:470;;;;:::o;10080:333::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10163:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10162:21;10154:61;;;::::0;-1:-1:-1;;;10154:61:0;;11653:2:1;10154:61:0::1;::::0;::::1;11635:21:1::0;11692:2;11672:18;;;11665:30;11731:29;11711:18;;;11704:57;11778:18;;10154:61:0::1;11451:351:1::0;10154:61:0::1;-1:-1:-1::0;;;;;10229:16:0;::::1;10248:1;10229:16:::0;;;:7:::1;:16;::::0;;;;;:20;10226:108:::1;;-1:-1:-1::0;;;;;10305:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;10285:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;10266:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;10226:108:::1;-1:-1:-1::0;;;;;10344:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;10344:27:0::1;10367:4;10344:27:::0;;::::1;::::0;;;10382:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;10382:23:0::1;::::0;;::::1;::::0;;10080:333::o;22905:126::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22992:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;22992:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22905:126::o;23405:190::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;23521:14:::1;4254:1:::0;23521:2:::1;:14;:::i;:::-;23512:23;::::0;:6;:23:::1;:::i;:::-;23496:13;:39:::0;23573:14:::1;4254:1:::0;23573:2:::1;:14;:::i;:::-;23563:24;::::0;:7;:24:::1;:::i;:::-;23546:14;:41:::0;-1:-1:-1;;23405:190:0:o;22374:106::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;22449:11:::1;:23:::0;;-1:-1:-1;;;;;;22449:23:0::1;-1:-1:-1::0;;;;;22449:23:0;;;::::1;::::0;;;::::1;::::0;;22374:106::o;21686:331::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;21818:7:::1;:14;21799:8;:15;:33;21791:72;;;::::0;-1:-1:-1;;;21791:72:0;;17366:2:1;21791:72:0::1;::::0;::::1;17348:21:1::0;17405:2;17385:18;;;17378:30;17444:28;17424:18;;;17417:56;17490:18;;21791:72:0::1;17164:350:1::0;21791:72:0::1;21878:9;21874:136;21897:8;:15;21893:1;:19;21874:136;;;21933:65;21948:10;21960:8;21969:1;21960:11;;;;;;;;:::i;:::-;;;;;;;21973:7;21981:1;21973:10;;;;;;;;:::i;:::-;;;;;;;21985:5;21992::::0;21933:14:::1;:65::i;:::-;21914:3:::0;::::1;::::0;::::1;:::i;:::-;;;;21874:136;;7183:198:::0;-1:-1:-1;;;;;7273:20:0;;7249:7;7273:20;;;:11;:20;;;;;;;;7269:49;;;-1:-1:-1;;;;;;7302:16:0;;;;;:7;:16;;;;;;;7183:198::o;7269:49::-;-1:-1:-1;;;;;7356:16:0;;;;;;:7;:16;;;;;;7336:37;;:19;:37::i;1661:94::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;1726:21:::1;1744:1;1726:9;:21::i;:::-;1661:94::o:0;22029:209::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;22125:9:::1;22121:110;22144:8;:15;22140:1;:19;22121:110;;;22214:5;22180:18;:31;22199:8;22208:1;22199:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;22180:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;22180:31:0;:39;;-1:-1:-1;;22180:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22161:3;::::1;::::0;::::1;:::i;:::-;;;;22121:110;;22792:101:::0;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;22863:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;22863:22:0;;::::1;::::0;;;::::1;::::0;;22792:101::o;11272:198::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;11394:39:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;11386:5:::1;:47:::0;;;;;;;;;;;;;;;11449:13;::::1;::::0;-1:-1:-1;;11449:13:0::1;11272:198:::0;;;;:::o;8407:390::-;4065:14;;8513:4;;8492:10;;4065:14;;;:42;;-1:-1:-1;;;;;;4083:24:0;;;;;;:15;:24;;;;;;;;4065:42;4057:78;;;;-1:-1:-1;;;4057:78:0;;;;;;;:::i;:::-;939:10;8530:24:::1;8557:25:::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8557:34:0;::::1;::::0;;;;;;;;8610:35;;::::1;;8602:85;;;::::0;-1:-1:-1;;;8602:85:0;;18775:2:1;8602:85:0::1;::::0;::::1;18757:21:1::0;18814:2;18794:18;;;18787:30;18853:34;18833:18;;;18826:62;-1:-1:-1;;;18904:18:1;;;18897:35;18949:19;;8602:85:0::1;18573:401:1::0;8602:85:0::1;8698:67;939:10:::0;8721:7;8730:34:::1;8749:15:::0;8730:16;:34:::1;:::i;8698:67::-;-1:-1:-1::0;8785:4:0::1;::::0;8407:390;-1:-1:-1;;;;8407:390:0:o;8809:187::-;4065:14;;8907:4;;8886:10;;4065:14;;;:42;;-1:-1:-1;;;;;;4083:24:0;;;;;;:15;:24;;;;;;;;4065:42;4057:78;;;;-1:-1:-1;;;4057:78:0;;;;;;;:::i;:::-;8928:40:::1;8938:10;8950:9;8961:6;8928:9;:40::i;23264:129::-:0;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23353:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:32;;-1:-1:-1;;23353:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23264:129::o;22654:130::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;22763:13:::1;4254:1;22763:2;:13;:::i;:::-;22754:22;::::0;:6;:22:::1;:::i;:::-;22733:18;:43:::0;-1:-1:-1;22654:130:0:o;22494:152::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;22588:16:::1;:4:::0;22595:9:::1;22588:16;:::i;:::-;22573:12;:31:::0;-1:-1:-1;22615:15:0::1;:23:::0;;-1:-1:-1;;22615:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22494:152::o;11023:110::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11090:27:0::1;11120:5;11090:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;11090:35:0::1;::::0;;11023:110::o;1763:192::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1852:22:0;::::1;1844:73;;;::::0;-1:-1:-1;;;1844:73:0;;10843:2:1;1844:73:0::1;::::0;::::1;10825:21:1::0;10882:2;10862:18;;;10855:30;10921:34;10901:18;;;10894:62;-1:-1:-1;;;10972:18:1;;;10965:36;11018:19;;1844:73:0::1;10641:402:1::0;1844:73:0::1;1928:19;1938:8;1928:9;:19::i;11482:206::-:0;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;11612:39:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;11600:9:::1;:51:::0;;;;;;;;;;;;;;;11667:13;::::1;::::0;-1:-1:-1;;11667:13:0::1;11482:206:::0;;;;:::o;23607:132::-;1484:7;1511:6;-1:-1:-1;;;;;1511:6:0;939:10;1573:23;1565:68;;;;-1:-1:-1;;;1565:68:0;;;;;;;:::i;:::-;23717:14:::1;4254:1:::0;23717:2:::1;:14;:::i;:::-;23708:23;::::0;:6;:23:::1;:::i;:::-;23687:18;:44:::0;-1:-1:-1;23607:132:0:o;15435:335::-;-1:-1:-1;;;;;15528:19:0;;15520:68;;;;-1:-1:-1;;;15520:68:0;;16961:2:1;15520:68:0;;;16943:21:1;17000:2;16980:18;;;16973:30;17039:34;17019:18;;;17012:62;-1:-1:-1;;;17090:18:1;;;17083:34;17134:19;;15520:68:0;16759:400:1;15520:68:0;-1:-1:-1;;;;;15607:21:0;;15599:68;;;;-1:-1:-1;;;15599:68:0;;11250:2:1;15599:68:0;;;11232:21:1;11289:2;11269:18;;;11262:30;11328:34;11308:18;;;11301:62;-1:-1:-1;;;11379:18:1;;;11372:32;11421:19;;15599:68:0;11048:398:1;15599:68:0;-1:-1:-1;;;;;15678:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15730:32;;19125:25:1;;;15730:32:0;;19098:18:1;15730:32:0;;;;;;;15435:335;;;:::o;15778:2473::-;-1:-1:-1;;;;;15866:18:0;;15858:68;;;;-1:-1:-1;;;15858:68:0;;16555:2:1;15858:68:0;;;16537:21:1;16594:2;16574:18;;;16567:30;16633:34;16613:18;;;16606:62;-1:-1:-1;;;16684:18:1;;;16677:35;16729:19;;15858:68:0;16353:401:1;15858:68:0;-1:-1:-1;;;;;15945:16:0;;15937:64;;;;-1:-1:-1;;;15937:64:0;;9263:2:1;15937:64:0;;;9245:21:1;9302:2;9282:18;;;9275:30;9341:34;9321:18;;;9314:62;-1:-1:-1;;;9392:18:1;;;9385:33;9435:19;;15937:64:0;9061:399:1;15937:64:0;16029:1;16020:6;:10;16012:64;;;;-1:-1:-1;;;16012:64:0;;15800:2:1;16012:64:0;;;15782:21:1;15839:2;15819:18;;;15812:30;15878:34;15858:18;;;15851:62;-1:-1:-1;;;15929:18:1;;;15922:39;15978:19;;16012:64:0;15598:405:1;16012:64:0;16105:15;16115:4;16105:9;:15::i;:::-;16095:6;:25;;16087:86;;;;-1:-1:-1;;;16087:86:0;;10014:2:1;16087:86:0;;;9996:21:1;10053:2;10033:18;;;10026:30;10092:34;10072:18;;;10065:62;-1:-1:-1;;;10143:18:1;;;10136:47;10200:19;;16087:86:0;9812:413:1;16087:86:0;-1:-1:-1;;;;;16193:20:0;;;;;;:14;:20;;;;;;;;16192:21;:44;;;;-1:-1:-1;;;;;;16218:18:0;;;;;;:14;:18;;;;;;;;16217:19;16192:44;16184:70;;;;-1:-1:-1;;;16184:70:0;;18073:2:1;16184:70:0;;;18055:21:1;18112:2;18092:18;;;18085:30;-1:-1:-1;;;18131:18:1;;;18124:43;18184:18;;16184:70:0;17871:337:1;16184:70:0;-1:-1:-1;;;;;16279:24:0;;;;;;:18;:24;;;;;;;;16278:25;:52;;;;-1:-1:-1;;;;;;16308:22:0;;;;;;:18;:22;;;;;;;;16307:23;16278:52;16275:128;;;16354:14;;;;16346:45;;;;-1:-1:-1;;;16346:45:0;;9667:2:1;16346:45:0;;;9649:21:1;9706:2;9686:18;;;9679:30;-1:-1:-1;;;9725:18:1;;;9718:48;9783:18;;16346:45:0;9465:342:1;16346:45:0;-1:-1:-1;;;;;16427:24:0;;;;;;:18;:24;;;;;;;;16426:25;:52;;;;-1:-1:-1;;;;;;16456:22:0;;;;;;:18;:22;;;;;;;;16455:23;16426:52;:89;;;;-1:-1:-1;16498:13:0;;:17;;16514:1;16498:17;:::i;:::-;16482:12;:33;;16426:89;16423:180;;;16546:4;;-1:-1:-1;;;;;16540:10:0;;;16546:4;;16540:10;;16532:59;;;;-1:-1:-1;;;16532:59:0;;12414:2:1;16532:59:0;;;12396:21:1;12453:2;12433:18;;;12426:30;12492:34;12472:18;;;12465:62;-1:-1:-1;;;12543:18:1;;;12536:34;12587:19;;16532:59:0;12212:400:1;16532:59:0;16634:4;;-1:-1:-1;;;;;16626:12:0;;;16634:4;;16626:12;:39;;;;-1:-1:-1;;;;;;16643:22:0;;;;;;:18;:22;;;;;;;;16642:23;16626:39;:52;;;;-1:-1:-1;16670:8:0;;;;;;;16669:9;16626:52;16623:258;;;16712:13;;16702:6;:23;;16694:67;;;;-1:-1:-1;;;16694:67:0;;18415:2:1;16694:67:0;;;18397:21:1;18454:2;18434:18;;;18427:30;18493:33;18473:18;;;18466:61;18544:18;;16694:67:0;18213:355:1;16694:67:0;16810:18;;16800:6;16784:13;16794:2;16784:9;:13::i;:::-;:22;;;;:::i;:::-;:44;;16776:93;;;;-1:-1:-1;;;16776:93:0;;;;;;;:::i;:::-;16912:4;;-1:-1:-1;;;;;16904:12:0;;;16912:4;;16904:12;;;;:39;;-1:-1:-1;;;;;;16921:22:0;;;;;;:18;:22;;;;;;;;16920:23;16904:39;:68;;;;-1:-1:-1;;;;;;16948:24:0;;;;;;:18;:24;;;;;;;;16947:25;16904:68;:81;;;;-1:-1:-1;16977:8:0;;;;;;;16976:9;16904:81;16901:585;;;17019:14;;17009:6;:24;;17001:69;;;;-1:-1:-1;;;17001:69:0;;14669:2:1;17001:69:0;;;14651:21:1;;;14688:18;;;14681:30;14747:34;14727:18;;;14720:62;14799:18;;17001:69:0;14467:356:1;17001:69:0;17094:4;;-1:-1:-1;;;;;17088:10:0;;;17094:4;;17088:10;17085:142;;17152:18;;17142:6;17126:13;17136:2;17126:9;:13::i;:::-;:22;;;;:::i;:::-;:44;;17118:93;;;;-1:-1:-1;;;17118:93:0;;;;;;;:::i;:::-;17244:15;;;;17241:234;;;-1:-1:-1;;;;;17318:15:0;;17279:18;17318:15;;;:9;:15;;;;;;17300:33;;:15;:33;:::i;:::-;17279:54;;17374:12;;17360:10;:26;;17352:55;;;;-1:-1:-1;;;17352:55:0;;16210:2:1;17352:55:0;;;16192:21:1;16249:2;16229:18;;;16222:30;-1:-1:-1;;;16268:18:1;;;16261:46;16324:18;;17352:55:0;16008:340:1;17352:55:0;-1:-1:-1;;;;;;17426:15:0;;;;;;:9;:15;;;;;17444;17426:33;;17241:234;17553:14;4254:1;17553:2;:14;:::i;:::-;17547:20;;:2;:20;:::i;:::-;17537:6;17519:15;17529:4;17519:9;:15::i;:::-;:24;;;;:::i;:::-;:48;17516:111;;17611:15;17621:4;17611:9;:15::i;:::-;17602:6;17585:14;4254:1;17585:2;:14;:::i;:::-;17580:19;;:2;:19;:::i;:::-;:28;;;;:::i;:::-;:46;;;;:::i;:::-;17569:58;;;;:::i;:::-;;;17516:111;17657:12;17700:18;;17672:24;17690:4;17672:9;:24::i;:::-;17733:8;;-1:-1:-1;;17672:46:0;;-1:-1:-1;17733:8:0;;;;;17732:9;:24;;;;-1:-1:-1;17745:11:0;;;;;;;17732:24;:35;;;;;17760:7;17732:35;:51;;;;-1:-1:-1;17779:4:0;;-1:-1:-1;;;;;17771:12:0;;;17779:4;;17771:12;;17732:51;:80;;;;-1:-1:-1;;;;;;17788:24:0;;;;;;:18;:24;;;;;;;;17787:25;17732:80;:107;;;;-1:-1:-1;;;;;;17817:22:0;;;;;;:18;:22;;;;;;;;17816:23;17732:107;17729:261;;;17864:4;;-1:-1:-1;;;;;17858:10:0;;;17864:4;;17858:10;17855:123;;;17886:18;;17871:45;;;;;;;;17906:9;17871:45;;;;;;;;;;;;;;;;;;;;;;;;;;17886:18;17871:14;:45::i;:::-;17855:123;;;17952:18;;17937:41;;;;;;;;17972:5;17937:41;;;;;;;;;;;;;;;;;;;;;;;;;;17952:18;17937:14;:41::i;:::-;18063:8;;18015:4;;18000:12;;18063:8;;;;;;:36;;-1:-1:-1;;;;;;18075:24:0;;;;;;:18;:24;;;;;;;;18063:36;:62;;;-1:-1:-1;;;;;;18103:22:0;;;;;;:18;:22;;;;;;;;18063:62;18060:82;;;18137:5;18127:15;;18060:82;18162:4;;-1:-1:-1;;;;;18156:10:0;;;18162:4;;18156:10;18153:28;;;-1:-1:-1;18177:4:0;18153:28;18194:49;18209:4;18215:2;18219:6;18227:7;18236:6;18194:14;:49::i;:::-;15847:2404;;;15778:2473;;;:::o;14721:158::-;14762:7;14783:15;14800;14819:19;:17;:19::i;:::-;14782:56;;-1:-1:-1;14782:56:0;-1:-1:-1;14856:15:0;14782:56;;14856:15;:::i;:::-;14849:22;;;;14721:158;:::o;12680:467::-;12766:36;;:::i;:::-;12827:37;12839:7;12848;12857:6;12827:11;:37::i;:::-;12815:49;;12984:53;12997:9;13008:7;13017;13026:10;:8;:10::i;:::-;12984:12;:53::i;:::-;12960:20;;;12875:162;12938:20;;;12875:162;12922:14;;;12875:162;12895:25;;;12875:162;;;13068:44;12876:9;13092:7;13101:10;:8;:10::i;:::-;13068:12;:44::i;:::-;13049:15;;;13048:64;12680:467;;;;;:::o;18334:1111::-;18458:28;18489:36;18500:7;18509;18518:6;18489:10;:36::i;:::-;-1:-1:-1;;;;;18542:19:0;;;;;;:11;:19;;;;;;18458:67;;-1:-1:-1;18542:19:0;;18538:115;;;-1:-1:-1;;;;;18618:15:0;;;;;;:7;:15;;;;;;:23;;18634:7;;18618:23;:::i;:::-;-1:-1:-1;;;;;18600:15:0;;;;;;:7;:15;;;;;:41;18538:115;-1:-1:-1;;;;;18667:22:0;;;;;;:11;:22;;;;;;;;18663:130;;;18764:17;;;;-1:-1:-1;;;;;18745:18:0;;;;;;:7;:18;;;;;;:36;;18764:17;18745:36;:::i;:::-;-1:-1:-1;;;;;18724:18:0;;;;;;:7;:18;;;;;:57;18663:130;18839:9;;-1:-1:-1;;;;;18823:15:0;;18839:9;18823:15;;;:7;:15;;;;;;:25;;18839:9;18823:25;:::i;:::-;-1:-1:-1;;;;;18805:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;18899:17;;;18880:18;;;;;;;;;;:36;;18899:17;18880:36;:::i;:::-;-1:-1:-1;;;;;18859:18:0;;;;;;:7;:18;;;;;;;:57;;;;18940:6;;;:10;;;:24;;;18963:1;18954;:6;;;:10;18940:24;18937:56;;;18966:27;18978:1;:6;;;18986:1;:6;;;18966:11;:27::i;:::-;19022:1;19007;:12;;;:16;:36;;;;19042:1;19027;:12;;;:16;19007:36;19004:199;;;19060:41;19075:1;:12;;;19088:1;:12;;;19060:14;:41::i;:::-;19146:4;-1:-1:-1;;;;;19121:70:0;19130:6;-1:-1:-1;;;;;19121:70:0;;19183:1;:7;;;19168:1;:12;;;19153:1;:12;;;:27;;;;:::i;:::-;:37;;;;:::i;:::-;19121:70;;19125:25:1;;;19113:2;19098:18;19121:70:0;;;;;;;19004:199;19231:1;19216;:12;;;:16;:36;;;;19251:1;19236;:12;;;:16;19216:36;19213:83;;;19254:42;19269:1;:12;;;19283:1;:12;;;19254:14;:42::i;:::-;19320:1;19310;:7;;;:11;:26;;;;19335:1;19325;:7;;;:11;19310:26;19307:58;;;19338:27;19348:1;:7;;;19357:1;:7;;;19338:9;:27::i;:::-;19398:9;-1:-1:-1;;;;;19381:46:0;19390:6;-1:-1:-1;;;;;19381:46:0;;19409:1;:17;;;19381:46;;;;19125:25:1;;19113:2;19098:18;;18979:177;19381:46:0;;;;;;;;18445:1000;18334:1111;;;;;:::o;1963:173::-;2019:16;2038:6;;-1:-1:-1;;;;;2055:17:0;;;-1:-1:-1;;;;;;2055:17:0;;;;;;2088:40;;2038:6;;;;;;;2088:40;;2019:16;2088:40;2008:128;1963:173;:::o;19453:1148::-;5857:8;:15;;-1:-1:-1;;5857:15:0;;;;;19608:9:::1;::::0;::::1;::::0;19591:14:::1;::::0;::::1;::::0;19574::::1;::::0;::::1;::::0;5857:15;;19608:9;19574:31:::1;::::0;::::1;:::i;:::-;:43;;;;:::i;:::-;19573:49;::::0;19621:1:::1;19573:49;:::i;:::-;19551:71;;19633:32;19703:11;19686:4;:14;;;19668:15;:32;;;;:::i;:::-;:46;;;;:::i;:::-;19633:81:::0;-1:-1:-1;19725:14:0::1;19742:42;19633:81:::0;19742:15;:42:::1;:::i;:::-;19725:59:::0;-1:-1:-1;19822:21:0::1;19856:24;19725:59:::0;19856:16:::1;:24::i;:::-;19893:20;19916:38;19940:14:::0;19916:21:::1;:38;:::i;:::-;19893:61;;19965:19;20016:4;:14;;;20002:11;:28;;;;:::i;:::-;19986:45;::::0;:12;:45:::1;:::i;:::-;19965:66;;20042:29;20088:4;:14;;;20074:11;:28;;;;:::i;:::-;20042:60:::0;-1:-1:-1;20118:25:0;;20115:158:::1;;20200:61;20213:24;20239:21;20200:12;:61::i;:::-;20326:14;::::0;::::1;::::0;20285:20:::1;::::0;20308:15:::1;:11:::0;20322:1:::1;20308:15;:::i;:::-;:32;;;;:::i;:::-;20285:55:::0;-1:-1:-1;20354:16:0;;20351:96:::1;;20394:16;::::0;20386:49:::1;::::0;-1:-1:-1;;;;;20394:16:0::1;20422:12:::0;20386:35:::1;:49::i;:::-;20493:9;::::0;::::1;::::0;20457:15:::1;::::0;20475::::1;:11:::0;20489:1:::1;20475:15;:::i;:::-;:27;;;;:::i;:::-;20457:45:::0;-1:-1:-1;20516:11:0;;20513:81:::1;;20551:11;::::0;20543:39:::1;::::0;-1:-1:-1;;;;;20551:11:0::1;20574:7:::0;20543:30:::1;:39::i;:::-;-1:-1:-1::0;;5895:8:0;:16;;-1:-1:-1;;5895:16:0;;;-1:-1:-1;;;;;;;;;19453:1148:0:o;14887:540::-;14984:7;;15020;;14937;;;;;15038:279;15062:9;:16;15058:20;;15038:279;;;15128:7;15104;:21;15112:9;15122:1;15112:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;15112:12:0;15104:21;;;;;;;;;;;;;:31;;:66;;;15163:7;15139;:21;15147:9;15157:1;15147:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;15147:12:0;15139:21;;;;;;;;;;;;;:31;15104:66;15100:97;;;15180:7;;15189;;15172:25;;;;;;;14887:540;;:::o;15100:97::-;15230:7;:21;15238:9;15248:1;15238:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;15238:12:0;15230:21;;;;;;;;;;;;;15222:29;;:7;:29;:::i;:::-;15212:39;;15284:7;:21;15292:9;15302:1;15292:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;15292:12:0;15284:21;;;;;;;;;;;;;15276:29;;:7;:29;:::i;:::-;15266:39;-1:-1:-1;15080:3:0;;;;:::i;:::-;;;;15038:279;;;;15349:7;;15341;;:15;;;;:::i;:::-;15331:7;:25;15327:56;;;15366:7;;15375;;15358:25;;;;;;14887:540;;:::o;15327:56::-;15402:7;;15411;;-1:-1:-1;14887:540:0;-1:-1:-1;14887:540:0:o;13155:611::-;13242:28;;:::i;:::-;13289:7;13285:86;;13311:17;;;:27;;;13351:8;;13285:86;13381:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13381:17:0;13412:6;13409:55;;;-1:-1:-1;13420:16:0;;;;;;;;13427:9;13420:16;;;;;;;;;;;;;;;;;;;;;;;;13409:55;;;-1:-1:-1;13452:12:0;;;;;;;;13459:5;13452:12;;;;;;;;;;;;;;;;;;;;;;;;13409:55;13502:8;;13511:3;;13494:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;13485:6;;;:29;13548:14;;;;13563:3;;13540:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;13525:12;;;:41;13600:14;;;;13615:3;;13592:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;13577:12;;;:41;13647:9;;;;13657:3;;13639:17;;:7;:17;:::i;:::-;:21;;;;:::i;:::-;13629:7;;;:31;;;13719:12;;;;13706;;;;13699:6;;;;13691:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:40;;;;:::i;:::-;:48;;;;:::i;:::-;13671:17;;;:68;-1:-1:-1;13155:611:0;;;;;:::o;13774:671::-;13900:15;;;;;14015:19;14023:11;14015:7;:19;:::i;:::-;14005:29;;14051:7;14047:69;;-1:-1:-1;14080:7:0;;-1:-1:-1;14098:1:0;;-1:-1:-1;14098:1:0;;-1:-1:-1;14098:1:0;14073:31;;14047:69;14142:11;14135:1;:6;;;:18;;;;:::i;:::-;14128:25;;14190:11;14177:1;:12;;;:24;;;;:::i;:::-;14164:37;;14238:11;14225:1;:12;;;:24;;;;:::i;:::-;14212:37;;14260:13;14284:11;14276:1;:7;;;:19;;;;:::i;:::-;14260:35;-1:-1:-1;14260:35:0;14349:10;14338;14325:12;14333:4;14325:7;:12;:::i;:::-;:23;;;;:::i;:::-;:34;;;;:::i;:::-;:40;;;;:::i;:::-;14306:59;;14376:61;13774:671;;;;;;;;;;:::o;14457:256::-;14566:13;14598:7;14594:47;;-1:-1:-1;14627:1:0;14620:9;;14594:47;14669:11;14661:1;:7;;;:19;;;;:::i;:::-;14653:27;14457:256;-1:-1:-1;;;;14457:256:0:o;11696:123::-;11774:4;11764:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;11789:11:0;:22;;11807:4;;11789:11;:15;;:22;;11807:4;;11789:22;:::i;:::-;;;;-1:-1:-1;;;;11696:123:0:o;11827:284::-;11934:10;11910:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;11980:4:0;11960:26;;;;:11;:26;;;;;;;;11957:101;;;12028:4;12012:22;;;;:7;:22;;;;;:34;;12036:10;;12012:22;:34;;12036:10;;12012:34;:::i;:::-;;;;-1:-1:-1;;11957:101:0;12084:4;12068:22;;;;:7;:22;;;;;:35;;12093:10;;12068:22;:35;;12093:10;;12068:35;:::i;12119:284::-;12226:10;12202:11;:21;;;:34;;;;;;;:::i;12415:249::-;12502:5;12483:11;:16;;;:24;;;;;;;:::i;21112:562::-;21262:16;;;21276:1;21262:16;;;;;;;;21238:21;;21262:16;;;;;;;;;;-1:-1:-1;21262:16:0;21238:40;;21307:4;21289;21294:1;21289:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21289:23:0;;;-1:-1:-1;;;;;21289:23:0;;;;;21333:6;;;;;;;;;-1:-1:-1;;;;;21333:6:0;-1:-1:-1;;;;;21333:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21323:4;21328:1;21323:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21323:23:0;;;:7;;;;;;;;;:23;21391:6;;21359:53;;21376:4;;21391:6;;;;21400:11;21359:8;:53::i;:::-;21451:6;;:215;;-1:-1:-1;;;21451:215:0;;:6;;;;-1:-1:-1;;;;;21451:6:0;;:57;;:215;;21523:11;;21549:1;;21593:4;;21620;;21640:15;;21451:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20609:495;20789:6;;20757:53;;20774:4;;20789:6;;;-1:-1:-1;;;;;20789:6:0;20798:11;20757:8;:53::i;:::-;20853:6;;-1:-1:-1;;;;;20853:6:0;;;;;:22;20883:9;20916:4;20936:11;20962:1;;21048:7;1484;1511:6;-1:-1:-1;;;;;1511:6:0;;1438:87;21048:7;20853:243;;;;;;-1:-1:-1;;;;;;20853:243:0;;;-1:-1:-1;;;;;7791:15:1;;;20853:243:0;;;7773:34:1;7823:18;;;7816:34;;;;7866:18;;;7859:34;;;;7909:18;;;7902:34;7973:15;;;7952:19;;;7945:44;21070:15:0;8005:19:1;;;7998:35;7707:19;;20853:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20609:495;;:::o;2906:317::-;3021:6;2996:21;:31;;2988:73;;;;-1:-1:-1;;;2988:73:0;;13598:2:1;2988:73:0;;;13580:21:1;13637:2;13617:18;;;13610:30;13676:31;13656:18;;;13649:59;13725:18;;2988:73:0;13396:353:1;2988:73:0;3075:12;3093:9;-1:-1:-1;;;;;3093:14:0;3115:6;3093:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3074:52;;;3145:7;3137:78;;;;-1:-1:-1;;;3137:78:0;;12819:2:1;3137:78:0;;;12801:21:1;12858:2;12838:18;;;12831:30;12897:34;12877:18;;;12870:62;12968:28;12948:18;;;12941:56;13014:19;;3137:78:0;12617:422:1;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:748:1:-;68:5;121:3;114:4;106:6;102:17;98:27;88:55;;139:1;136;129:12;88:55;175:6;162:20;201:4;225:60;241:43;281:2;241:43;:::i;:::-;225:60;:::i;:::-;307:3;331:2;326:3;319:15;359:2;354:3;350:12;343:19;;394:2;386:6;382:15;446:3;441:2;435;432:1;428:10;420:6;416:23;412:32;409:41;406:61;;;463:1;460;453:12;406:61;485:1;495:238;509:2;506:1;503:9;495:238;;;580:3;567:17;597:31;622:5;597:31;:::i;:::-;641:18;;679:12;;;;711;;;;527:1;520:9;495:238;;;-1:-1:-1;751:5:1;;14:748;-1:-1:-1;;;;;;;14:748:1:o;767:247::-;826:6;879:2;867:9;858:7;854:23;850:32;847:52;;;895:1;892;885:12;847:52;934:9;921:23;953:31;978:5;953:31;:::i;1019:251::-;1089:6;1142:2;1130:9;1121:7;1117:23;1113:32;1110:52;;;1158:1;1155;1148:12;1110:52;1190:9;1184:16;1209:31;1234:5;1209:31;:::i;1275:388::-;1343:6;1351;1404:2;1392:9;1383:7;1379:23;1375:32;1372:52;;;1420:1;1417;1410:12;1372:52;1459:9;1446:23;1478:31;1503:5;1478:31;:::i;:::-;1528:5;-1:-1:-1;1585:2:1;1570:18;;1557:32;1598:33;1557:32;1598:33;:::i;:::-;1650:7;1640:17;;;1275:388;;;;;:::o;1668:456::-;1745:6;1753;1761;1814:2;1802:9;1793:7;1789:23;1785:32;1782:52;;;1830:1;1827;1820:12;1782:52;1869:9;1856:23;1888:31;1913:5;1888:31;:::i;:::-;1938:5;-1:-1:-1;1995:2:1;1980:18;;1967:32;2008:33;1967:32;2008:33;:::i;:::-;1668:456;;2060:7;;-1:-1:-1;;;2114:2:1;2099:18;;;;2086:32;;1668:456::o;2129:382::-;2194:6;2202;2255:2;2243:9;2234:7;2230:23;2226:32;2223:52;;;2271:1;2268;2261:12;2223:52;2310:9;2297:23;2329:31;2354:5;2329:31;:::i;:::-;2379:5;-1:-1:-1;2436:2:1;2421:18;;2408:32;2449:30;2408:32;2449:30;:::i;2516:315::-;2584:6;2592;2645:2;2633:9;2624:7;2620:23;2616:32;2613:52;;;2661:1;2658;2651:12;2613:52;2700:9;2687:23;2719:31;2744:5;2719:31;:::i;:::-;2769:5;2821:2;2806:18;;;;2793:32;;-1:-1:-1;;;2516:315:1:o;2836:1149::-;2954:6;2962;3015:2;3003:9;2994:7;2990:23;2986:32;2983:52;;;3031:1;3028;3021:12;2983:52;3071:9;3058:23;3100:18;3141:2;3133:6;3130:14;3127:34;;;3157:1;3154;3147:12;3127:34;3180:61;3233:7;3224:6;3213:9;3209:22;3180:61;:::i;:::-;3170:71;;3260:2;3250:12;;3315:2;3304:9;3300:18;3287:32;3344:2;3334:8;3331:16;3328:36;;;3360:1;3357;3350:12;3328:36;3383:24;;;-1:-1:-1;3438:4:1;3430:13;;3426:27;-1:-1:-1;3416:55:1;;3467:1;3464;3457:12;3416:55;3503:2;3490:16;3526:60;3542:43;3582:2;3542:43;:::i;3526:60::-;3608:3;3632:2;3627:3;3620:15;3660:2;3655:3;3651:12;3644:19;;3691:2;3687;3683:11;3739:7;3734:2;3728;3725:1;3721:10;3717:2;3713:19;3709:28;3706:41;3703:61;;;3760:1;3757;3750:12;3703:61;3782:1;3773:10;;3792:163;3806:2;3803:1;3800:9;3792:163;;;3863:17;;3851:30;;3824:1;3817:9;;;;;3901:12;;;;3933;;3792:163;;;3796:3;3974:5;3964:15;;;;;;;2836:1149;;;;;:::o;3990:477::-;4080:6;4088;4141:2;4129:9;4120:7;4116:23;4112:32;4109:52;;;4157:1;4154;4147:12;4109:52;4197:9;4184:23;4230:18;4222:6;4219:30;4216:50;;;4262:1;4259;4252:12;4216:50;4285:61;4338:7;4329:6;4318:9;4314:22;4285:61;:::i;:::-;4275:71;;;4396:2;4385:9;4381:18;4368:32;4409:28;4431:5;4409:28;:::i;4472:241::-;4528:6;4581:2;4569:9;4560:7;4556:23;4552:32;4549:52;;;4597:1;4594;4587:12;4549:52;4636:9;4623:23;4655:28;4677:5;4655:28;:::i;4718:245::-;4785:6;4838:2;4826:9;4817:7;4813:23;4809:32;4806:52;;;4854:1;4851;4844:12;4806:52;4886:9;4880:16;4905:28;4927:5;4905:28;:::i;4968:309::-;5033:6;5041;5094:2;5082:9;5073:7;5069:23;5065:32;5062:52;;;5110:1;5107;5100:12;5062:52;5149:9;5136:23;5168:28;5190:5;5168:28;:::i;5282:180::-;5341:6;5394:2;5382:9;5373:7;5369:23;5365:32;5362:52;;;5410:1;5407;5400:12;5362:52;-1:-1:-1;5433:23:1;;5282:180;-1:-1:-1;5282:180:1:o;5467:309::-;5532:6;5540;5593:2;5581:9;5572:7;5568:23;5564:32;5561:52;;;5609:1;5606;5599:12;5561:52;5645:9;5632:23;5622:33;;5705:2;5694:9;5690:18;5677:32;5718:28;5740:5;5718:28;:::i;5781:248::-;5849:6;5857;5910:2;5898:9;5889:7;5885:23;5881:32;5878:52;;;5926:1;5923;5916:12;5878:52;-1:-1:-1;;5949:23:1;;;6019:2;6004:18;;;5991:32;;-1:-1:-1;5781:248:1:o;6034:306::-;6122:6;6130;6138;6191:2;6179:9;6170:7;6166:23;6162:32;6159:52;;;6207:1;6204;6197:12;6159:52;6236:9;6230:16;6220:26;;6286:2;6275:9;6271:18;6265:25;6255:35;;6330:2;6319:9;6315:18;6309:25;6299:35;;6034:306;;;;;:::o;6345:385::-;6431:6;6439;6447;6455;6508:3;6496:9;6487:7;6483:23;6479:33;6476:53;;;6525:1;6522;6515:12;6476:53;-1:-1:-1;;6548:23:1;;;6618:2;6603:18;;6590:32;;-1:-1:-1;6669:2:1;6654:18;;6641:32;;6720:2;6705:18;6692:32;;-1:-1:-1;6345:385:1;-1:-1:-1;6345:385:1:o;8459:597::-;8571:4;8600:2;8629;8618:9;8611:21;8661:6;8655:13;8704:6;8699:2;8688:9;8684:18;8677:34;8729:1;8739:140;8753:6;8750:1;8747:13;8739:140;;;8848:14;;;8844:23;;8838:30;8814:17;;;8833:2;8810:26;8803:66;8768:10;;8739:140;;;8897:6;8894:1;8891:13;8888:91;;;8967:1;8962:2;8953:6;8942:9;8938:22;8934:31;8927:42;8888:91;-1:-1:-1;9040:2:1;9019:15;-1:-1:-1;;9015:29:1;9000:45;;;;9047:2;8996:54;;8459:597;-1:-1:-1;;;8459:597:1:o;11807:400::-;12009:2;11991:21;;;12048:2;12028:18;;;12021:30;12087:34;12082:2;12067:18;;12060:62;-1:-1:-1;;;12153:2:1;12138:18;;12131:34;12197:3;12182:19;;11807:400::o;15237:356::-;15439:2;15421:21;;;15458:18;;;15451:30;15517:34;15512:2;15497:18;;15490:62;15584:2;15569:18;;15237:356::o;17519:347::-;17721:2;17703:21;;;17760:2;17740:18;;;17733:30;17799:25;17794:2;17779:18;;17772:53;17857:2;17842:18;;17519:347::o;19161:980::-;19423:4;19471:3;19460:9;19456:19;19502:6;19491:9;19484:25;19528:2;19566:6;19561:2;19550:9;19546:18;19539:34;19609:3;19604:2;19593:9;19589:18;19582:31;19633:6;19668;19662:13;19699:6;19691;19684:22;19737:3;19726:9;19722:19;19715:26;;19776:2;19768:6;19764:15;19750:29;;19797:1;19807:195;19821:6;19818:1;19815:13;19807:195;;;19886:13;;-1:-1:-1;;;;;19882:39:1;19870:52;;19977:15;;;;19942:12;;;;19918:1;19836:9;19807:195;;;-1:-1:-1;;;;;;;20058:32:1;;;;20053:2;20038:18;;20031:60;-1:-1:-1;;;20122:3:1;20107:19;20100:35;20019:3;19161:980;-1:-1:-1;;;19161:980:1:o;20731:275::-;20802:2;20796:9;20867:2;20848:13;;-1:-1:-1;;20844:27:1;20832:40;;20902:18;20887:34;;20923:22;;;20884:62;20881:88;;;20949:18;;:::i;:::-;20985:2;20978:22;20731:275;;-1:-1:-1;20731:275:1:o;21011:183::-;21071:4;21104:18;21096:6;21093:30;21090:56;;;21126:18;;:::i;:::-;-1:-1:-1;21171:1:1;21167:14;21183:4;21163:25;;21011:183::o;21199:128::-;21239:3;21270:1;21266:6;21263:1;21260:13;21257:39;;;21276:18;;:::i;:::-;-1:-1:-1;21312:9:1;;21199:128::o;21332:217::-;21372:1;21398;21388:132;;21442:10;21437:3;21433:20;21430:1;21423:31;21477:4;21474:1;21467:15;21505:4;21502:1;21495:15;21388:132;-1:-1:-1;21534:9:1;;21332:217::o;21554:422::-;21643:1;21686:5;21643:1;21700:270;21721:7;21711:8;21708:21;21700:270;;;21780:4;21776:1;21772:6;21768:17;21762:4;21759:27;21756:53;;;21789:18;;:::i;:::-;21839:7;21829:8;21825:22;21822:55;;;21859:16;;;;21822:55;21938:22;;;;21898:15;;;;21700:270;;;21704:3;21554:422;;;;;:::o;21981:140::-;22039:5;22068:47;22109:4;22099:8;22095:19;22089:4;22175:5;22205:8;22195:80;;-1:-1:-1;22246:1:1;22260:5;;22195:80;22294:4;22284:76;;-1:-1:-1;22331:1:1;22345:5;;22284:76;22376:4;22394:1;22389:59;;;;22462:1;22457:130;;;;22369:218;;22389:59;22419:1;22410:10;;22433:5;;;22457:130;22494:3;22484:8;22481:17;22478:43;;;22501:18;;:::i;:::-;-1:-1:-1;;22557:1:1;22543:16;;22572:5;;22369:218;;22671:2;22661:8;22658:16;22652:3;22646:4;22643:13;22639:36;22633:2;22623:8;22620:16;22615:2;22609:4;22606:12;22602:35;22599:77;22596:159;;;-1:-1:-1;22708:19:1;;;22740:5;;22596:159;22787:34;22812:8;22806:4;22787:34;:::i;:::-;22857:6;22853:1;22849:6;22845:19;22836:7;22833:32;22830:58;;;22868:18;;:::i;:::-;22906:20;;22126:806;-1:-1:-1;;;22126:806:1:o;22937:168::-;22977:7;23043:1;23039;23035:6;23031:14;23028:1;23025:21;23020:1;23013:9;23006:17;23002:45;22999:71;;;23050:18;;:::i;:::-;-1:-1:-1;23090:9:1;;22937:168::o;23110:125::-;23150:4;23178:1;23175;23172:8;23169:34;;;23183:18;;:::i;:::-;-1:-1:-1;23220:9:1;;23110:125::o;23240:135::-;23279:3;-1:-1:-1;;23300:17:1;;23297:43;;;23320:18;;:::i;:::-;-1:-1:-1;23367:1:1;23356:13;;23240:135::o;23380:127::-;23441:10;23436:3;23432:20;23429:1;23422:31;23472:4;23469:1;23462:15;23496:4;23493:1;23486:15;23512:127;23573:10;23568:3;23564:20;23561:1;23554:31;23604:4;23601:1;23594:15;23628:4;23625:1;23618:15;23644:127;23705:10;23700:3;23696:20;23693:1;23686:31;23736:4;23733:1;23726:15;23760:4;23757:1;23750:15;23776:127;23837:10;23832:3;23828:20;23825:1;23818:31;23868:4;23865:1;23858:15;23892:4;23889:1;23882:15;23908:131;-1:-1:-1;;;;;23983:31:1;;23973:42;;23963:70;;24029:1;24026;24019:12;24044:118;24130:5;24123:13;24116:21;24109:5;24106:32;24096:60;;24152:1;24149;24142:12

Swarm Source

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