ETH Price: $3,418.53 (-0.76%)
Gas: 2 Gwei

Token

Bungee Protocol (BUNGEE)
 

Overview

Max Total Supply

1,000,000,000 BUNGEE

Holders

152

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
376,796,853.569330503 BUNGEE

Value
$0.00
0x13ce24107c2aae8c47895d6df516944f40ef5579
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:
BUNGEE

Compiler Version
v0.8.21+commit.d9974bed

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-13
*/

// SPDX-License-Identifier: MIT

/*
Make the Jump & explore your favorite chains!

Website: https://www.bungeehealth.org
Telegram:  https://t.me/bungee_eth
Twitter: https://twitter.com/bungee_erc20
*/

pragma solidity 0.8.21;

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 renounceOwnership() public onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

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);
}
interface IUniswapFactory{
    function createPair(address tokenA, address tokenB) external returns (address uniPair);
}

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

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

    uint8 private constant _decimals = 9;
    uint256 private _supply = 1000000000 * (10 ** _decimals);

    string private constant _name = unicode"Bungee Protocol";
    string private constant _symbol = unicode"BUNGEE";

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

    IUniswapRouter _uniRouter;
    address public uniPair;
    bool private tradingEnable = false;
    bool private swapEnabled = true;
    uint256 private numOfSwaps;
    bool private isSwapping;
    uint256 numOfSwapsAfter;
    uint256 private _minTaxSwap = ( _supply * 1000 ) / 100000;
    uint256 private _maxSwapFee = ( _supply * 10 ) / 100000;
    
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 100;
    uint256 private burnFee = 0;

    uint256 private buyTax = 1700;
    uint256 private sellTax = 1700;
    uint256 private transferFee = 1700;
    uint256 private denominator = 10000;

    modifier lockSwapTax {isSwapping = true; _; isSwapping = false;}

    address internal devAddy = 0x95b008346c25B9599704720974Fb72B197C538a8; 
    address internal teamAddr = 0x95b008346c25B9599704720974Fb72B197C538a8;
    address internal lpReceiver = 0x95b008346c25B9599704720974Fb72B197C538a8;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;

    uint256 private _maxTxAmount = ( _supply * 340 ) / 10000;
    uint256 private _maxBuyLimit = ( _supply * 340 ) / 10000;
    uint256 private _maxHoldingSize = ( _supply * 340 ) / 10000;

    constructor() Ownable(msg.sender) {
        IUniswapRouter _router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IUniswapFactory(_router.factory()).createPair(address(this), _router.WETH());
        _uniRouter = _router; uniPair = _pair;

        isSpecialAddress[lpReceiver] = true;
        isSpecialAddress[msg.sender] = true;
        isSpecialAddress[teamAddr] = true;
        isSpecialAddress[devAddy] = true;
        _balances[msg.sender] = _supply;
        emit Transfer(address(0), msg.sender, _supply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function 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 startTrading() external onlyOwner {tradingEnable = true;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function totalSupply() public view override returns (uint256) {return _supply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}

    function setContractSwapSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        numOfSwapsAfter = _swapAmount; _minTaxSwap = _supply.mul(_swapThreshold).div(uint256(100000)); 
        _maxSwapFee = _supply.mul(_minTokenAmount).div(uint256(100000));
    }

    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 shouldSwapTax(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _maxSwapFee;
        bool aboveThreshold = balanceOf(address(this)) >= _minTaxSwap;
        return !isSwapping && swapEnabled && tradingEnable && aboveMin && !isSpecialAddress[sender] && recipient == uniPair && numOfSwaps >= numOfSwapsAfter && aboveThreshold;
    }

    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; buyTax = _total; sellTax = _sell; transferFee = _trans;
        require(buyTax <= denominator.div(1) && sellTax <= denominator.div(1) && transferFee <= denominator.div(1), "buyTax and sellTax cannot be more than 20%");
    }

    function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _supply.mul(_buy).div(10000); uint256 newTransfer = _supply.mul(_sell).div(10000); uint256 newWallet = _supply.mul(_wallet).div(10000);
        _maxTxAmount = newTx; _maxBuyLimit = newTransfer; _maxHoldingSize = 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 getFeeByTypes(address sender, address recipient) internal view returns (uint256) {
        if(recipient == uniPair){return sellTax;}
        if(sender == uniPair){return buyTax;}
        return transferFee;
    }

    function swapBackCALock(uint256 tokens) private lockSwapTax {
        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(devAddy).transfer(contractBalance);}
    }

    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 swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniRouter.WETH();
        _approve(address(this), address(_uniRouter), tokenAmount);
        _uniRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

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

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

    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(!isSpecialAddress[sender] && !isSpecialAddress[recipient]){require(tradingEnable, "tradingEnable");}
        if(!isSpecialAddress[sender] && !isSpecialAddress[recipient] && recipient != address(uniPair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxHoldingSize, "Exceeds maximum wallet amount.");}
        if(sender != uniPair){require(amount <= _maxBuyLimit || isSpecialAddress[sender] || isSpecialAddress[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount || isSpecialAddress[sender] || isSpecialAddress[recipient], "TX Limit Exceeded"); 
        if(recipient == uniPair && !isSpecialAddress[sender]){numOfSwaps += uint256(1);}
        if(shouldSwapTax(sender, recipient, amount)){swapBackCALock(_minTaxSwap); numOfSwaps = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !isSpecialAddress[sender] ? getTaxxableAmount(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }
}

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":"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":[{"internalType":"address","name":"","type":"address"}],"name":"isSpecialAddress","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":"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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004b2565b6200002290633b9aca00620004c9565b60018190556006805461ffff60a01b1916600160a81b179055620186a0906200004e906103e8620004c9565b6200005a9190620004e3565b600a55620186a0600154600a620000729190620004c9565b6200007e9190620004e3565b600b555f600c819055600d8190556064600e55600f556106a4601081905560118190556012556127106013819055601480547395b008346c25b9599704720974fb72b197c538a86001600160a01b0319918216811790925560158054821683179055601680549091169091179055600154620000fd90610154620004c9565b620001099190620004e3565b601755612710600154610154620001219190620004c9565b6200012d9190620004e3565b601855612710600154610154620001459190620004c9565b620001519190620004e3565b60195534801562000160575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001eb919062000503565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000237573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025d919062000503565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ce919062000503565b600580546001600160a01b038581166001600160a01b03199283161790925560068054848416921691909117905560165481165f908152600460209081526040808320805460ff199081166001908117909255338086528386208054831684179055601554871686528386208054831684179055601454909616855282852080549091168217905554848452600283528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200052b565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f757815f1904821115620003db57620003db620003a3565b80851615620003e957918102915b93841c9390800290620003bc565b509250929050565b5f826200040f57506001620004ac565b816200041d57505f620004ac565b8160018114620004365760028114620004415762000461565b6001915050620004ac565b60ff841115620004555762000455620003a3565b50506001821b620004ac565b5060208310610133831016604e8410600b841016171562000486575081810a620004ac565b620004928383620003b7565b805f1904821115620004a857620004a8620003a3565b0290505b92915050565b5f620004c260ff841683620003ff565b9392505050565b8082028115828204841417620004ac57620004ac620003a3565b5f82620004fe57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000514575f80fd5b81516001600160a01b0381168114620004c2575f80fd5b61186480620005395f395ff3fe608060405260043610610113575f3560e01c806370a082311161009d5780639d8740cb116100625780639d8740cb1461034b578063a9059cbb1461036a578063cb7f97d714610389578063dd62ed3e146103a8578063f2fde38b146103ec575f80fd5b806370a082311461029a578063715018a6146102ce578063893d20e8146102e257806395d89b41146102fe5780639cc353511461032c575f80fd5b806323b872dd116100e357806323b872dd146101e6578063293230b8146102055780632f54bf6e1461021b578063313ce5671461024857806332972e4614610263575f80fd5b806306fdde031461011e578063095ea7b3146101675780630b13ace21461019657806318160ddd146101c4575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600f81526e109d5b99d95948141c9bdd1bd8dbdb608a1b60208201525b60405161015e9190611521565b60405180910390f35b348015610172575f80fd5b50610186610181366004611583565b61040b565b604051901515815260200161015e565b3480156101a1575f80fd5b506101866101b03660046115ad565b60046020525f908152604090205460ff1681565b3480156101cf575f80fd5b506101d8610421565b60405190815260200161015e565b3480156101f1575f80fd5b506101866102003660046115c8565b610491565b348015610210575f80fd5b506102196104f9565b005b348015610226575f80fd5b506101866102353660046115ad565b5f546001600160a01b0391821691161490565b348015610253575f80fd5b506040516009815260200161015e565b34801561026e575f80fd5b50600654610282906001600160a01b031681565b6040516001600160a01b03909116815260200161015e565b3480156102a5575f80fd5b506101d86102b43660046115ad565b6001600160a01b03165f9081526002602052604090205490565b3480156102d9575f80fd5b50610219610540565b3480156102ed575f80fd5b505f546001600160a01b0316610282565b348015610309575f80fd5b5060408051808201909152600681526542554e47454560d01b6020820152610151565b348015610337575f80fd5b50610219610346366004611606565b6105ad565b348015610356575f80fd5b50610219610365366004611606565b6106e9565b348015610375575f80fd5b50610186610384366004611583565b61074e565b348015610394575f80fd5b506102196103a336600461162f565b61075a565b3480156103b3575f80fd5b506101d86103c2366004611676565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b3480156103f7575f80fd5b506102196104063660046115ad565b61084e565b5f6104173384846108ca565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261048c92909161048691906109ed565b906109ed565b905090565b5f61049d8484846109f8565b6104ee84336104e985604051806060016040528060288152602001611807602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610f38565b6108ca565b5060015b9392505050565b5f546001600160a01b0316331461052b5760405162461bcd60e51b8152600401610522906116ad565b60405180910390fd5b6006805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105695760405162461bcd60e51b8152600401610522906116ad565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146105d65760405162461bcd60e51b8152600401610522906116ad565b5f6105f86127106105f286600154610f6390919063ffffffff16565b90610f6e565b90505f6106166127106105f286600154610f6390919063ffffffff16565b90505f6106346127106105f286600154610f6390919063ffffffff16565b60178490556018839055601981905590505f61065f6103e86105f26005610659610421565b90610f63565b90508084101580156106715750808310155b801561067d5750808210155b6106e05760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610522565b50505050505050565b5f546001600160a01b031633146107125760405162461bcd60e51b8152600401610522906116ad565b600983905560015461072d90620186a0906105f29085610f63565b600a5560015461074690620186a0906105f29084610f63565b600b55505050565b5f6104173384846109f8565b5f546001600160a01b031633146107835760405162461bcd60e51b8152600401610522906116ad565b600c879055600d869055600f859055600e8490556010839055601182905560128190556013546107b4906001610f6e565b601054111580156107d457506013546107ce906001610f6e565b60115411155b80156107ef57506013546107e9906001610f6e565b60125411155b6106e05760405162461bcd60e51b815260206004820152602a60248201527f62757954617820616e642073656c6c5461782063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b6064820152608401610522565b5f546001600160a01b031633146108775760405162461bcd60e51b8152600401610522906116ad565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661092c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610522565b6001600160a01b03821661098d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610522565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6104f282846116e1565b6001600160a01b038316610a5c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610522565b6001600160a01b038216610abe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610522565b6001600160a01b0383165f90815260026020526040902054811115610b3f5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610522565b6001600160a01b0383165f9081526004602052604090205460ff16158015610b7f57506001600160a01b0382165f9081526004602052604090205460ff16155b15610bcd57600654600160a01b900460ff16610bcd5760405162461bcd60e51b815260206004820152600d60248201526c74726164696e67456e61626c6560981b6044820152606401610522565b6001600160a01b0383165f9081526004602052604090205460ff16158015610c0d57506001600160a01b0382165f9081526004602052604090205460ff16155b8015610c2757506006546001600160a01b03838116911614155b8015610c3e57506001600160a01b03821661dead14155b15610cb6576019546001600160a01b0383165f90815260026020526040902054610c689083610f79565b1115610cb65760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610522565b6006546001600160a01b03848116911614610d555760185481111580610cf357506001600160a01b0383165f9081526004602052604090205460ff165b80610d1557506001600160a01b0382165f9081526004602052604090205460ff165b610d555760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610522565b60175481111580610d7d57506001600160a01b0383165f9081526004602052604090205460ff165b80610d9f57506001600160a01b0382165f9081526004602052604090205460ff165b610ddf5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610522565b6006546001600160a01b038381169116148015610e1457506001600160a01b0383165f9081526004602052604090205460ff16155b15610e3157600160075f828254610e2b91906116f4565b90915550505b610e3c838383610f84565b15610e5157610e4c600a5461103c565b5f6007555b6001600160a01b0383165f90815260026020526040902054610e7390826109ed565b6001600160a01b0384165f90815260026020908152604080832093909355600490529081205460ff1615610ea75781610eb2565b610eb28484846111ac565b6001600160a01b0384165f90815260026020526040902054909150610ed79082610f79565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f2a9085815260200190565b60405180910390a350505050565b5f8184841115610f5b5760405162461bcd60e51b81526004016105229190611521565b505050900390565b5f6104f28284611707565b5f6104f2828461171e565b5f6104f282846116f4565b600b54600a54305f9081526002602052604081205460085491938510159211159060ff16158015610fbe5750600654600160a81b900460ff165b8015610fd35750600654600160a01b900460ff165b8015610fdc5750815b801561100057506001600160a01b0386165f9081526004602052604090205460ff16155b801561101957506006546001600160a01b038681169116145b8015611029575060095460075410155b80156110325750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c545f936110759360029361065993919261106f928391610f79565b90610f79565b90505f611091826105f2600c5486610f6390919063ffffffff16565b90505f61109e84836109ed565b9050476110aa826112d6565b5f6110b547836109ed565b90505f6110d76110d0600c54886109ed90919063ffffffff16565b8390610f6e565b90505f6110ef600c5483610f6390919063ffffffff16565b90508015611101576111018682611426565b600d545f9061111590610659856002610f63565b90508015611156576015546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611154573d5f803e3d5ffd5b505b478015611196576014546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611194573d5f803e3d5ffd5b505b50506008805460ff191690555050505050505050565b6001600160a01b0382165f9081526004602052604081205460ff16156111d557506017546104f2565b5f6111e085856114d7565b11156112cf575f6112026111f486866114d7565b601354610659908690610f6e565b305f9081526002602052604090205490915061121e9082610f79565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061126e9085815260200190565b60405180910390a35f600f541180156112915750600f5461128f86866114d7565b115b156112bd576112bd3061dead6112b8600f5461065960135489610f6e90919063ffffffff16565b6109f8565b6112c783826109ed565b9150506104f2565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106113095761130961173d565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611360573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113849190611751565b816001815181106113975761139761173d565b6001600160a01b0392831660209182029290920101526005546113bd91309116846108ca565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906113f59085905f9086903090429060040161176c565b5f604051808303815f87803b15801561140c575f80fd5b505af115801561141e573d5f803e3d5ffd5b505050505050565b60055461143e9030906001600160a01b0316846108ca565b60055460165460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156114ab573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114d091906117db565b5050505050565b6006545f906001600160a01b03908116908316036114f8575060115461041b565b6006546001600160a01b0390811690841603611517575060105461041b565b5060125492915050565b5f6020808352835180828501525f5b8181101561154c57858101830151858201604001528201611530565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611580575f80fd5b50565b5f8060408385031215611594575f80fd5b823561159f8161156c565b946020939093013593505050565b5f602082840312156115bd575f80fd5b81356104f28161156c565b5f805f606084860312156115da575f80fd5b83356115e58161156c565b925060208401356115f58161156c565b929592945050506040919091013590565b5f805f60608486031215611618575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a031215611645575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f8060408385031215611687575f80fd5b82356116928161156c565b915060208301356116a28161156c565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561041b5761041b6116cd565b8082018082111561041b5761041b6116cd565b808202811582820484141761041b5761041b6116cd565b5f8261173857634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611761575f80fd5b81516104f28161156c565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117ba5784516001600160a01b031683529383019391830191600101611795565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156117ed575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7f8decfc803aa75bb6636a9b376ba1bd557b893cc31251add4371fe6824ebe964736f6c63430008150033

Deployed Bytecode

0x608060405260043610610113575f3560e01c806370a082311161009d5780639d8740cb116100625780639d8740cb1461034b578063a9059cbb1461036a578063cb7f97d714610389578063dd62ed3e146103a8578063f2fde38b146103ec575f80fd5b806370a082311461029a578063715018a6146102ce578063893d20e8146102e257806395d89b41146102fe5780639cc353511461032c575f80fd5b806323b872dd116100e357806323b872dd146101e6578063293230b8146102055780632f54bf6e1461021b578063313ce5671461024857806332972e4614610263575f80fd5b806306fdde031461011e578063095ea7b3146101675780630b13ace21461019657806318160ddd146101c4575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600f81526e109d5b99d95948141c9bdd1bd8dbdb608a1b60208201525b60405161015e9190611521565b60405180910390f35b348015610172575f80fd5b50610186610181366004611583565b61040b565b604051901515815260200161015e565b3480156101a1575f80fd5b506101866101b03660046115ad565b60046020525f908152604090205460ff1681565b3480156101cf575f80fd5b506101d8610421565b60405190815260200161015e565b3480156101f1575f80fd5b506101866102003660046115c8565b610491565b348015610210575f80fd5b506102196104f9565b005b348015610226575f80fd5b506101866102353660046115ad565b5f546001600160a01b0391821691161490565b348015610253575f80fd5b506040516009815260200161015e565b34801561026e575f80fd5b50600654610282906001600160a01b031681565b6040516001600160a01b03909116815260200161015e565b3480156102a5575f80fd5b506101d86102b43660046115ad565b6001600160a01b03165f9081526002602052604090205490565b3480156102d9575f80fd5b50610219610540565b3480156102ed575f80fd5b505f546001600160a01b0316610282565b348015610309575f80fd5b5060408051808201909152600681526542554e47454560d01b6020820152610151565b348015610337575f80fd5b50610219610346366004611606565b6105ad565b348015610356575f80fd5b50610219610365366004611606565b6106e9565b348015610375575f80fd5b50610186610384366004611583565b61074e565b348015610394575f80fd5b506102196103a336600461162f565b61075a565b3480156103b3575f80fd5b506101d86103c2366004611676565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b3480156103f7575f80fd5b506102196104063660046115ad565b61084e565b5f6104173384846108ca565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261048c92909161048691906109ed565b906109ed565b905090565b5f61049d8484846109f8565b6104ee84336104e985604051806060016040528060288152602001611807602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610f38565b6108ca565b5060015b9392505050565b5f546001600160a01b0316331461052b5760405162461bcd60e51b8152600401610522906116ad565b60405180910390fd5b6006805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105695760405162461bcd60e51b8152600401610522906116ad565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146105d65760405162461bcd60e51b8152600401610522906116ad565b5f6105f86127106105f286600154610f6390919063ffffffff16565b90610f6e565b90505f6106166127106105f286600154610f6390919063ffffffff16565b90505f6106346127106105f286600154610f6390919063ffffffff16565b60178490556018839055601981905590505f61065f6103e86105f26005610659610421565b90610f63565b90508084101580156106715750808310155b801561067d5750808210155b6106e05760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610522565b50505050505050565b5f546001600160a01b031633146107125760405162461bcd60e51b8152600401610522906116ad565b600983905560015461072d90620186a0906105f29085610f63565b600a5560015461074690620186a0906105f29084610f63565b600b55505050565b5f6104173384846109f8565b5f546001600160a01b031633146107835760405162461bcd60e51b8152600401610522906116ad565b600c879055600d869055600f859055600e8490556010839055601182905560128190556013546107b4906001610f6e565b601054111580156107d457506013546107ce906001610f6e565b60115411155b80156107ef57506013546107e9906001610f6e565b60125411155b6106e05760405162461bcd60e51b815260206004820152602a60248201527f62757954617820616e642073656c6c5461782063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b6064820152608401610522565b5f546001600160a01b031633146108775760405162461bcd60e51b8152600401610522906116ad565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661092c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610522565b6001600160a01b03821661098d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610522565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6104f282846116e1565b6001600160a01b038316610a5c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610522565b6001600160a01b038216610abe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610522565b6001600160a01b0383165f90815260026020526040902054811115610b3f5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610522565b6001600160a01b0383165f9081526004602052604090205460ff16158015610b7f57506001600160a01b0382165f9081526004602052604090205460ff16155b15610bcd57600654600160a01b900460ff16610bcd5760405162461bcd60e51b815260206004820152600d60248201526c74726164696e67456e61626c6560981b6044820152606401610522565b6001600160a01b0383165f9081526004602052604090205460ff16158015610c0d57506001600160a01b0382165f9081526004602052604090205460ff16155b8015610c2757506006546001600160a01b03838116911614155b8015610c3e57506001600160a01b03821661dead14155b15610cb6576019546001600160a01b0383165f90815260026020526040902054610c689083610f79565b1115610cb65760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610522565b6006546001600160a01b03848116911614610d555760185481111580610cf357506001600160a01b0383165f9081526004602052604090205460ff165b80610d1557506001600160a01b0382165f9081526004602052604090205460ff165b610d555760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610522565b60175481111580610d7d57506001600160a01b0383165f9081526004602052604090205460ff165b80610d9f57506001600160a01b0382165f9081526004602052604090205460ff165b610ddf5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610522565b6006546001600160a01b038381169116148015610e1457506001600160a01b0383165f9081526004602052604090205460ff16155b15610e3157600160075f828254610e2b91906116f4565b90915550505b610e3c838383610f84565b15610e5157610e4c600a5461103c565b5f6007555b6001600160a01b0383165f90815260026020526040902054610e7390826109ed565b6001600160a01b0384165f90815260026020908152604080832093909355600490529081205460ff1615610ea75781610eb2565b610eb28484846111ac565b6001600160a01b0384165f90815260026020526040902054909150610ed79082610f79565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f2a9085815260200190565b60405180910390a350505050565b5f8184841115610f5b5760405162461bcd60e51b81526004016105229190611521565b505050900390565b5f6104f28284611707565b5f6104f2828461171e565b5f6104f282846116f4565b600b54600a54305f9081526002602052604081205460085491938510159211159060ff16158015610fbe5750600654600160a81b900460ff165b8015610fd35750600654600160a01b900460ff165b8015610fdc5750815b801561100057506001600160a01b0386165f9081526004602052604090205460ff16155b801561101957506006546001600160a01b038681169116145b8015611029575060095460075410155b80156110325750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c545f936110759360029361065993919261106f928391610f79565b90610f79565b90505f611091826105f2600c5486610f6390919063ffffffff16565b90505f61109e84836109ed565b9050476110aa826112d6565b5f6110b547836109ed565b90505f6110d76110d0600c54886109ed90919063ffffffff16565b8390610f6e565b90505f6110ef600c5483610f6390919063ffffffff16565b90508015611101576111018682611426565b600d545f9061111590610659856002610f63565b90508015611156576015546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611154573d5f803e3d5ffd5b505b478015611196576014546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611194573d5f803e3d5ffd5b505b50506008805460ff191690555050505050505050565b6001600160a01b0382165f9081526004602052604081205460ff16156111d557506017546104f2565b5f6111e085856114d7565b11156112cf575f6112026111f486866114d7565b601354610659908690610f6e565b305f9081526002602052604090205490915061121e9082610f79565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061126e9085815260200190565b60405180910390a35f600f541180156112915750600f5461128f86866114d7565b115b156112bd576112bd3061dead6112b8600f5461065960135489610f6e90919063ffffffff16565b6109f8565b6112c783826109ed565b9150506104f2565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106113095761130961173d565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611360573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113849190611751565b816001815181106113975761139761173d565b6001600160a01b0392831660209182029290920101526005546113bd91309116846108ca565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906113f59085905f9086903090429060040161176c565b5f604051808303815f87803b15801561140c575f80fd5b505af115801561141e573d5f803e3d5ffd5b505050505050565b60055461143e9030906001600160a01b0316846108ca565b60055460165460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156114ab573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114d091906117db565b5050505050565b6006545f906001600160a01b03908116908316036114f8575060115461041b565b6006546001600160a01b0390811690841603611517575060105461041b565b5060125492915050565b5f6020808352835180828501525f5b8181101561154c57858101830151858201604001528201611530565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611580575f80fd5b50565b5f8060408385031215611594575f80fd5b823561159f8161156c565b946020939093013593505050565b5f602082840312156115bd575f80fd5b81356104f28161156c565b5f805f606084860312156115da575f80fd5b83356115e58161156c565b925060208401356115f58161156c565b929592945050506040919091013590565b5f805f60608486031215611618575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a031215611645575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f8060408385031215611687575f80fd5b82356116928161156c565b915060208301356116a28161156c565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561041b5761041b6116cd565b8082018082111561041b5761041b6116cd565b808202811582820484141761041b5761041b6116cd565b5f8261173857634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611761575f80fd5b81516104f28161156c565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117ba5784516001600160a01b031683529383019391830191600101611795565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156117ed575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7f8decfc803aa75bb6636a9b376ba1bd557b893cc31251add4371fe6824ebe964736f6c63430008150033

Deployed Bytecode Sourcemap

3741:10113:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6099:67;;;;;;;;;;-1:-1:-1;6159:5:0;;;;;;;;;;;;-1:-1:-1;;;6159:5:0;;;;6099:67;;;;;;;:::i;:::-;;;;;;;;6455:133;;;;;;;;;;-1:-1:-1;6455:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6455:133:0;1023:187:1;4168:49:0;;;;;;;;;;-1:-1:-1;4168:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6859:127;;;;;;;;;;;;;:::i;:::-;;;1613:25:1;;;1601:2;1586:18;6859:127:0;1467:177:1;10569:309:0;;;;;;;;;;-1:-1:-1;10569:309:0;;;;;:::i;:::-;;:::i;6594:66::-;;;;;;;;;;;;;:::i;:::-;;423:87;;;;;;;;;;-1:-1:-1;423:87:0;;;;;:::i;:::-;478:4;503:5;-1:-1:-1;;;;;492:16:0;;;503:5;;492:16;;423:87;6249:67;;;;;;;;;;-1:-1:-1;6249:67:0;;3853:1;2252:36:1;;2240:2;2225:18;6249:67:0;2110:184:1;4258:22:0;;;;;;;;;;-1:-1:-1;4258:22:0;;;;-1:-1:-1;;;;;4258:22:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;4258:22:0;2299:203:1;6750:103:0;;;;;;;;;;-1:-1:-1;6750:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6833:18:0;6816:7;6833:18;;;:9;:18;;;;;;;6750:103;516:106;;;;;;;;;;;;;:::i;6666:78::-;;;;;;;;;;-1:-1:-1;6718:7:0;6736:5;-1:-1:-1;;;;;6736:5:0;6666:78;;6172:71;;;;;;;;;;-1:-1:-1;6234:7:0;;;;;;;;;;;;-1:-1:-1;;;6234:7:0;;;;6172:71;;8741:539;;;;;;;;;;-1:-1:-1;8741:539:0;;;;;:::i;:::-;;:::i;7139:309::-;;;;;;;;;;-1:-1:-1;7139:309:0;;;;;:::i;:::-;;:::i;6992:139::-;;;;;;;;;;-1:-1:-1;6992:139:0;;;;;:::i;:::-;;:::i;8215:518::-;;;;;;;;;;-1:-1:-1;8215:518:0;;;;;:::i;:::-;;:::i;6322:127::-;;;;;;;;;;-1:-1:-1;6322:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6420:18:0;;;6403:7;6420:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6322:127;628:111;;;;;;;;;;-1:-1:-1;628:111:0;;;;;:::i;:::-;;:::i;6455:133::-;6530:4;6537:37;6546:10;6558:7;6567:6;6537:8;:37::i;:::-;-1:-1:-1;6582:4:0;6455:133;;;;;:::o;6859:127::-;6833:9;:18;;;;5244:42;6912:7;6833:18;;;;;6929:7;;6912;;6929:55;;6833:18;;6929:28;;:7;:11;:28::i;:::-;:32;;:55::i;:::-;6922:62;;6859:127;:::o;10569:309::-;10667:4;10684:36;10694:6;10702:9;10713:6;10684:9;:36::i;:::-;10731:117;10740:6;10748:10;10760:87;10796:6;10760:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10760:19:0;;;;;;:11;:19;;;;;;;;10780:10;10760:31;;;;;;;;;:87;:35;:87::i;:::-;10731:8;:117::i;:::-;-1:-1:-1;10866:4:0;10569:309;;;;;;:::o;6594:66::-;478:4;503:5;-1:-1:-1;;;;;503:5:0;390:10;492:16;374:38;;;;-1:-1:-1;;;374:38:0;;;;;;;:::i;:::-;;;;;;;;;6638:13:::1;:20:::0;;-1:-1:-1;;;;6638:20:0::1;-1:-1:-1::0;;;6638:20:0::1;::::0;;6594:66::o;516:106::-;478:4;503:5;-1:-1:-1;;;;;503:5:0;390:10;492:16;374:38;;;;-1:-1:-1;;;374:38:0;;;;;;;:::i;:::-;579:1:::1;563:18:::0;;-1:-1:-1;;;;;;563:18:0::1;::::0;;588:32:::1;::::0;2445:51:1;;;588:32:0::1;::::0;2433:2:1;2418:18;588:32:0::1;;;;;;;516:106::o:0;8741:539::-;478:4;503:5;-1:-1:-1;;;;;503:5:0;390:10;492:16;374:38;;;;-1:-1:-1;;;374:38:0;;;;;;;:::i;:::-;8847:13:::1;8863:28;8885:5;8863:17;8875:4;8863:7;;:11;;:17;;;;:::i;:::-;:21:::0;::::1;:28::i;:::-;8847:44;;8893:19;8915:29;8938:5;8915:18;8927:5;8915:7;;:11;;:18;;;;:::i;:29::-;8893:51;;8946:17;8966:31;8991:5;8966:20;8978:7;8966;;:11;;:20;;;;:::i;:31::-;9008:12;:20:::0;;;9030:12:::1;:26:::0;;;9058:15:::1;:27:::0;;;8946:51;-1:-1:-1;;9112:30:0::1;9137:4;9112:20;9130:1;9112:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;9096:46;;9170:5;9161;:14;;:38;;;;;9194:5;9179:11;:20;;9161:38;:60;;;;;9216:5;9203:9;:18;;9161:60;9153:119;;;::::0;-1:-1:-1;;;9153:119:0;;4614:2:1;9153: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;;9153:119:0::1;4412:410:1::0;9153:119:0::1;8836:444;;;;8741:539:::0;;;:::o;7139:309::-;478:4;503:5;-1:-1:-1;;;;;503:5:0;390:10;492:16;374:38;;;;-1:-1:-1;;;374:38:0;;;;;;;:::i;:::-;7272:15:::1;:29:::0;;;7317:7:::1;::::0;:48:::1;::::0;7357:6:::1;::::0;7317:27:::1;::::0;7329:14;7317:11:::1;:27::i;:48::-;7303:11;:62:::0;7391:7:::1;::::0;:49:::1;::::0;7432:6:::1;::::0;7391:28:::1;::::0;7403:15;7391:11:::1;:28::i;:49::-;7377:11;:63:::0;-1:-1:-1;;;7139:309:0:o;6992:139::-;7070:4;7077:40;7087:10;7099:9;7110:6;7077:9;:40::i;8215:518::-;478:4;503:5;-1:-1:-1;;;;;503:5:0;390:10;492:16;374:38;;;;-1:-1:-1;;;374:38:0;;;;;;;:::i;:::-;8405:12:::1;:25:::0;;;8432:12:::1;:25:::0;;;8459:7:::1;:15:::0;;;8476:14:::1;:29:::0;;;8507:6:::1;:15:::0;;;8524:7:::1;:15:::0;;;8541:11:::1;:20:::0;;;8590:11:::1;::::0;:18:::1;::::0;-1:-1:-1;8590:15:0::1;:18::i;:::-;8580:6;;:28;;:61;;;;-1:-1:-1::0;8623:11:0::1;::::0;:18:::1;::::0;8639:1:::1;8623:15;:18::i;:::-;8612:7;;:29;;8580:61;:98;;;;-1:-1:-1::0;8660:11:0::1;::::0;:18:::1;::::0;8676:1:::1;8660:15;:18::i;:::-;8645:11;;:33;;8580:98;8572:153;;;::::0;-1:-1:-1;;;8572:153:0;;5029:2:1;8572: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;;8572:153:0::1;4827:406:1::0;628:111:0;478:4;503:5;-1:-1:-1;;;;;503:5:0;390:10;492:16;374:38;;;;-1:-1:-1;;;374:38:0;;;;;;;:::i;:::-;694:5:::1;:11:::0;;-1:-1:-1;;;;;;694:11:0::1;-1:-1:-1::0;;;;;694:11:0;::::1;::::0;;::::1;::::0;;;712:25:::1;::::0;2445:51:1;;;712:25:0::1;::::0;2433:2:1;2418:18;712:25:0::1;;;;;;;628:111:::0;:::o;7456:335::-;-1:-1:-1;;;;;7549:19:0;;7541:68;;;;-1:-1:-1;;;7541:68:0;;5656:2:1;7541: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;;7541:68:0;5454:400:1;7541:68:0;-1:-1:-1;;;;;7628:21:0;;7620:68;;;;-1:-1:-1;;;7620:68:0;;6061:2:1;7620: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;;7620:68:0;5859:398:1;7620:68:0;-1:-1:-1;;;;;7699:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7751:32;;1613:25:1;;;7751:32:0;;1586:18:1;7751:32:0;;;;;;;7456:335;;;:::o;2588:98::-;2646:7;2673:5;2677:1;2673;:5;:::i;12370:1481::-;-1:-1:-1;;;;;12467:20:0;;12459:70;;;;-1:-1:-1;;;12459:70:0;;6729:2:1;12459: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;;12459:70:0;6527:401:1;12459:70:0;-1:-1:-1;;;;;12548:23:0;;12540:71;;;;-1:-1:-1;;;12540:71:0;;7135:2:1;12540: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;;12540:71:0;6933:399:1;12540:71:0;-1:-1:-1;;;;;6833:18:0;;6816:7;6833:18;;;:9;:18;;;;;;12630:6;:27;;12622:88;;;;-1:-1:-1;;;12622:88:0;;7539:2:1;12622: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;;12622:88:0;7337:413:1;12622:88:0;-1:-1:-1;;;;;12725:24:0;;;;;;:16;:24;;;;;;;;12724:25;:57;;;;-1:-1:-1;;;;;;12754:27:0;;;;;;:16;:27;;;;;;;;12753:28;12724:57;12721:103;;;12791:13;;-1:-1:-1;;;12791:13:0;;;;12783:39;;;;-1:-1:-1;;;12783:39:0;;7957:2:1;12783:39:0;;;7939:21:1;7996:2;7976:18;;;7969:30;-1:-1:-1;;;8015:18:1;;;8008:43;8068:18;;12783:39:0;7755:337:1;12783:39:0;-1:-1:-1;;;;;12838:24:0;;;;;;:16;:24;;;;;;;;12837:25;:57;;;;-1:-1:-1;;;;;;12867:27:0;;;;;;:16;:27;;;;;;;;12866:28;12837:57;:90;;;;-1:-1:-1;12919:7:0;;-1:-1:-1;;;;;12898:29:0;;;12919:7;;12898:29;;12837:90;:120;;;;-1:-1:-1;;;;;;12931:26:0;;5244:42;12931:26;;12837:120;12834:233;;;13015:15;;-1:-1:-1;;;;;12978:20:0;;;;;;:9;:20;;;;;;:32;;13003:6;12978:24;:32::i;:::-;12977:53;;12969:96;;;;-1:-1:-1;;;12969:96:0;;8299:2:1;12969:96:0;;;8281:21:1;8338:2;8318:18;;;8311:30;8377:32;8357:18;;;8350:60;8427:18;;12969:96:0;8097:354:1;12969:96:0;13090:7;;-1:-1:-1;;;;;13080:17:0;;;13090:7;;13080:17;13077:135;;13117:12;;13107:6;:22;;:50;;;-1:-1:-1;;;;;;13133:24:0;;;;;;:16;:24;;;;;;;;13107:50;:81;;;-1:-1:-1;;;;;;13161:27:0;;;;;;:16;:27;;;;;;;;13107:81;13099:111;;;;-1:-1:-1;;;13099:111:0;;8658:2:1;13099:111:0;;;8640:21:1;8697:2;8677:18;;;8670:30;-1:-1:-1;;;8716:18:1;;;8709:47;8773:18;;13099:111:0;8456:341:1;13099:111:0;13240:12;;13230:6;:22;;:50;;;-1:-1:-1;;;;;;13256:24:0;;;;;;:16;:24;;;;;;;;13230:50;:81;;;-1:-1:-1;;;;;;13284:27:0;;;;;;:16;:27;;;;;;;;13230:81;13222:111;;;;-1:-1:-1;;;13222:111:0;;8658:2:1;13222:111:0;;;8640:21:1;8697:2;8677:18;;;8670:30;-1:-1:-1;;;8716:18:1;;;8709:47;8773:18;;13222:111:0;8456:341:1;13222:111:0;13361:7;;-1:-1:-1;;;;;13348:20:0;;;13361:7;;13348:20;:49;;;;-1:-1:-1;;;;;;13373:24:0;;;;;;:16;:24;;;;;;;;13372:25;13348:49;13345:80;;;13421:1;13399:10;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;13345:80:0;13438:40;13452:6;13460:9;13471:6;13438:13;:40::i;:::-;13435:99;;;13480:27;13495:11;;13480:14;:27::i;:::-;13530:1;13509:10;:23;13435:99;-1:-1:-1;;;;;13564:17:0;;;;;;:9;:17;;;;;;:29;;13586:6;13564:21;:29::i;:::-;-1:-1:-1;;;;;13544:17:0;;;;;;:9;:17;;;;;;;;:49;;;;13630:16;:24;;;;;;;;13629:25;:81;;13704:6;13629:81;;;13657:44;13675:6;13683:9;13694:6;13657:17;:44::i;:::-;-1:-1:-1;;;;;13744:20:0;;;;;;:9;:20;;;;;;13604:106;;-1:-1:-1;13744:40:0;;13604:106;13744:24;:40::i;:::-;-1:-1:-1;;;;;13721:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13800:43;;;;;;;;;;13828:14;1613:25:1;;1601:2;1586:18;;1467:177;13800:43:0;;;;;;;;12448:1403;12370:1481;;;:::o;3004:240::-;3124:7;3185:12;3177:6;;;;3169:29;;;;-1:-1:-1;;;3169:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3220:5:0;;;3004:240::o;2692:98::-;2750:7;2777:5;2781:1;2777;:5;:::i;2796:98::-;2854:7;2881:5;2885:1;2881;:5;:::i;2484:98::-;2542:7;2569:5;2573:1;2569;:5;:::i;7799:408::-;7939:11;;8011;;8001:4;7896;6833:18;;;:9;:18;;;;;;8041:10;;7896:4;;7929:21;;;;-1:-1:-1;7983:39:0;;8041:10;;8040:11;:26;;;;-1:-1:-1;8055:11:0;;-1:-1:-1;;;8055:11:0;;;;8040:26;:43;;;;-1:-1:-1;8070:13:0;;-1:-1:-1;;;8070:13:0;;;;8040:43;:55;;;;;8087:8;8040:55;:84;;;;-1:-1:-1;;;;;;8100:24:0;;;;;;:16;:24;;;;;;;;8099:25;8040:84;:108;;;;-1:-1:-1;8141:7:0;;-1:-1:-1;;;;;8128:20:0;;;8141:7;;8128:20;8040:108;:141;;;;;8166:15;;8152:10;;:29;;8040:141;:159;;;;;8185:14;8040:159;8033:166;7799:408;-1:-1:-1;;;;;;7799:408:0:o;9521:1040::-;4928:10;:17;;-1:-1:-1;;4928:17:0;4941:4;4928:17;;;;;;9658:14:::1;::::0;9640:12:::1;::::0;9616::::1;::::0;4928:10;;9615:66:::1;::::0;9679:1:::1;::::0;9616:57:::1;::::0;9658:14;;9616:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;9615:66::-;9592:89;;9692:32;9727:42;9756:12;9727:24;9738:12;;9727:6;:10;;:24;;;;:::i;:42::-;9692:77:::0;-1:-1:-1;9780:14:0::1;9797:36;:6:::0;9692:77;9797:10:::1;:36::i;:::-;9780:53:::0;-1:-1:-1;9869:21:0::1;9901:24;9780:53:::0;9901:16:::1;:24::i;:::-;9936:20;9959:41;:21;9985:14:::0;9959:25:::1;:41::i;:::-;9936:64;;10011:19;10032:48;10049:30;10066:12;;10049;:16;;:30;;;;:::i;:::-;10032:12:::0;;:16:::1;:48::i;:::-;10011:69;;10091:29;10123;10139:12;;10123:11;:15;;:29;;;;:::i;:::-;10091:61:::0;-1:-1:-1;10166:34:0;;10163:103:::1;;10202:61;10215:24;10241:21;10202:12;:61::i;:::-;10322:12;::::0;10276:20:::1;::::0;10299:36:::1;::::0;:18:::1;:11:::0;10315:1:::1;10299:15;:18::i;:36::-;10276:59:::0;-1:-1:-1;10349:16:0;;10346:63:::1;;10375:8;::::0;10367:40:::1;::::0;-1:-1:-1;;;;;10375:8:0;;::::1;::::0;10367:40;::::1;;;::::0;10394:12;;10375:8:::1;10367:40:::0;10375:8;10367:40;10394:12;10375:8;10367:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10346:63;10445:21;10480:28:::0;;10477:77:::1;;10518:7;::::0;10510:42:::1;::::0;-1:-1:-1;;;;;10518:7:0;;::::1;::::0;10510:42;::::1;;;::::0;10536:15;;10518:7:::1;10510:42:::0;10518:7;10510:42;10536:15;10518:7;10510:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10477:77;-1:-1:-1::0;;4950:10:0;:18;;-1:-1:-1;;4950:18:0;;;-1:-1:-1;;;;;;;;9521:1040:0:o;11340:671::-;-1:-1:-1;;;;;11460:27:0;;11436:7;11460:27;;;:16;:27;;;;;;;;11456:55;;;-1:-1:-1;11497:12:0;;11490:19;;11456:55;11559:1;11524:32;11538:6;11546:9;11524:13;:32::i;:::-;:36;11521:468;;;11572:17;11592:61;11620:32;11634:6;11642:9;11620:13;:32::i;:::-;11603:11;;11592:23;;:6;;:10;:23::i;:61::-;11709:4;11691:24;;;;:9;:24;;;;;;11572:81;;-1:-1:-1;11691:39:0;;11572:81;11691:28;:39::i;:::-;11682:4;11664:24;;;;:9;:24;;;;;;;:66;;;;11746:42;;-1:-1:-1;;;;;11746:42:0;;;;;;;11778:9;1613:25:1;;1601:2;1586:18;;1467:177;11746:42:0;;;;;;;;11820:1;11802:7;;:20;:66;;;;;11861:7;;11826:32;11840:6;11848:9;11826:13;:32::i;:::-;:42;11802:66;11799:150;;;11870:77;11888:4;5244:42;11910:36;11938:7;;11910:23;11921:11;;11910:6;:10;;:23;;;;:::i;:36::-;11870:9;:77::i;:::-;11966:21;:6;11977:9;11966:10;:21::i;:::-;11959:28;;;;;11521:468;-1:-1:-1;11997:6:0;11340:671;-1:-1:-1;;11340:671:0:o;10886:446::-;10976:16;;;10990:1;10976:16;;;;;;;;10952:21;;10976:16;;;;;;;;;;-1:-1:-1;10976:16:0;10952:40;;11021:4;11003;11008:1;11003:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11003:23:0;;;:7;;;;;;;;;;:23;;;;11047:10;;:17;;;-1:-1:-1;;;11047:17:0;;;;:10;;;;;:15;;:17;;;;;11003:7;;11047:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11037:4;11042:1;11037:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11037:27:0;;;:7;;;;;;;;;:27;11107:10;;11075:57;;11092:4;;11107:10;11120:11;11075:8;:57::i;:::-;11143:10;;:181;;-1:-1:-1;;;11143:181:0;;-1:-1:-1;;;;;11143:10:0;;;;:61;;:181;;11219:11;;11143:10;;11261:4;;11288;;11308:15;;11143:181;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10941:391;10886:446;:::o;12019:343::-;12132:10;;12100:57;;12117:4;;-1:-1:-1;;;;;12132:10:0;12145:11;12100:8;:57::i;:::-;12168:10;;12313;;12168:186;;-1:-1:-1;;;12168:186:0;;12235:4;12168:186;;;11173:34:1;11223:18;;;11216:34;;;12168:10:0;11266:18:1;;;11259:34;;;11309:18;;;11302:34;-1:-1:-1;;;;;12313:10:0;;;11352:19:1;;;11345:44;12338:15:0;11405:19:1;;;11398:35;12168:10:0;;;:26;;12202:9;;11107:19:1;;12168:186:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12019:343;;:::o;9288:225::-;9405:7;;9369;;-1:-1:-1;;;;;9405:7:0;;;9392:20;;;;9389:41;;-1:-1:-1;9421:7:0;;9414:14;;9389:41;9453:7;;-1:-1:-1;;;;;9453:7:0;;;9443:17;;;;9440:37;;-1:-1:-1;9469:6:0;;9462:13;;9440:37;-1:-1:-1;9494:11:0;;9288: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;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;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;8802:125::-;8867:9;;;8888:10;;;8885:36;;;8901:18;;:::i;8932:168::-;9005:9;;;9036;;9053:15;;;9047:22;;9033:37;9023:71;;9074:18;;:::i;9105:217::-;9145:1;9171;9161:132;;9215:10;9210:3;9206:20;9203:1;9196:31;9250:4;9247:1;9240:15;9278:4;9275:1;9268:15;9161:132;-1:-1:-1;9307:9:1;;9105:217::o;9459:127::-;9520:10;9515:3;9511:20;9508:1;9501:31;9551:4;9548:1;9541:15;9575:4;9572:1;9565:15;9591:251;9661:6;9714:2;9702:9;9693:7;9689:23;9685:32;9682:52;;;9730:1;9727;9720:12;9682:52;9762:9;9756:16;9781:31;9806:5;9781:31;:::i;9847:980::-;10109:4;10157:3;10146:9;10142:19;10188:6;10177:9;10170:25;10214:2;10252:6;10247:2;10236:9;10232:18;10225:34;10295:3;10290:2;10279:9;10275:18;10268:31;10319:6;10354;10348:13;10385:6;10377;10370:22;10423:3;10412:9;10408:19;10401:26;;10462:2;10454:6;10450:15;10436:29;;10483:1;10493:195;10507:6;10504:1;10501:13;10493:195;;;10572:13;;-1:-1:-1;;;;;10568:39:1;10556:52;;10663:15;;;;10628:12;;;;10604:1;10522:9;10493:195;;;-1:-1:-1;;;;;;;10744:32:1;;;;10739:2;10724:18;;10717:60;-1:-1:-1;;;10808:3:1;10793:19;10786:35;10705:3;9847:980;-1:-1:-1;;;9847:980:1:o;11444:306::-;11532:6;11540;11548;11601:2;11589:9;11580:7;11576:23;11572:32;11569:52;;;11617:1;11614;11607:12;11569:52;11646:9;11640:16;11630:26;;11696:2;11685:9;11681:18;11675:25;11665:35;;11740:2;11729:9;11725:18;11719:25;11709:35;;11444:306;;;;;:::o

Swarm Source

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