ETH Price: $2,381.26 (-1.11%)

Token

BakerFi (BAK)
 

Overview

Max Total Supply

1,000,000,000 BAK

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
9,619,731.475607231160401837 BAK

Value
$0.00
0x80bf13f29683a830994a8080fa8fa426a80e8279
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:
BAK

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-18
*/

/*
Baker Finance is a DeFi All-In-One service that makes it easy and fast to access multiple DeFi protocols by solving Swap, Bridge, and LP supply on a single page.
It improves both the time cost of exploring pools or tokens to invest in and the monetary cost of fees and slippage.

Web: https://bakerfi.pro
Tg: https://t.me/bakerfi_official
X: https://twitter.com/BakerFi_ERC
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;

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 getOwner() external view returns (address);
    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;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!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;
}

interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address lpAddress_);
    function getPair(address tokenA, address tokenB) external view returns (address lpAddress_);
}

contract BAK is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'BakerFi';
    string private constant _symbol = 'BAK';
    uint8 private constant _decimals = 18;
    uint256 private _totalSupply = 10 ** 9 * (10 ** _decimals);
    IUniswapRouter _uniswapRouter;
    address public lpAddress;
    bool private _isTradingActivated = false;
    bool private _feeSwapenabled = true;
    uint256 private _swappedCount;
    bool private _swapping;
    uint256 _buyCount = 1;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _excludedAddress;
    uint256 private _maximumFeeSwap = ( _totalSupply * 3) / 100;
    uint256 private _swapThreshold = ( _totalSupply * 1) / 100000;
    modifier lockSwap {_swapping = true; _; _swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0; 
    uint256 private developmentFee = 100; 
    uint256 private burnFee = 0;
    uint256 private totalFee = 2200; 
    uint256 private sellFee = 2200; 
    uint256 private transferFee = 2200;
    uint256 private denominator = 10000;
    uint256 public maxTxAmount = ( _totalSupply * 250 ) / 10000;
    uint256 public maxBuyAmount = ( _totalSupply * 250 ) / 10000;
    uint256 public maxHoldings = ( _totalSupply * 250 ) / 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0xB4aa586931dF7DAED4b77381588CBbC7DeF2fC66;
    address internal marketing_receiver = 0xB4aa586931dF7DAED4b77381588CBbC7DeF2fC66; 
    address internal liquidity_receiver = 0xB4aa586931dF7DAED4b77381588CBbC7DeF2fC66;

    constructor() Ownable(msg.sender) {
        IUniswapRouter _router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IUniswapFactory(_router.factory()).createPair(address(this), _router.WETH());
        _uniswapRouter = _router; lpAddress = _pair;
        _excludedAddress[liquidity_receiver] = true;
        _excludedAddress[marketing_receiver] = true;
        _excludedAddress[development_receiver] = true;
        _excludedAddress[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }
    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 getOwner() external view override returns (address) { return owner; }
    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 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 _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");
        if(!_excludedAddress[sender] && !_excludedAddress[recipient]){require(_isTradingActivated, "_isTradingActivated");}
        if(!_excludedAddress[sender] && !_excludedAddress[recipient] && recipient != address(lpAddress) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= maxHoldings, "Exceeds maximum wallet amount.");}
        if(sender != lpAddress){require(amount <= maxBuyAmount || _excludedAddress[sender] || _excludedAddress[recipient], "TX Limit Exceeded");}
        require(amount <= maxTxAmount || _excludedAddress[sender] || _excludedAddress[recipient], "TX Limit Exceeded"); 
        if(recipient == lpAddress && !_excludedAddress[sender]){_swappedCount += uint256(1);}
        if(canSwap(sender, recipient, amount)){swapBack(min(balanceOf(address(this)), _maximumFeeSwap)); _swappedCount = uint256(0);}
        if (!_isTradingActivated || !_excludedAddress[sender]) { _balances[sender] = _balances[sender].sub(amount); }
        uint256 amountReceived = shouldCharge(sender, recipient) ? _getFinals(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }
    function updateFeeParams(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator && sellFee <= denominator && transferFee <= denominator, "totalFee and sellFee cannot be more than 100%");
    }
    function canSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _swapThreshold;
        bool aboveThreshold = balanceOf(address(this)) >= _swapThreshold;
        return !_swapping && _feeSwapenabled && _isTradingActivated && aboveMin && !_excludedAddress[sender] && recipient == lpAddress && _swappedCount >= _buyCount && aboveThreshold;
    }
    function shouldCharge(address sender, address recipient) internal view returns (bool) {
        return !_excludedAddress[sender] && !_excludedAddress[recipient];
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(_uniswapRouter), tokenAmount);
        _uniswapRouter.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }
    function swapBack(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(marketing_receiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(development_receiver).transfer(contractBalance);}
    }
    function _getTax(address sender, address recipient) internal view returns (uint256) {
        if(recipient == lpAddress){return sellFee;}
        if(sender == lpAddress){return totalFee;}
        return transferFee;
    }
    function _getFinals(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(_getTax(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(_getTax(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && _getTax(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }
    function min(uint256 a, uint256 b) private pure returns (uint256) {
      return (a > b) ? b : a;
    }
    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();
        _approve(address(this), address(_uniswapRouter), tokenAmount);
        _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }
    function startBaker() external onlyOwner {_isTradingActivated = true;}
    function updateMaxTxLimits(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);
        maxTxAmount = newTx; maxBuyAmount = newTransfer; maxHoldings = 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 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);
    }    
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"","type":"address"}],"name":"_excludedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"lpAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBaker","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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","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":"updateFeeParams","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":"updateMaxTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a620004b0565b6200002290633b9aca00620004c7565b60018181556003805461ffff60a01b1916600160a81b1781556006919091556064916200004f91620004c7565b6200005b9190620004e1565b600a55620186a06001546001620000739190620004c7565b6200007f9190620004e1565b600b555f600c555f600d556064600e555f600f5561089860105561089860115561089860125561271060135561271060015460fa620000bf9190620004c7565b620000cb9190620004e1565b60145561271060015460fa620000e29190620004c7565b620000ee9190620004e1565b60155561271060015460fa620001059190620004c7565b620001119190620004e1565b6016556017805473b4aa586931df7daed4b77381588cbbc7def2fc666001600160a01b031991821681179092556018805482168317905560198054909116909117905534801562000160575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001eb919062000501565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000237573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025d919062000501565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ce919062000501565b600280546001600160a01b038581166001600160a01b03199283161790925560038054848416921691909117905560195481165f908152600960209081526040808320805460ff19908116600190811790925560185486168552828520805482168317905560175490951684528184208054861682179055338085528285208054909616821790955554600783528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000529565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f557815f1904821115620003d957620003d9620003a1565b80851615620003e757918102915b93841c9390800290620003ba565b509250929050565b5f826200040d57506001620004aa565b816200041b57505f620004aa565b81600181146200043457600281146200043f576200045f565b6001915050620004aa565b60ff841115620004535762000453620003a1565b50506001821b620004aa565b5060208310610133831016604e8410600b841016171562000484575081810a620004aa565b620004908383620003b5565b805f1904821115620004a657620004a6620003a1565b0290505b92915050565b5f620004c060ff841683620003fd565b9392505050565b8082028115828204841417620004aa57620004aa620003a1565b5f82620004fc57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000512575f80fd5b81516001600160a01b0381168114620004c0575f80fd5b61180380620005375f395ff3fe608060405260043610610129575f3560e01c80637f9bbc1a116100a85780639b4dc8cc1161006d5780639b4dc8cc1461035d578063a9059cbb1461037c578063ad68dc801461039b578063dd62ed3e146103ba578063e54f4faa146103fe578063f2fde38b14610413575f80fd5b80637f9bbc1a146102aa57806388e765ff146102d8578063893d20e8146102ed5780638c0b5e221461031d57806395d89b4114610332575f80fd5b80632f54bf6e116100ee5780632f54bf6e146101fb578063313ce567146102285780634081d8101461024357806370a0823114610262578063715018a614610296575f80fd5b806306fdde0314610134578063095ea7b3146101755780630d24b285146101a457806318160ddd146101ba57806323b872dd146101dc575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600781526642616b6572466960c81b60208201525b60405161016c91906114c0565b60405180910390f35b348015610180575f80fd5b5061019461018f366004611522565b610432565b604051901515815260200161016c565b3480156101af575f80fd5b506101b8610448565b005b3480156101c5575f80fd5b506101ce61048f565b60405190815260200161016c565b3480156101e7575f80fd5b506101946101f636600461154c565b6104ff565b348015610206575f80fd5b5061019461021536600461158a565b5f546001600160a01b0391821691161490565b348015610233575f80fd5b506040516012815260200161016c565b34801561024e575f80fd5b506101b861025d3660046115a5565b610567565b34801561026d575f80fd5b506101ce61027c36600461158a565b6001600160a01b03165f9081526007602052604090205490565b3480156102a1575f80fd5b506101b8610644565b3480156102b5575f80fd5b506101946102c436600461158a565b60096020525f908152604090205460ff1681565b3480156102e3575f80fd5b506101ce60155481565b3480156102f8575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161016c565b348015610328575f80fd5b506101ce60145481565b34801561033d575f80fd5b5060408051808201909152600381526242414b60e81b602082015261015f565b348015610368575f80fd5b50600354610305906001600160a01b031681565b348015610387575f80fd5b50610194610396366004611522565b6106b1565b3480156103a6575f80fd5b506101b86103b53660046115ec565b6106bd565b3480156103c5575f80fd5b506101ce6103d4366004611615565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610409575f80fd5b506101ce60165481565b34801561041e575f80fd5b506101b861042d36600461158a565b6107f0565b5f61043e33848461086c565b5060015b92915050565b5f546001600160a01b0316331461047a5760405162461bcd60e51b81526004016104719061164c565b60405180910390fd5b6003805460ff60a01b1916600160a01b179055565b60076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5461dead5f9081527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d5460015491926104fa9290916104f4919061098f565b9061098f565b905090565b5f61050b84848461099a565b61055c8433610557856040518060600160405280602881526020016117a6602891396001600160a01b038a165f9081526008602090815260408083203384529091529020549190610ea8565b61086c565b5060015b9392505050565b5f546001600160a01b031633146105905760405162461bcd60e51b81526004016104719061164c565b600c879055600d869055600f859055600e84905560108390556011829055601281905560135483118015906105c9575060135460115411155b80156105d9575060135460125411155b61063b5760405162461bcd60e51b815260206004820152602d60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526c6f7265207468616e203130302560981b6064820152608401610471565b50505050505050565b5f546001600160a01b0316331461066d5760405162461bcd60e51b81526004016104719061164c565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f61043e33848461099a565b5f546001600160a01b031633146106e65760405162461bcd60e51b81526004016104719061164c565b5f61070861271061070286600154610ed390919063ffffffff16565b90610ede565b90505f61072661271061070286600154610ed390919063ffffffff16565b90505f61074461271061070286600154610ed390919063ffffffff16565b60148490556015839055601681905590505f61076f6103e8610702600561076961048f565b90610ed3565b90508084101580156107815750808310155b801561078d5750808210155b61063b5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610471565b5f546001600160a01b031633146108195760405162461bcd60e51b81526004016104719061164c565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166108ce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610471565b6001600160a01b03821661092f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610471565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6105608284611680565b6001600160a01b0383166109fe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610471565b6001600160a01b038216610a605760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610471565b6001600160a01b0383165f9081526009602052604090205460ff16158015610aa057506001600160a01b0382165f9081526009602052604090205460ff16155b15610af457600354600160a01b900460ff16610af45760405162461bcd60e51b815260206004820152601360248201527217da5cd51c98591a5b99d058dd1a5d985d1959606a1b6044820152606401610471565b6001600160a01b0383165f9081526009602052604090205460ff16158015610b3457506001600160a01b0382165f9081526009602052604090205460ff16155b8015610b4e57506003546001600160a01b03838116911614155b8015610b6557506001600160a01b03821661dead14155b15610bdd576016546001600160a01b0383165f90815260076020526040902054610b8f9083610ee9565b1115610bdd5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610471565b6003546001600160a01b03848116911614610c7c5760155481111580610c1a57506001600160a01b0383165f9081526009602052604090205460ff165b80610c3c57506001600160a01b0382165f9081526009602052604090205460ff165b610c7c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610471565b60145481111580610ca457506001600160a01b0383165f9081526009602052604090205460ff165b80610cc657506001600160a01b0382165f9081526009602052604090205460ff165b610d065760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610471565b6003546001600160a01b038381169116148015610d3b57506001600160a01b0383165f9081526009602052604090205460ff16155b15610d5857600160045f828254610d529190611693565b90915550505b610d63838383610ef4565b15610d9157305f90815260076020526040902054610d8c90610d8790600a54610fab565b610fbf565b5f6004555b600354600160a01b900460ff161580610dc257506001600160a01b0383165f9081526009602052604090205460ff16155b15610e02576001600160a01b0383165f90815260076020526040902054610de9908261098f565b6001600160a01b0384165f908152600760205260409020555b5f610e0d848461112f565b610e175781610e22565b610e22848484611173565b6001600160a01b0384165f90815260076020526040902054909150610e479082610ee9565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e9a9085815260200190565b60405180910390a350505050565b5f8184841115610ecb5760405162461bcd60e51b815260040161047191906114c0565b505050900390565b5f61056082846116a6565b5f61056082846116bd565b5f6105608284611693565b600b54305f90815260076020526040812054600554919280851015929110159060ff16158015610f2d5750600354600160a81b900460ff165b8015610f425750600354600160a01b900460ff165b8015610f4b5750815b8015610f6f57506001600160a01b0386165f9081526009602052604090205460ff16155b8015610f8857506003546001600160a01b038681169116145b8015610f98575060065460045410155b8015610fa15750805b9695505050505050565b5f818311610fb95782610560565b50919050565b6005805460ff19166001908117909155600e54600d54600c545f93610ff893600293610769939192610ff2928391610ee9565b90610ee9565b90505f61101482610702600c5486610ed390919063ffffffff16565b90505f611021848361098f565b90504761102d82611275565b5f611038478361098f565b90505f61105a611053600c548861098f90919063ffffffff16565b8390610ede565b90505f611072600c5483610ed390919063ffffffff16565b905080156110845761108486826113c5565b600d545f9061109890610769856002610ed3565b905080156110d9576018546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110d7573d5f803e3d5ffd5b505b478015611119576017546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611117573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526009602052604081205460ff161580156105605750506001600160a01b03165f9081526009602052604090205460ff1615919050565b5f8061117f8585611476565b111561126e575f6111a16111938686611476565b601354610769908690610ede565b305f908152600760205260409020549091506111bd9082610ee9565b305f81815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061120d9085815260200190565b60405180910390a35f600f541180156112305750600f5461122e8686611476565b115b1561125c5761125c3061dead611257600f5461076960135489610ede90919063ffffffff16565b61099a565b611266838261098f565b915050610560565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112a8576112a86116dc565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132391906116f0565b81600181518110611336576113366116dc565b6001600160a01b03928316602091820292909201015260025461135c913091168461086c565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906113949085905f9086903090429060040161170b565b5f604051808303815f87803b1580156113ab575f80fd5b505af11580156113bd573d5f803e3d5ffd5b505050505050565b6002546113dd9030906001600160a01b03168461086c565b60025460195460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561144a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061146f919061177a565b5050505050565b6003545f906001600160a01b03908116908316036114975750601154610442565b6003546001600160a01b03908116908416036114b65750601054610442565b5060125492915050565b5f6020808352835180828501525f5b818110156114eb578581018301518582016040015282016114cf565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461151f575f80fd5b50565b5f8060408385031215611533575f80fd5b823561153e8161150b565b946020939093013593505050565b5f805f6060848603121561155e575f80fd5b83356115698161150b565b925060208401356115798161150b565b929592945050506040919091013590565b5f6020828403121561159a575f80fd5b81356105608161150b565b5f805f805f805f60e0888a0312156115bb575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f805f606084860312156115fe575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611626575f80fd5b82356116318161150b565b915060208301356116418161150b565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156104425761044261166c565b808201808211156104425761044261166c565b80820281158282048414176104425761044261166c565b5f826116d757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611700575f80fd5b81516105608161150b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117595784516001600160a01b031683529383019391830191600101611734565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561178c575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208ff1189c0fc1841eb073a7852ddf56a05c988ce118d20703dbf9af4802781f8c64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610129575f3560e01c80637f9bbc1a116100a85780639b4dc8cc1161006d5780639b4dc8cc1461035d578063a9059cbb1461037c578063ad68dc801461039b578063dd62ed3e146103ba578063e54f4faa146103fe578063f2fde38b14610413575f80fd5b80637f9bbc1a146102aa57806388e765ff146102d8578063893d20e8146102ed5780638c0b5e221461031d57806395d89b4114610332575f80fd5b80632f54bf6e116100ee5780632f54bf6e146101fb578063313ce567146102285780634081d8101461024357806370a0823114610262578063715018a614610296575f80fd5b806306fdde0314610134578063095ea7b3146101755780630d24b285146101a457806318160ddd146101ba57806323b872dd146101dc575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600781526642616b6572466960c81b60208201525b60405161016c91906114c0565b60405180910390f35b348015610180575f80fd5b5061019461018f366004611522565b610432565b604051901515815260200161016c565b3480156101af575f80fd5b506101b8610448565b005b3480156101c5575f80fd5b506101ce61048f565b60405190815260200161016c565b3480156101e7575f80fd5b506101946101f636600461154c565b6104ff565b348015610206575f80fd5b5061019461021536600461158a565b5f546001600160a01b0391821691161490565b348015610233575f80fd5b506040516012815260200161016c565b34801561024e575f80fd5b506101b861025d3660046115a5565b610567565b34801561026d575f80fd5b506101ce61027c36600461158a565b6001600160a01b03165f9081526007602052604090205490565b3480156102a1575f80fd5b506101b8610644565b3480156102b5575f80fd5b506101946102c436600461158a565b60096020525f908152604090205460ff1681565b3480156102e3575f80fd5b506101ce60155481565b3480156102f8575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161016c565b348015610328575f80fd5b506101ce60145481565b34801561033d575f80fd5b5060408051808201909152600381526242414b60e81b602082015261015f565b348015610368575f80fd5b50600354610305906001600160a01b031681565b348015610387575f80fd5b50610194610396366004611522565b6106b1565b3480156103a6575f80fd5b506101b86103b53660046115ec565b6106bd565b3480156103c5575f80fd5b506101ce6103d4366004611615565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610409575f80fd5b506101ce60165481565b34801561041e575f80fd5b506101b861042d36600461158a565b6107f0565b5f61043e33848461086c565b5060015b92915050565b5f546001600160a01b0316331461047a5760405162461bcd60e51b81526004016104719061164c565b60405180910390fd5b6003805460ff60a01b1916600160a01b179055565b60076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5461dead5f9081527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d5460015491926104fa9290916104f4919061098f565b9061098f565b905090565b5f61050b84848461099a565b61055c8433610557856040518060600160405280602881526020016117a6602891396001600160a01b038a165f9081526008602090815260408083203384529091529020549190610ea8565b61086c565b5060015b9392505050565b5f546001600160a01b031633146105905760405162461bcd60e51b81526004016104719061164c565b600c879055600d869055600f859055600e84905560108390556011829055601281905560135483118015906105c9575060135460115411155b80156105d9575060135460125411155b61063b5760405162461bcd60e51b815260206004820152602d60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526c6f7265207468616e203130302560981b6064820152608401610471565b50505050505050565b5f546001600160a01b0316331461066d5760405162461bcd60e51b81526004016104719061164c565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f61043e33848461099a565b5f546001600160a01b031633146106e65760405162461bcd60e51b81526004016104719061164c565b5f61070861271061070286600154610ed390919063ffffffff16565b90610ede565b90505f61072661271061070286600154610ed390919063ffffffff16565b90505f61074461271061070286600154610ed390919063ffffffff16565b60148490556015839055601681905590505f61076f6103e8610702600561076961048f565b90610ed3565b90508084101580156107815750808310155b801561078d5750808210155b61063b5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610471565b5f546001600160a01b031633146108195760405162461bcd60e51b81526004016104719061164c565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166108ce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610471565b6001600160a01b03821661092f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610471565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6105608284611680565b6001600160a01b0383166109fe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610471565b6001600160a01b038216610a605760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610471565b6001600160a01b0383165f9081526009602052604090205460ff16158015610aa057506001600160a01b0382165f9081526009602052604090205460ff16155b15610af457600354600160a01b900460ff16610af45760405162461bcd60e51b815260206004820152601360248201527217da5cd51c98591a5b99d058dd1a5d985d1959606a1b6044820152606401610471565b6001600160a01b0383165f9081526009602052604090205460ff16158015610b3457506001600160a01b0382165f9081526009602052604090205460ff16155b8015610b4e57506003546001600160a01b03838116911614155b8015610b6557506001600160a01b03821661dead14155b15610bdd576016546001600160a01b0383165f90815260076020526040902054610b8f9083610ee9565b1115610bdd5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610471565b6003546001600160a01b03848116911614610c7c5760155481111580610c1a57506001600160a01b0383165f9081526009602052604090205460ff165b80610c3c57506001600160a01b0382165f9081526009602052604090205460ff165b610c7c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610471565b60145481111580610ca457506001600160a01b0383165f9081526009602052604090205460ff165b80610cc657506001600160a01b0382165f9081526009602052604090205460ff165b610d065760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610471565b6003546001600160a01b038381169116148015610d3b57506001600160a01b0383165f9081526009602052604090205460ff16155b15610d5857600160045f828254610d529190611693565b90915550505b610d63838383610ef4565b15610d9157305f90815260076020526040902054610d8c90610d8790600a54610fab565b610fbf565b5f6004555b600354600160a01b900460ff161580610dc257506001600160a01b0383165f9081526009602052604090205460ff16155b15610e02576001600160a01b0383165f90815260076020526040902054610de9908261098f565b6001600160a01b0384165f908152600760205260409020555b5f610e0d848461112f565b610e175781610e22565b610e22848484611173565b6001600160a01b0384165f90815260076020526040902054909150610e479082610ee9565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e9a9085815260200190565b60405180910390a350505050565b5f8184841115610ecb5760405162461bcd60e51b815260040161047191906114c0565b505050900390565b5f61056082846116a6565b5f61056082846116bd565b5f6105608284611693565b600b54305f90815260076020526040812054600554919280851015929110159060ff16158015610f2d5750600354600160a81b900460ff165b8015610f425750600354600160a01b900460ff165b8015610f4b5750815b8015610f6f57506001600160a01b0386165f9081526009602052604090205460ff16155b8015610f8857506003546001600160a01b038681169116145b8015610f98575060065460045410155b8015610fa15750805b9695505050505050565b5f818311610fb95782610560565b50919050565b6005805460ff19166001908117909155600e54600d54600c545f93610ff893600293610769939192610ff2928391610ee9565b90610ee9565b90505f61101482610702600c5486610ed390919063ffffffff16565b90505f611021848361098f565b90504761102d82611275565b5f611038478361098f565b90505f61105a611053600c548861098f90919063ffffffff16565b8390610ede565b90505f611072600c5483610ed390919063ffffffff16565b905080156110845761108486826113c5565b600d545f9061109890610769856002610ed3565b905080156110d9576018546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110d7573d5f803e3d5ffd5b505b478015611119576017546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611117573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526009602052604081205460ff161580156105605750506001600160a01b03165f9081526009602052604090205460ff1615919050565b5f8061117f8585611476565b111561126e575f6111a16111938686611476565b601354610769908690610ede565b305f908152600760205260409020549091506111bd9082610ee9565b305f81815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061120d9085815260200190565b60405180910390a35f600f541180156112305750600f5461122e8686611476565b115b1561125c5761125c3061dead611257600f5461076960135489610ede90919063ffffffff16565b61099a565b611266838261098f565b915050610560565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112a8576112a86116dc565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132391906116f0565b81600181518110611336576113366116dc565b6001600160a01b03928316602091820292909201015260025461135c913091168461086c565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906113949085905f9086903090429060040161170b565b5f604051808303815f87803b1580156113ab575f80fd5b505af11580156113bd573d5f803e3d5ffd5b505050505050565b6002546113dd9030906001600160a01b03168461086c565b60025460195460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561144a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061146f919061177a565b5050505050565b6003545f906001600160a01b03908116908316036114975750601154610442565b6003546001600160a01b03908116908416036114b65750601054610442565b5060125492915050565b5f6020808352835180828501525f5b818110156114eb578581018301518582016040015282016114cf565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461151f575f80fd5b50565b5f8060408385031215611533575f80fd5b823561153e8161150b565b946020939093013593505050565b5f805f6060848603121561155e575f80fd5b83356115698161150b565b925060208401356115798161150b565b929592945050506040919091013590565b5f6020828403121561159a575f80fd5b81356105608161150b565b5f805f805f805f60e0888a0312156115bb575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f805f606084860312156115fe575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611626575f80fd5b82356116318161150b565b915060208301356116418161150b565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156104425761044261166c565b808201808211156104425761044261166c565b80820281158282048414176104425761044261166c565b5f826116d757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611700575f80fd5b81516105608161150b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117595784516001600160a01b031683529383019391830191600101611734565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561178c575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208ff1189c0fc1841eb073a7852ddf56a05c988ce118d20703dbf9af4802781f8c64736f6c63430008150033

Deployed Bytecode Sourcemap

4072:10087:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6454:67;;;;;;;;;;-1:-1:-1;6514:5:0;;;;;;;;;;;;-1:-1:-1;;;6514:5:0;;;;6454:67;;;;;;;:::i;:::-;;;;;;;;7148:133;;;;;;;;;;-1:-1:-1;7148:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7148:133:0;1023:187:1;12839:70:0;;;;;;;;;;;;;:::i;:::-;;7287:132;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;7287:132:0;1215:177:1;13467:309:0;;;;;;;;;;-1:-1:-1;13467:309:0;;;;;:::i;:::-;;:::i;2845:87::-;;;;;;;;;;-1:-1:-1;2845:87:0;;;;;:::i;:::-;2900:4;2925:5;-1:-1:-1;;;;;2914:16:0;;;2925:5;;2914:16;;2845:87;6604:67;;;;;;;;;;-1:-1:-1;6604:67:0;;4273:2;2252:36:1;;2240:2;2225:18;6604:67:0;2110:184:1;8919:493:0;;;;;;;;;;-1:-1:-1;8919:493:0;;;;;:::i;:::-;;:::i;6761:103::-;;;;;;;;;;-1:-1:-1;6761:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6844:18:0;6827:7;6844:18;;;:9;:18;;;;;;;6761:103;3055:106;;;;;;;;;;;;;:::i;4717:49::-;;;;;;;;;;-1:-1:-1;4717:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5355:60;;;;;;;;;;;;;;;;6677:78;;;;;;;;;;-1:-1:-1;6729:7:0;6747:5;-1:-1:-1;;;;;6747:5:0;6677:78;;;-1:-1:-1;;;;;3060:32:1;;;3042:51;;3030:2;3015:18;6677:78:0;2896:203:1;5289:59:0;;;;;;;;;;;;;;;;6527:71;;;;;;;;;;-1:-1:-1;6589:7:0;;;;;;;;;;;;-1:-1:-1;;;6589:7:0;;;;6527:71;;4383:24;;;;;;;;;;-1:-1:-1;4383:24:0;;;;-1:-1:-1;;;;;4383:24:0;;;6870:139;;;;;;;;;;-1:-1:-1;6870:139:0;;;;;:::i;:::-;;:::i;12915:546::-;;;;;;;;;;-1:-1:-1;12915:546:0;;;;;:::i;:::-;;:::i;7015:127::-;;;;;;;;;;-1:-1:-1;7015:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7113:18:0;;;7096:7;7113:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7015:127;5422:59;;;;;;;;;;;;;;;;2938:111;;;;;;;;;;-1:-1:-1;2938:111:0;;;;;:::i;:::-;;:::i;7148:133::-;7223:4;7230:37;7239:10;7251:7;7260:6;7230:8;:37::i;:::-;-1:-1:-1;7275:4:0;7148:133;;;;;:::o;12839:70::-;2900:4;2925:5;-1:-1:-1;;;;;2925:5:0;2812:10;2914:16;2796:38;;;;-1:-1:-1;;;2796:38:0;;;;;;;:::i;:::-;;;;;;;;;12881:19:::1;:26:::0;;-1:-1:-1;;;;12881:26:0::1;-1:-1:-1::0;;;12881:26:0::1;::::0;;12839:70::o;7287:132::-;6844:9;:18;;;;5521:42;7340:7;6844:18;;;;;7357:12;;7340:7;;7357:60;;6844:18;;7357:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;7350:67;;7287:132;:::o;13467:309::-;13565:4;13582:36;13592:6;13600:9;13611:6;13582:9;:36::i;:::-;13629:117;13638:6;13646:10;13658:87;13694:6;13658:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13658:19:0;;;;;;:11;:19;;;;;;;;13678:10;13658:31;;;;;;;;;:87;:35;:87::i;:::-;13629:8;:117::i;:::-;-1:-1:-1;13764:4:0;13467:309;;;;;;:::o;8919:493::-;2900:4;2925:5;-1:-1:-1;;;;;2925:5:0;2812:10;2914:16;2796:38;;;;-1:-1:-1;;;2796:38:0;;;;;;;:::i;:::-;9098:12:::1;:25:::0;;;9125:12:::1;:25:::0;;;9152:7:::1;:15:::0;;;9169:14:::1;:29:::0;;;9200:8:::1;:17:::0;;;9219:7:::1;:15:::0;;;9236:11:::1;:20:::0;;;9287:11:::1;::::0;9275:23;::::1;::::0;::::1;::::0;:49:::1;;;9313:11;;9302:7;;:22;;9275:49;:79;;;;;9343:11;;9328;;:26;;9275:79;9267:137;;;::::0;-1:-1:-1;;;9267:137:0;;4614:2:1;9267:137: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:43;4796:19;;9267:137:0::1;4412:409:1::0;9267:137:0::1;8919:493:::0;;;;;;;:::o;3055:106::-;2900:4;2925:5;-1:-1:-1;;;;;2925:5:0;2812:10;2914:16;2796:38;;;;-1:-1:-1;;;2796:38:0;;;;;;;:::i;:::-;3118:1:::1;3102:18:::0;;-1:-1:-1;;;;;;3102:18:0::1;::::0;;3127:32:::1;::::0;3042:51:1;;;3127:32:0::1;::::0;3030:2:1;3015:18;3127:32:0::1;;;;;;;3055:106::o:0;6870:139::-;6948:4;6955:40;6965:10;6977:9;6988:6;6955:9;:40::i;12915:546::-;2900:4;2925:5;-1:-1:-1;;;;;2925:5:0;2812:10;2914:16;2796:38;;;;-1:-1:-1;;;2796:38:0;;;;;;;:::i;:::-;13018:13:::1;13034:33;13061:5;13034:22;13051:4;13034:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;13018:49;;13069:19;13091:34;13119:5;13091:23;13108:5;13091:12;;:16;;:23;;;;:::i;:34::-;13069:56;;13127:17;13147:36;13177:5;13147:25;13164:7;13147:12;;:16;;:25;;;;:::i;:36::-;13194:11;:19:::0;;;13215:12:::1;:26:::0;;;13243:11:::1;:23:::0;;;13127:56;-1:-1:-1;;13293:30:0::1;13318:4;13293:20;13311:1;13293:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;13277:46;;13351:5;13342;:14;;:38;;;;;13375:5;13360:11;:20;;13342:38;:60;;;;;13397:5;13384:9;:18;;13342:60;13334:119;;;::::0;-1:-1:-1;;;13334:119:0;;5028:2:1;13334:119:0::1;::::0;::::1;5010:21:1::0;5067:2;5047:18;;;5040:30;5106:34;5086:18;;;5079:62;-1:-1:-1;;;5157:18:1;;;5150:44;5211:19;;13334:119:0::1;4826:410:1::0;2938:111:0;2900:4;2925:5;-1:-1:-1;;;;;2925:5:0;2812:10;2914:16;2796:38;;;;-1:-1:-1;;;2796:38:0;;;;;;;:::i;:::-;3004:5:::1;:11:::0;;-1:-1:-1;;;;;;3004:11:0::1;-1:-1:-1::0;;;;;3004:11:0;::::1;::::0;;::::1;::::0;;;3022:25:::1;::::0;3042:51:1;;;3022:25:0::1;::::0;3030:2:1;3015:18;3022:25:0::1;;;;;;;2938:111:::0;:::o;13782:335::-;-1:-1:-1;;;;;13875:19:0;;13867:68;;;;-1:-1:-1;;;13867:68:0;;5659:2:1;13867:68:0;;;5641:21:1;5698:2;5678:18;;;5671:30;5737:34;5717:18;;;5710:62;-1:-1:-1;;;5788:18:1;;;5781:34;5832:19;;13867:68:0;5457:400:1;13867:68:0;-1:-1:-1;;;;;13954:21:0;;13946:68;;;;-1:-1:-1;;;13946:68:0;;6064:2:1;13946:68:0;;;6046:21:1;6103:2;6083:18;;;6076:30;6142:34;6122:18;;;6115:62;-1:-1:-1;;;6193:18:1;;;6186:32;6235:19;;13946:68:0;5862:398:1;13946:68:0;-1:-1:-1;;;;;14025:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14077:32;;1361:25:1;;;14077:32:0;;1334:18:1;14077:32:0;;;;;;;13782:335;;;:::o;582:98::-;640:7;667:5;671:1;667;:5;:::i;7431:1482::-;-1:-1:-1;;;;;7528:20:0;;7520:70;;;;-1:-1:-1;;;7520:70:0;;6732:2:1;7520:70:0;;;6714:21:1;6771:2;6751:18;;;6744:30;6810:34;6790:18;;;6783:62;-1:-1:-1;;;6861:18:1;;;6854:35;6906:19;;7520:70:0;6530:401:1;7520:70:0;-1:-1:-1;;;;;7609:23:0;;7601:71;;;;-1:-1:-1;;;7601:71:0;;7138:2:1;7601:71:0;;;7120:21:1;7177:2;7157:18;;;7150:30;7216:34;7196:18;;;7189:62;-1:-1:-1;;;7267:18:1;;;7260:33;7310:19;;7601:71:0;6936:399:1;7601:71:0;-1:-1:-1;;;;;7687:24:0;;;;;;:16;:24;;;;;;;;7686:25;:57;;;;-1:-1:-1;;;;;;7716:27:0;;;;;;:16;:27;;;;;;;;7715:28;7686:57;7683:115;;;7753:19;;-1:-1:-1;;;7753:19:0;;;;7745:51;;;;-1:-1:-1;;;7745:51:0;;7542:2:1;7745:51:0;;;7524:21:1;7581:2;7561:18;;;7554:30;-1:-1:-1;;;7600:18:1;;;7593:49;7659:18;;7745:51:0;7340:343:1;7745:51:0;-1:-1:-1;;;;;7812:24:0;;;;;;:16;:24;;;;;;;;7811:25;:57;;;;-1:-1:-1;;;;;;7841:27:0;;;;;;:16;:27;;;;;;;;7840:28;7811:57;:92;;;;-1:-1:-1;7893:9:0;;-1:-1:-1;;;;;7872:31:0;;;7893:9;;7872:31;;7811:92;:122;;;;-1:-1:-1;;;;;;7907:26:0;;5521:42;7907:26;;7811:122;7808:231;;;7991:11;;-1:-1:-1;;;;;7954:20:0;;;;;;:9;:20;;;;;;:32;;7979:6;7954:24;:32::i;:::-;7953:49;;7945:92;;;;-1:-1:-1;;;7945:92:0;;7890:2:1;7945:92:0;;;7872:21:1;7929:2;7909:18;;;7902:30;7968:32;7948:18;;;7941:60;8018:18;;7945:92:0;7688:354:1;7945:92:0;8062:9;;-1:-1:-1;;;;;8052:19:0;;;8062:9;;8052:19;8049:137;;8091:12;;8081:6;:22;;:50;;;-1:-1:-1;;;;;;8107:24:0;;;;;;:16;:24;;;;;;;;8081:50;:81;;;-1:-1:-1;;;;;;8135:27:0;;;;;;:16;:27;;;;;;;;8081:81;8073:111;;;;-1:-1:-1;;;8073:111:0;;8249:2:1;8073:111:0;;;8231:21:1;8288:2;8268:18;;;8261:30;-1:-1:-1;;;8307:18:1;;;8300:47;8364:18;;8073:111:0;8047:341:1;8073:111:0;8214:11;;8204:6;:21;;:49;;;-1:-1:-1;;;;;;8229:24:0;;;;;;:16;:24;;;;;;;;8204:49;:80;;;-1:-1:-1;;;;;;8257:27:0;;;;;;:16;:27;;;;;;;;8204:80;8196:110;;;;-1:-1:-1;;;8196:110:0;;8249:2:1;8196:110:0;;;8231:21:1;8288:2;8268:18;;;8261:30;-1:-1:-1;;;8307:18:1;;;8300:47;8364:18;;8196:110:0;8047:341:1;8196:110:0;8334:9;;-1:-1:-1;;;;;8321:22:0;;;8334:9;;8321:22;:51;;;;-1:-1:-1;;;;;;8348:24:0;;;;;;:16;:24;;;;;;;;8347:25;8321:51;8318:85;;;8399:1;8374:13;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;8318:85:0;8416:34;8424:6;8432:9;8443:6;8416:7;:34::i;:::-;8413:125;;;8483:4;6827:7;6844:18;;;:9;:18;;;;;;8452:56;;8461:46;;8491:15;;8461:3;:46::i;:::-;8452:8;:56::i;:::-;8534:1;8510:13;:26;8413:125;8553:19;;-1:-1:-1;;;8553:19:0;;;;8552:20;;:49;;-1:-1:-1;;;;;;8577:24:0;;;;;;:16;:24;;;;;;;;8576:25;8552:49;8548:109;;;-1:-1:-1;;;;;8625:17:0;;;;;;:9;:17;;;;;;:29;;8647:6;8625:21;:29::i;:::-;-1:-1:-1;;;;;8605:17:0;;;;;;:9;:17;;;;;:49;8548:109;8667:22;8692:31;8705:6;8713:9;8692:12;:31::i;:::-;:80;;8766:6;8692:80;;;8726:37;8737:6;8745:9;8756:6;8726:10;:37::i;:::-;-1:-1:-1;;;;;8806:20:0;;;;;;:9;:20;;;;;;8667:105;;-1:-1:-1;8806:40:0;;8667:105;8806:24;:40::i;:::-;-1:-1:-1;;;;;8783:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8862:43;;;;;;;;;;8890:14;1361:25:1;;1349:2;1334:18;;1215:177;8862:43:0;;;;;;;;7509:1404;7431:1482;;;:::o;1006:240::-;1126:7;1187:12;1179:6;;;;1171:29;;;;-1:-1:-1;;;1171:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1222:5:0;;;1006:240::o;688:98::-;746:7;773:5;777:1;773;:5;:::i;794:98::-;852:7;879:5;883:1;879;:5;:::i;476:98::-;534:7;561:5;565:1;561;:5;:::i;9418:416::-;9552:14;;9617:4;9509;6844:18;;;:9;:18;;;;;;9660:9;;9509:4;;9542:24;;;;;-1:-1:-1;;9599:42:0;;9660:9;;9659:10;:29;;;;-1:-1:-1;9673:15:0;;-1:-1:-1;;;9673:15:0;;;;9659:29;:52;;;;-1:-1:-1;9692:19:0;;-1:-1:-1;;;9692:19:0;;;;9659:52;:64;;;;;9715:8;9659:64;:93;;;;-1:-1:-1;;;;;;9728:24:0;;;;;;:16;:24;;;;;;;;9727:25;9659:93;:119;;;;-1:-1:-1;9769:9:0;;-1:-1:-1;;;;;9756:22:0;;;9769:9;;9756:22;9659:119;:149;;;;;9799:9;;9782:13;;:26;;9659:149;:167;;;;;9812:14;9659:167;9652:174;9418:416;-1:-1:-1;;;;;;9418:416:0:o;12264:105::-;12321:7;12351:1;12347;:5;12346:15;;12360:1;12346:15;;;-1:-1:-1;12356:1:0;12264:105;-1:-1:-1;12264:105:0:o;10386:1054::-;4926:9;:16;;-1:-1:-1;;4926:16:0;4938:4;4926:16;;;;;;10514:14:::1;::::0;10496:12:::1;::::0;10472::::1;::::0;4926:9;;10471:66:::1;::::0;10535:1:::1;::::0;10472:57:::1;::::0;10514:14;;10472:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;10471:66::-;10448:89;;10548:32;10583:42;10612:12;10583:24;10594:12;;10583:6;:10;;:24;;;;:::i;:42::-;10548:77:::0;-1:-1:-1;10636:14:0::1;10653:36;:6:::0;10548:77;10653:10:::1;:36::i;:::-;10636:53:::0;-1:-1:-1;10725:21:0::1;10757:24;10636:53:::0;10757:16:::1;:24::i;:::-;10792:20;10815:41;:21;10841:14:::0;10815:25:::1;:41::i;:::-;10792:64;;10867:19;10888:48;10905:30;10922:12;;10905;:16;;:30;;;;:::i;:::-;10888:12:::0;;:16:::1;:48::i;:::-;10867:69;;10947:29;10979;10995:12;;10979:11;:15;;:29;;;;:::i;:::-;10947:61:::0;-1:-1:-1;11022:34:0;;11019:103:::1;;11058:61;11071:24;11097:21;11058:12;:61::i;:::-;11178:12;::::0;11132:20:::1;::::0;11155:36:::1;::::0;:18:::1;:11:::0;11171:1:::1;11155:15;:18::i;:36::-;11132:59:::0;-1:-1:-1;11205:16:0;;11202:73:::1;;11231:18;::::0;11223:50:::1;::::0;-1:-1:-1;;;;;11231:18:0;;::::1;::::0;11223:50;::::1;;;::::0;11260:12;;11231:18:::1;11223:50:::0;11231:18;11223:50;11260:12;11231:18;11223:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11202:73;11311:21;11346:28:::0;;11343:90:::1;;11384:20;::::0;11376:55:::1;::::0;-1:-1:-1;;;;;11384:20:0;;::::1;::::0;11376:55;::::1;;;::::0;11415:15;;11384:20:::1;11376:55:::0;11384:20;11376:55;11415:15;11384:20;11376:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11343:90;-1:-1:-1::0;;4947:9:0;:17;;-1:-1:-1;;4947:17:0;;;-1:-1:-1;;;;;;;;10386:1054:0:o;9840:169::-;-1:-1:-1;;;;;9945:24:0;;9920:4;9945:24;;;:16;:24;;;;;;;;9944:25;:57;;;;-1:-1:-1;;;;;;;9974:27:0;;;;;:16;:27;;;;;;;;9973:28;;9840:169;-1:-1:-1;9840:169:0:o;11677:581::-;11766:7;11818:1;11789:26;11797:6;11805:9;11789:7;:26::i;:::-;:30;11786:450;;;11831:17;11851:55;11879:26;11887:6;11895:9;11879:7;:26::i;:::-;11862:11;;11851:23;;:6;;:10;:23::i;:55::-;11962:4;11944:24;;;;:9;:24;;;;;;11831:75;;-1:-1:-1;11944:39:0;;11831:75;11944:28;:39::i;:::-;11935:4;11917:24;;;;:9;:24;;;;;;;:66;;;;11999:42;;-1:-1:-1;;;;;11999:42:0;;;;;;;12031:9;1361:25:1;;1349:2;1334:18;;1215:177;11999:42:0;;;;;;;;12073:1;12055:7;;:20;:60;;;;;12108:7;;12079:26;12087:6;12095:9;12079:7;:26::i;:::-;:36;12055:60;12052:144;;;12117:77;12135:4;5521:42;12157:36;12185:7;;12157:23;12168:11;;12157:6;:10;;:23;;;;:::i;:36::-;12117:9;:77::i;:::-;12213:21;:6;12224:9;12213:10;:21::i;:::-;12206:28;;;;;11786:450;-1:-1:-1;12244:6:0;11677:581;-1:-1:-1;;11677:581:0:o;12375:458::-;12465:16;;;12479:1;12465:16;;;;;;;;12441:21;;12465:16;;;;;;;;;;-1:-1:-1;12465:16:0;12441:40;;12510:4;12492;12497:1;12492:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12492:23:0;;;:7;;;;;;;;;;:23;;;;12536:14;;:21;;;-1:-1:-1;;;12536:21:0;;;;:14;;;;;:19;;:21;;;;;12492:7;;12536:21;;;;;:14;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12526:4;12531:1;12526:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12526:31:0;;;:7;;;;;;;;;:31;12600:14;;12568:61;;12585:4;;12600:14;12617:11;12568:8;:61::i;:::-;12640:14;;:185;;-1:-1:-1;;;12640:185:0;;-1:-1:-1;;;;;12640:14:0;;;;:65;;:185;;12720:11;;12640:14;;12762:4;;12789;;12809:15;;12640:185;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12430:403;12375:458;:::o;10021:359::-;10134:14;;10102:61;;10119:4;;-1:-1:-1;;;;;10134:14:0;10151:11;10102:8;:61::i;:::-;10174:14;;10323:18;;10174:198;;-1:-1:-1;;;10174:198:0;;10245:4;10174:198;;;10764:34:1;10814:18;;;10807:34;;;10174:14:0;10857:18:1;;;10850:34;;;10900:18;;;10893:34;-1:-1:-1;;;;;10323:18:0;;;10943:19:1;;;10936:44;10356:15:0;10996:19:1;;;10989:35;10174:14:0;;;:30;;10212:9;;10698:19:1;;10174:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10021:359;;:::o;11446:225::-;11557:9;;11521:7;;-1:-1:-1;;;;;11557:9:0;;;11544:22;;;;11541:43;;-1:-1:-1;11575:7:0;;11568:14;;11541:43;11607:9;;-1:-1:-1;;;;;11607:9:0;;;11597:19;;;;11594:41;;-1:-1:-1;11625:8:0;;11618:15;;11594:41;-1:-1:-1;11652:11:0;;11446:225;;;;:::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;2299:592::-;2412:6;2420;2428;2436;2444;2452;2460;2513:3;2501:9;2492:7;2488:23;2484:33;2481:53;;;2530:1;2527;2520:12;2481:53;-1:-1:-1;;2553:23:1;;;2623:2;2608:18;;2595:32;;-1:-1:-1;2674:2:1;2659:18;;2646:32;;2725:2;2710:18;;2697:32;;-1:-1:-1;2776:3:1;2761:19;;2748:33;;-1:-1:-1;2828:3:1;2813:19;;2800:33;;-1:-1:-1;2880:3:1;2865:19;2852:33;;-1:-1:-1;2299:592:1;-1:-1:-1;2299:592:1:o;3104:316::-;3181:6;3189;3197;3250:2;3238:9;3229:7;3225:23;3221:32;3218:52;;;3266:1;3263;3256:12;3218:52;-1:-1:-1;;3289:23:1;;;3359:2;3344:18;;3331:32;;-1:-1:-1;3410:2:1;3395:18;;;3382:32;;3104:316;-1:-1:-1;3104:316: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;6265:127::-;6326:10;6321:3;6317:20;6314:1;6307:31;6357:4;6354:1;6347:15;6381:4;6378:1;6371:15;6397:128;6464:9;;;6485:11;;;6482:37;;;6499:18;;:::i;8393:125::-;8458:9;;;8479:10;;;8476:36;;;8492:18;;:::i;8523:168::-;8596:9;;;8627;;8644:15;;;8638:22;;8624:37;8614:71;;8665:18;;:::i;8696:217::-;8736:1;8762;8752:132;;8806:10;8801:3;8797:20;8794:1;8787:31;8841:4;8838:1;8831:15;8869:4;8866:1;8859:15;8752:132;-1:-1:-1;8898:9:1;;8696:217::o;9050:127::-;9111:10;9106:3;9102:20;9099:1;9092:31;9142:4;9139:1;9132:15;9166:4;9163:1;9156:15;9182:251;9252:6;9305:2;9293:9;9284:7;9280:23;9276:32;9273:52;;;9321:1;9318;9311:12;9273:52;9353:9;9347:16;9372:31;9397:5;9372:31;:::i;9438:980::-;9700:4;9748:3;9737:9;9733:19;9779:6;9768:9;9761:25;9805:2;9843:6;9838:2;9827:9;9823:18;9816:34;9886:3;9881:2;9870:9;9866:18;9859:31;9910:6;9945;9939:13;9976:6;9968;9961:22;10014:3;10003:9;9999:19;9992:26;;10053:2;10045:6;10041:15;10027:29;;10074:1;10084:195;10098:6;10095:1;10092:13;10084:195;;;10163:13;;-1:-1:-1;;;;;10159:39:1;10147:52;;10254:15;;;;10219:12;;;;10195:1;10113:9;10084:195;;;-1:-1:-1;;;;;;;10335:32:1;;;;10330:2;10315:18;;10308:60;-1:-1:-1;;;10399:3:1;10384:19;10377:35;10296:3;9438:980;-1:-1:-1;;;9438:980:1:o;11035:306::-;11123:6;11131;11139;11192:2;11180:9;11171:7;11167:23;11163:32;11160:52;;;11208:1;11205;11198:12;11160:52;11237:9;11231:16;11221:26;;11287:2;11276:9;11272:18;11266:25;11256:35;;11331:2;11320:9;11316:18;11310:25;11300:35;;11035:306;;;;;:::o

Swarm Source

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