ETH Price: $3,386.92 (+1.72%)

Token

Soyjak Coin (SOYJAK)
 

Overview

Max Total Supply

69,420,000,000 SOYJAK

Holders

290

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
ERC20SOYJAKTOKEN

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-21
*/

// SPDX-License-Identifier: UNLICENSED

/*

https://t.me/soyjakcommunity
https://twitter.com/SoyjakCommunity

www.soyjak.wtf

*/

pragma solidity 0.8.16;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
}

interface ERC20 {
    function getOwner() external view returns (address);
    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 Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) external onlyOwner {
        require(adr != owner, "OWNER cant be unauthorized");
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function renounceOwnership() external onlyOwner {
        authorizations[owner] = false;
        owner = address(0);
    }
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

contract ERC20SOYJAKTOKEN is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "Soyjak Coin";
    string public constant symbol = "SOYJAK";
    uint8 public constant decimals = 9;

    uint256 public constant totalSupply = 69420 * 10**6 * 10**decimals;

    uint256 public _maxTxAmount = totalSupply / 100;
    uint256 public _maxWalletToken = totalSupply / 100;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isWalletLimitExempt;

    uint256 public totalFee = 10;
    uint256 public constant feeDenominator = 100;
    
    uint256 buyMultiplier = 900;
    uint256 sellMultiplier = 990;
    uint256 transferMultiplier = 900;

    address marketingFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool swapEnabled = true;
    uint256 swapThreshold = totalSupply / 200;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0x8c5e43fa6C3941F8A8B8913c7EDDD97D70bd7aA5;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

    function getOwner() external view override returns (address) { return owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }
    
        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

        if(shouldSwapBack()){ swapBack(); }

        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient] || totalFee == 0) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
        balanceOf[recipient] = balanceOf[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = (amount * totalFee * multiplier) / (feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && balanceOf[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            swapThreshold,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETH}("");
        tmpSuccess = false;
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;
    }

    function setFees(uint256 _marketingFee) external onlyOwner {
        totalFee = _marketingFee;
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = totalSupply / _denominator;
    }

    function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner {
        _maxWalletToken = (totalSupply * maxWallPercent ) / 1000;
    }

    function setMaxTxPercent(uint256 maxTXPercentage) external onlyOwner {
        _maxTxAmount = (totalSupply * maxTXPercentage ) / 1000;
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        uint256 amountToClear = ( amountETH * amountPercentage ) / 100;
        payable(msg.sender).transfer(amountToClear);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526064620000146009600a62000524565b6200002590641029c123006200053c565b6200003191906200055e565b6002556064620000446009600a62000524565b6200005590641029c123006200053c565b6200006191906200055e565b600355600a60098181556103848083556103de600b55600c55600e805460ff60a01b1916600160a01b17905560c8916200009c919062000524565b620000ad90641029c123006200053c565b620000b991906200055e565b600f55348015620000c957600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155600e8054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa15801562000150573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000176919062000581565b6001600160a01b03908116608052600e546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ed919062000581565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200023f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000265919062000581565b6001600160a01b0390811660a052306000818152600560209081526040808320600e5490951683529381528382206000199055600d80546001600160a01b031916738c5e43fa6c3941f8a8b8913c7eddd97d70bd7aa517905533825260068152838220805460ff1990811660019081179092556007835285842080548216831790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d80548216831790557f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df805482168317905560089092528483208054831682179055928252928120805484168317905561dead90527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054909216179055620003936009600a62000524565b620003a490641029c123006200053c565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003e76009600a62000524565b620003f890641029c123006200053c565b60405190815260200160405180910390a3620005ac565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004665781600019048211156200044a576200044a6200040f565b808516156200045857918102915b93841c93908002906200042a565b509250929050565b6000826200047f575060016200051e565b816200048e575060006200051e565b8160018114620004a75760028114620004b257620004d2565b60019150506200051e565b60ff841115620004c657620004c66200040f565b50506001821b6200051e565b5060208310610133831016604e8410600b8410161715620004f7575081810a6200051e565b62000503838362000425565b80600019048211156200051a576200051a6200040f565b0290505b92915050565b60006200053560ff8416836200046e565b9392505050565b60008160001904831182151516156200055957620005596200040f565b500290565b6000826200057c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200059457600080fd5b81516001600160a01b03811681146200053557600080fd5b60805160a0516119cd620005ee6000396000818161055a01528181610e4b015281816111df015281816113e7015261141b015260006112a901526119cd6000f3fe6080604052600436106101f25760003560e01c806377b54bad1161010d578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e1461060c578063df20fd4914610652578063f0b37c0414610672578063f887ea4014610692578063fe9fbb80146106b257600080fd5b8063a9059cbb1461057c578063b6a5d7de1461059c578063c867d60b146105bc578063d543dbeb146105ec57600080fd5b8063893d20e8116100dc578063893d20e8146104b45780638b42507f146104e657806395d89b4114610516578063a8aa1b311461054857600080fd5b806377b54bad1461044857806378109e54146104685780637d1db4a51461047e57806382bf293c1461049457600080fd5b80632f54bf6e11610185578063571ac8b011610154578063571ac8b0146103c65780636ce46bc3146103e657806370a0823114610406578063715018a61461043357600080fd5b80632f54bf6e14610320578063313ce5671461034f5780633d18678e146103765780633f4218e01461039657600080fd5b80631da1db5e116101c15780631da1db5e146102b35780631df4ccfc146102d557806323b872dd146102eb5780632b112e491461030b57600080fd5b806306fdde03146101fe578063095ea7b31461024b578063180b0d7e1461027b57806318160ddd1461029e57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b506102356040518060400160405280600b81526020016a29b7bcb530b59021b7b4b760a91b81525081565b60405161024291906115b8565b60405180910390f35b34801561025757600080fd5b5061026b610266366004611622565b6106eb565b6040519015158152602001610242565b34801561028757600080fd5b50610290606481565b604051908152602001610242565b3480156102aa57600080fd5b50610290610758565b3480156102bf57600080fd5b506102d36102ce36600461164c565b610776565b005b3480156102e157600080fd5b5061029060095481565b3480156102f757600080fd5b5061026b610306366004611665565b6107f8565b34801561031757600080fd5b506102906108ba565b34801561032c57600080fd5b5061026b61033b3660046116a1565b6000546001600160a01b0391821691161490565b34801561035b57600080fd5b50610364600981565b60405160ff9091168152602001610242565b34801561038257600080fd5b506102d361039136600461164c565b610942565b3480156103a257600080fd5b5061026b6103b13660046116a1565b60066020526000908152604090205460ff1681565b3480156103d257600080fd5b5061026b6103e13660046116a1565b610971565b3480156103f257600080fd5b506102d36104013660046116bc565b61097f565b34801561041257600080fd5b506102906104213660046116a1565b60046020526000908152604090205481565b34801561043f57600080fd5b506102d36109dd565b34801561045457600080fd5b5061026b610463366004611622565b610a37565b34801561047457600080fd5b5061029060035481565b34801561048a57600080fd5b5061029060025481565b3480156104a057600080fd5b506102d36104af36600461164c565b610b46565b3480156104c057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610242565b3480156104f257600080fd5b5061026b6105013660046116a1565b60076020526000908152604090205460ff1681565b34801561052257600080fd5b5061023560405180604001604052806006815260200165534f594a414b60d01b81525081565b34801561055457600080fd5b506104ce7f000000000000000000000000000000000000000000000000000000000000000081565b34801561058857600080fd5b5061026b610597366004611622565b610ba9565b3480156105a857600080fd5b506102d36105b73660046116a1565b610bb6565b3480156105c857600080fd5b5061026b6105d73660046116a1565b60086020526000908152604090205460ff1681565b3480156105f857600080fd5b506102d361060736600461164c565b610c07565b34801561061857600080fd5b506102906106273660046116e8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561065e57600080fd5b506102d361066d36600461172c565b610c6a565b34801561067e57600080fd5b506102d361068d3660046116a1565b610cd8565b34801561069e57600080fd5b50600e546104ce906001600160a01b031681565b3480156106be57600080fd5b5061026b6106cd3660046116a1565b6001600160a01b031660009081526001602052604090205460ff1690565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107469086815260200190565b60405180910390a35060015b92915050565b6107646009600a611844565b61077390641029c12300611853565b81565b6000546001600160a01b031633146107a95760405162461bcd60e51b81526004016107a090611872565b60405180910390fd5b47600060646107b88484611853565b6107c29190611892565b604051909150339082156108fc029083906000818181858888f193505050501580156107f2573d6000803e3d6000fd5b50505050565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019146108a5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610880918490610d81565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b6108b0848484610dbb565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd5490919061091a6009600a611844565b61092990641029c12300611853565b61093391906118b4565b61093d91906118b4565b905090565b6000546001600160a01b0316331461096c5760405162461bcd60e51b81526004016107a090611872565b600955565b6000610752826000196106eb565b3360009081526001602052604090205460ff166109cc5760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064016107a0565b600b91909155600a91909155600c55565b6000546001600160a01b03163314610a075760405162461bcd60e51b81526004016107a090611872565b600080546001600160a01b03168152600160205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610a625760405162461bcd60e51b81526004016107a090611872565b81600003610ad5576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad291906118c7565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b391906118e0565b6000546001600160a01b03163314610b705760405162461bcd60e51b81526004016107a090611872565b6103e881610b806009600a611844565b610b8f90641029c12300611853565b610b999190611853565b610ba39190611892565b60035550565b60006108b3338484610dbb565b6000546001600160a01b03163314610be05760405162461bcd60e51b81526004016107a090611872565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314610c315760405162461bcd60e51b81526004016107a090611872565b6103e881610c416009600a611844565b610c5090641029c12300611853565b610c5a9190611853565b610c649190611892565b60025550565b6000546001600160a01b03163314610c945760405162461bcd60e51b81526004016107a090611872565b600e805460ff60a01b1916600160a01b8415150217905580610cb86009600a611844565b610cc790641029c12300611853565b610cd19190611892565b600f555050565b6000546001600160a01b03163314610d025760405162461bcd60e51b81526004016107a090611872565b6000546001600160a01b0390811690821603610d605760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016107a0565b6001600160a01b03166000908152600160205260409020805460ff19169055565b60008184841115610da55760405162461bcd60e51b81526004016107a091906115b8565b506000610db284866118b4565b95945050505050565b60105460009060ff1615610ddb57610dd48484846110ec565b90506108b3565b6001600160a01b03841660009081526001602052604090205460ff16158015610e1d57506001600160a01b03841660009081526008602052604090205460ff16155b8015610e4257506001600160a01b03831660009081526008602052604090205460ff16155b8015610e8057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610efa576003546001600160a01b038416600090815260046020526040902054610eac9084906118fd565b1115610efa5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016107a0565b60025482111580610f2357506001600160a01b03841660009081526007602052604090205460ff165b80610f4657506001600160a01b03831660009081526007602052604090205460ff165b610f8a5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016107a0565b610f926111d2565b15610f9f57610f9f611245565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260049091529190912054610ff1918490610d81565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff168061103e57506001600160a01b03841660009081526006602052604090205460ff165b806110495750600954155b61105d576110588584866113bf565b61105f565b825b6001600160a01b0385166000908152600460205260409020549091506110859082611517565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d99085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461113d918490610d81565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461116c9083611517565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111c09086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611210575060105460ff16155b80156112255750600e54600160a01b900460ff165b801561093d575050600f5430600090815260046020526040902054101590565b6010805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061128757611287611910565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106112db576112db611910565b6001600160a01b039283166020918202929092010152600e54600f5460405163791ac94760e01b8152919092169163791ac947916113259190600090869030904290600401611926565b600060405180830381600087803b15801561133f57600080fd5b505af1158015611353573d6000803e3d6000fd5b5050600d54604051479350600092506001600160a01b039091169083908381818185875af1925050503d80600081146113a8576040519150601f19603f3d011682016040523d82523d6000602084013e6113ad565b606091505b50506010805460ff1916905550505050565b60008215806113ce5750600954155b156113da5750816108b3565b600c546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036114195750600b54611457565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036114575750600a545b6000611464606480611853565b82600954876114739190611853565b61147d9190611853565b6114879190611892565b9050801561150357306000908152600460205260409020546114a99082611517565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114fa9085815260200190565b60405180910390a35b61150d8582611576565b9695505050505050565b60008061152483856118fd565b9050838110156108b35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107a0565b60006108b383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d81565b600060208083528351808285015260005b818110156115e5578581018301518582016040015282016115c9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461161d57600080fd5b919050565b6000806040838503121561163557600080fd5b61163e83611606565b946020939093013593505050565b60006020828403121561165e57600080fd5b5035919050565b60008060006060848603121561167a57600080fd5b61168384611606565b925061169160208501611606565b9150604084013590509250925092565b6000602082840312156116b357600080fd5b6108b382611606565b6000806000606084860312156116d157600080fd5b505081359360208301359350604090920135919050565b600080604083850312156116fb57600080fd5b61170483611606565b915061171260208401611606565b90509250929050565b801515811461172957600080fd5b50565b6000806040838503121561173f57600080fd5b823561163e8161171b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561179b5781600019048211156117815761178161174a565b8085161561178e57918102915b93841c9390800290611765565b509250929050565b6000826117b257506001610752565b816117bf57506000610752565b81600181146117d557600281146117df576117fb565b6001915050610752565b60ff8411156117f0576117f061174a565b50506001821b610752565b5060208310610133831016604e8410600b841016171561181e575081810a610752565b6118288383611760565b806000190482111561183c5761183c61174a565b029392505050565b60006108b360ff8416836117a3565b600081600019048311821515161561186d5761186d61174a565b500290565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000826118af57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156107525761075261174a565b6000602082840312156118d957600080fd5b5051919050565b6000602082840312156118f257600080fd5b81516108b38161171b565b808201808211156107525761075261174a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119765784516001600160a01b031683529383019391830191600101611951565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202b7ee76dc842e8e7b34f82f4ee4c8a82e5624a18e4e5f810275cb31121486fff64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c806377b54bad1161010d578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e1461060c578063df20fd4914610652578063f0b37c0414610672578063f887ea4014610692578063fe9fbb80146106b257600080fd5b8063a9059cbb1461057c578063b6a5d7de1461059c578063c867d60b146105bc578063d543dbeb146105ec57600080fd5b8063893d20e8116100dc578063893d20e8146104b45780638b42507f146104e657806395d89b4114610516578063a8aa1b311461054857600080fd5b806377b54bad1461044857806378109e54146104685780637d1db4a51461047e57806382bf293c1461049457600080fd5b80632f54bf6e11610185578063571ac8b011610154578063571ac8b0146103c65780636ce46bc3146103e657806370a0823114610406578063715018a61461043357600080fd5b80632f54bf6e14610320578063313ce5671461034f5780633d18678e146103765780633f4218e01461039657600080fd5b80631da1db5e116101c15780631da1db5e146102b35780631df4ccfc146102d557806323b872dd146102eb5780632b112e491461030b57600080fd5b806306fdde03146101fe578063095ea7b31461024b578063180b0d7e1461027b57806318160ddd1461029e57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b506102356040518060400160405280600b81526020016a29b7bcb530b59021b7b4b760a91b81525081565b60405161024291906115b8565b60405180910390f35b34801561025757600080fd5b5061026b610266366004611622565b6106eb565b6040519015158152602001610242565b34801561028757600080fd5b50610290606481565b604051908152602001610242565b3480156102aa57600080fd5b50610290610758565b3480156102bf57600080fd5b506102d36102ce36600461164c565b610776565b005b3480156102e157600080fd5b5061029060095481565b3480156102f757600080fd5b5061026b610306366004611665565b6107f8565b34801561031757600080fd5b506102906108ba565b34801561032c57600080fd5b5061026b61033b3660046116a1565b6000546001600160a01b0391821691161490565b34801561035b57600080fd5b50610364600981565b60405160ff9091168152602001610242565b34801561038257600080fd5b506102d361039136600461164c565b610942565b3480156103a257600080fd5b5061026b6103b13660046116a1565b60066020526000908152604090205460ff1681565b3480156103d257600080fd5b5061026b6103e13660046116a1565b610971565b3480156103f257600080fd5b506102d36104013660046116bc565b61097f565b34801561041257600080fd5b506102906104213660046116a1565b60046020526000908152604090205481565b34801561043f57600080fd5b506102d36109dd565b34801561045457600080fd5b5061026b610463366004611622565b610a37565b34801561047457600080fd5b5061029060035481565b34801561048a57600080fd5b5061029060025481565b3480156104a057600080fd5b506102d36104af36600461164c565b610b46565b3480156104c057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610242565b3480156104f257600080fd5b5061026b6105013660046116a1565b60076020526000908152604090205460ff1681565b34801561052257600080fd5b5061023560405180604001604052806006815260200165534f594a414b60d01b81525081565b34801561055457600080fd5b506104ce7f000000000000000000000000975ab1b6fb9988d5bf21e6d997c2aa144a2945d281565b34801561058857600080fd5b5061026b610597366004611622565b610ba9565b3480156105a857600080fd5b506102d36105b73660046116a1565b610bb6565b3480156105c857600080fd5b5061026b6105d73660046116a1565b60086020526000908152604090205460ff1681565b3480156105f857600080fd5b506102d361060736600461164c565b610c07565b34801561061857600080fd5b506102906106273660046116e8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561065e57600080fd5b506102d361066d36600461172c565b610c6a565b34801561067e57600080fd5b506102d361068d3660046116a1565b610cd8565b34801561069e57600080fd5b50600e546104ce906001600160a01b031681565b3480156106be57600080fd5b5061026b6106cd3660046116a1565b6001600160a01b031660009081526001602052604090205460ff1690565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107469086815260200190565b60405180910390a35060015b92915050565b6107646009600a611844565b61077390641029c12300611853565b81565b6000546001600160a01b031633146107a95760405162461bcd60e51b81526004016107a090611872565b60405180910390fd5b47600060646107b88484611853565b6107c29190611892565b604051909150339082156108fc029083906000818181858888f193505050501580156107f2573d6000803e3d6000fd5b50505050565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019146108a5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600582528381203382529091529190912054610880918490610d81565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b6108b0848484610dbb565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd5490919061091a6009600a611844565b61092990641029c12300611853565b61093391906118b4565b61093d91906118b4565b905090565b6000546001600160a01b0316331461096c5760405162461bcd60e51b81526004016107a090611872565b600955565b6000610752826000196106eb565b3360009081526001602052604090205460ff166109cc5760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b60448201526064016107a0565b600b91909155600a91909155600c55565b6000546001600160a01b03163314610a075760405162461bcd60e51b81526004016107a090611872565b600080546001600160a01b03168152600160205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610a625760405162461bcd60e51b81526004016107a090611872565b81600003610ad5576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad291906118c7565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b391906118e0565b6000546001600160a01b03163314610b705760405162461bcd60e51b81526004016107a090611872565b6103e881610b806009600a611844565b610b8f90641029c12300611853565b610b999190611853565b610ba39190611892565b60035550565b60006108b3338484610dbb565b6000546001600160a01b03163314610be05760405162461bcd60e51b81526004016107a090611872565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314610c315760405162461bcd60e51b81526004016107a090611872565b6103e881610c416009600a611844565b610c5090641029c12300611853565b610c5a9190611853565b610c649190611892565b60025550565b6000546001600160a01b03163314610c945760405162461bcd60e51b81526004016107a090611872565b600e805460ff60a01b1916600160a01b8415150217905580610cb86009600a611844565b610cc790641029c12300611853565b610cd19190611892565b600f555050565b6000546001600160a01b03163314610d025760405162461bcd60e51b81526004016107a090611872565b6000546001600160a01b0390811690821603610d605760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016107a0565b6001600160a01b03166000908152600160205260409020805460ff19169055565b60008184841115610da55760405162461bcd60e51b81526004016107a091906115b8565b506000610db284866118b4565b95945050505050565b60105460009060ff1615610ddb57610dd48484846110ec565b90506108b3565b6001600160a01b03841660009081526001602052604090205460ff16158015610e1d57506001600160a01b03841660009081526008602052604090205460ff16155b8015610e4257506001600160a01b03831660009081526008602052604090205460ff16155b8015610e8057507f000000000000000000000000975ab1b6fb9988d5bf21e6d997c2aa144a2945d26001600160a01b0316836001600160a01b031614155b15610efa576003546001600160a01b038416600090815260046020526040902054610eac9084906118fd565b1115610efa5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016107a0565b60025482111580610f2357506001600160a01b03841660009081526007602052604090205460ff165b80610f4657506001600160a01b03831660009081526007602052604090205460ff165b610f8a5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016107a0565b610f926111d2565b15610f9f57610f9f611245565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260049091529190912054610ff1918490610d81565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff168061103e57506001600160a01b03841660009081526006602052604090205460ff165b806110495750600954155b61105d576110588584866113bf565b61105f565b825b6001600160a01b0385166000908152600460205260409020549091506110859082611517565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d99085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461113d918490610d81565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461116c9083611517565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111c09086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000975ab1b6fb9988d5bf21e6d997c2aa144a2945d21614801590611210575060105460ff16155b80156112255750600e54600160a01b900460ff165b801561093d575050600f5430600090815260046020526040902054101590565b6010805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061128757611287611910565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106112db576112db611910565b6001600160a01b039283166020918202929092010152600e54600f5460405163791ac94760e01b8152919092169163791ac947916113259190600090869030904290600401611926565b600060405180830381600087803b15801561133f57600080fd5b505af1158015611353573d6000803e3d6000fd5b5050600d54604051479350600092506001600160a01b039091169083908381818185875af1925050503d80600081146113a8576040519150601f19603f3d011682016040523d82523d6000602084013e6113ad565b606091505b50506010805460ff1916905550505050565b60008215806113ce5750600954155b156113da5750816108b3565b600c546001600160a01b037f000000000000000000000000975ab1b6fb9988d5bf21e6d997c2aa144a2945d28116908416036114195750600b54611457565b7f000000000000000000000000975ab1b6fb9988d5bf21e6d997c2aa144a2945d26001600160a01b0316856001600160a01b0316036114575750600a545b6000611464606480611853565b82600954876114739190611853565b61147d9190611853565b6114879190611892565b9050801561150357306000908152600460205260409020546114a99082611517565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114fa9085815260200190565b60405180910390a35b61150d8582611576565b9695505050505050565b60008061152483856118fd565b9050838110156108b35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107a0565b60006108b383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d81565b600060208083528351808285015260005b818110156115e5578581018301518582016040015282016115c9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461161d57600080fd5b919050565b6000806040838503121561163557600080fd5b61163e83611606565b946020939093013593505050565b60006020828403121561165e57600080fd5b5035919050565b60008060006060848603121561167a57600080fd5b61168384611606565b925061169160208501611606565b9150604084013590509250925092565b6000602082840312156116b357600080fd5b6108b382611606565b6000806000606084860312156116d157600080fd5b505081359360208301359350604090920135919050565b600080604083850312156116fb57600080fd5b61170483611606565b915061171260208401611606565b90509250929050565b801515811461172957600080fd5b50565b6000806040838503121561173f57600080fd5b823561163e8161171b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561179b5781600019048211156117815761178161174a565b8085161561178e57918102915b93841c9390800290611765565b509250929050565b6000826117b257506001610752565b816117bf57506000610752565b81600181146117d557600281146117df576117fb565b6001915050610752565b60ff8411156117f0576117f061174a565b50506001821b610752565b5060208310610133831016604e8410600b841016171561181e575081810a610752565b6118288383611760565b806000190482111561183c5761183c61174a565b029392505050565b60006108b360ff8416836117a3565b600081600019048311821515161561186d5761186d61174a565b500290565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000826118af57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156107525761075261174a565b6000602082840312156118d957600080fd5b5051919050565b6000602082840312156118f257600080fd5b81516108b38161171b565b808201808211156107525761075261174a565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119765784516001600160a01b031683529383019391830191600101611951565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202b7ee76dc842e8e7b34f82f4ee4c8a82e5624a18e4e5f810275cb31121486fff64736f6c63430008100033

Deployed Bytecode Sourcemap

2913:7633:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3173:43;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3173:43:0;;;;;;;;;;;;:::i;:::-;;;;;;;;5474:216;;;;;;;;;;-1:-1:-1;5474:216:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;5474:216:0;1004:187:1;3825:44:0;;;;;;;;;;;;3866:3;3825:44;;;;;1342:25:1;;;1330:2;1315:18;3825:44:0;1196:177:1;3313:66:0;;;;;;;;;;;;;:::i;9992:259::-;;;;;;;;;;-1:-1:-1;9992:259:0;;;;;:::i;:::-;;:::i;:::-;;3790:28;;;;;;;;;;;;;;;;5992:370;;;;;;;;;;-1:-1:-1;5992:370:0;;;;;:::i;:::-;;:::i;5329:137::-;;;;;;;;;;;;;:::i;2080:103::-;;;;;;;;;;-1:-1:-1;2080:103:0;;;;;:::i;:::-;2135:4;2170:5;-1:-1:-1;;;;;2159:16:0;;;2170:5;;2159:16;;2080:103;3270:34;;;;;;;;;;;;3303:1;3270:34;;;;;2259:4:1;2247:17;;;2229:36;;2217:2;2202:18;3270:34:0;2087:184:1;9390:102:0;;;;;;;;;;-1:-1:-1;9390:102:0;;;;;:::i;:::-;;:::i;3623:44::-;;;;;;;;;;-1:-1:-1;3623:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5698:122;;;;;;;;;;-1:-1:-1;5698:122:0;;;;;:::i;:::-;;:::i;9183:199::-;;;;;;;;;;-1:-1:-1;9183:199:0;;;;;:::i;:::-;;:::i;3501:45::-;;;;;;;;;;-1:-1:-1;3501:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2306:125;;;;;;;;;;;;;:::i;10259:284::-;;;;;;;;;;-1:-1:-1;10259:284:0;;;;;:::i;:::-;;:::i;3442:50::-;;;;;;;;;;;;;;;;3388:47;;;;;;;;;;;;;;;;9687:147;;;;;;;;;;-1:-1:-1;9687:147:0;;;;;:::i;:::-;;:::i;5106:78::-;;;;;;;;;;-1:-1:-1;5158:7:0;5176:5;-1:-1:-1;;;;;5176:5:0;5106:78;;;-1:-1:-1;;;;;2761:32:1;;;2743:51;;2731:2;2716:18;5106:78:0;2597:203:1;3674:48:0;;;;;;;;;;-1:-1:-1;3674:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3223:40;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3223:40:0;;;;;4060:29;;;;;;;;;;;;;;;5828:156;;;;;;;;;;-1:-1:-1;5828:156:0;;;;;:::i;:::-;;:::i;1809:94::-;;;;;;;;;;-1:-1:-1;1809:94:0;;;;;:::i;:::-;;:::i;3729:52::-;;;;;;;;;;-1:-1:-1;3729:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9842:142;;;;;;;;;;-1:-1:-1;9842:142:0;;;;;:::i;:::-;;:::i;5190:133::-;;;;;;;;;;-1:-1:-1;5190:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5292:19:0;;;5274:7;5292:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5190:133;9500:179;;;;;;;;;;-1:-1:-1;9500:179:0;;;;;:::i;:::-;;:::i;1911:161::-;;;;;;;;;;-1:-1:-1;1911:161:0;;;;;:::i;:::-;;:::i;4029:24::-;;;;;;;;;;-1:-1:-1;4029:24:0;;;;-1:-1:-1;;;;;4029:24:0;;;2191:107;;;;;;;;;;-1:-1:-1;2191:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;2271:19:0;2247:4;2271:19;;;:14;:19;;;;;;;;;2191:107;5474:216;5578:10;5549:4;5566:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5566:32:0;;;;;;;;;;:41;;;5623:37;5549:4;;5566:32;;5623:37;;;;5601:6;1342:25:1;;1330:2;1315:18;;1196:177;5623:37:0;;;;;;;;-1:-1:-1;5678:4:0;5474:216;;;;;:::o;3313:66::-;3367:12;3303:1;3367:2;:12;:::i;:::-;3351:28;;:13;:28;:::i;:::-;3313:66;:::o;9992:259::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;;;;;;;;;10095:21:::1;10075:17;10186:3;10153:28;10165:16:::0;10095:21;10153:28:::1;:::i;:::-;10151:38;;;;:::i;:::-;10200:43;::::0;10127:62;;-1:-1:-1;10208:10:0::1;::::0;10200:43;::::1;;;::::0;10127:62;;10200:43:::1;::::0;;;10127:62;10208:10;10200:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10064:187;;9992:259:::0;:::o;5992:370::-;-1:-1:-1;;;;;6112:19:0;;6092:4;6112:19;;;:11;:19;;;;;;;;6132:10;6112:31;;;;;;;;-1:-1:-1;;6112:52:0;6109:186;;6214:69;;;;;;;;;;;-1:-1:-1;;;6214:69:0;;;;;;;;-1:-1:-1;;;;;6214:19:0;;-1:-1:-1;6214:19:0;;;:11;:19;;;;;6234:10;6214:31;;;;;;;;;;:69;;6250:6;;6214:35;:69::i;:::-;-1:-1:-1;;;;;6180:19:0;;;;;;:11;:19;;;;;;;;6200:10;6180:31;;;;;;;:103;6109:186;6314:40;6328:6;6336:9;6347:6;6314:13;:40::i;:::-;6307:47;;5992:370;;;;;;:::o;5329:137::-;5442:9;:15;;;;3049:42;5382:7;5424:15;;;;;5382:7;;5442:15;3367:12;3303:1;3367:2;:12;:::i;:::-;3351:28;;:13;:28;:::i;:::-;5410:29;;;;:::i;:::-;:47;;;;:::i;:::-;5402:56;;5329:137;:::o;9390:102::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;9460:8:::1;:24:::0;9390:102::o;5698:122::-;5753:4;5777:35;5785:7;-1:-1:-1;;5777:7:0;:35::i;9183:199::-;1763:10;2247:4;2271:19;;;:14;:19;;;;;;;;1742:48;;;;-1:-1:-1;;;1742:48:0;;6312:2:1;1742:48:0;;;6294:21:1;6351:2;6331:18;;;6324:30;-1:-1:-1;;;6370:18:1;;;6363:41;6421:18;;1742:48:0;6110:335:1;1742:48:0;9283:14:::1;:22:::0;;;;9316:13:::1;:20:::0;;;;9347:18:::1;:27:::0;9183:199::o;2306:125::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;2389:5:::1;2380::::0;;-1:-1:-1;;;;;2380:5:0::1;2365:21:::0;;:14:::1;:21;::::0;;;;:29;;-1:-1:-1;;2365:29:0::1;::::0;;2405:18;;-1:-1:-1;;;;;;2405:18:0::1;::::0;;2306:125::o;10259:284::-;10350:12;2170:5;;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;10378:6:::1;10388:1;10378:11:::0;10375:95:::1;;10414:44;::::0;-1:-1:-1;;;10414:44:0;;10452:4:::1;10414:44;::::0;::::1;2743:51:1::0;-1:-1:-1;;;;;10414:29:0;::::1;::::0;::::1;::::0;2716:18:1;;10414:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10405:53;;10375:95;10487:48;::::0;-1:-1:-1;;;10487:48:0;;10516:10:::1;10487:48;::::0;::::1;6813:51:1::0;6880:18;;;6873:34;;;-1:-1:-1;;;;;10487:28:0;::::1;::::0;::::1;::::0;6786:18:1;;10487:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9687:147::-:0;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;9822:4:::1;9803:14:::0;3367:12:::1;3303:1;3367:2;:12;:::i;:::-;3351:28;::::0;:13:::1;:28;:::i;:::-;9789;;;;:::i;:::-;9788:38;;;;:::i;:::-;9770:15;:56:::0;-1:-1:-1;9687:147:0:o;5828:156::-;5908:4;5932:44;5946:10;5958:9;5969:6;5932:13;:44::i;1809:94::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1869:19:0::1;;::::0;;;1891:4:::1;1869:19;::::0;;;;;;;:26;;-1:-1:-1;;1869:26:0::1;::::0;;::::1;::::0;;1809:94::o;9842:142::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;9972:4:::1;9952:15:::0;3367:12:::1;3303:1;3367:2;:12;:::i;:::-;3351:28;::::0;:13:::1;:28;:::i;:::-;9938:29;;;;:::i;:::-;9937:39;;;;:::i;:::-;9922:12;:54:::0;-1:-1:-1;9842:142:0:o;9500:179::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;9596:11:::1;:22:::0;;-1:-1:-1;;;;9596:22:0::1;-1:-1:-1::0;;;9596:22:0;::::1;;;;::::0;;9659:12;3367::::1;3303:1;3367:2;:12;:::i;:::-;3351:28;::::0;:13:::1;:28;:::i;:::-;9645:26;;;;:::i;:::-;9629:13;:42:::0;-1:-1:-1;;9500:179:0:o;1911:161::-;2135:4;2170:5;-1:-1:-1;;;;;2170:5:0;1668:10;2159:16;1652:38;;;;-1:-1:-1;;;1652:38:0;;;;;;;:::i;:::-;1990:5:::1;::::0;-1:-1:-1;;;;;1990:5:0;;::::1;1983:12:::0;;::::1;::::0;1975:51:::1;;;::::0;-1:-1:-1;;;1975:51:0;;7370:2:1;1975:51:0::1;::::0;::::1;7352:21:1::0;7409:2;7389:18;;;7382:30;7448:28;7428:18;;;7421:56;7494:18;;1975:51:0::1;7168:350:1::0;1975:51:0::1;-1:-1:-1::0;;;;;2037:19:0::1;2059:5;2037:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2037:27:0::1;::::0;;1911:161::o;521:192::-;607:7;643:12;635:6;;;;627:29;;;;-1:-1:-1;;;627:29:0;;;;;;;;:::i;:::-;-1:-1:-1;667:9:0;679:5;683:1;679;:5;:::i;:::-;667:17;521:192;-1:-1:-1;;;;;521:192:0:o;6370:993::-;6482:6;;6462:4;;6482:6;;6479:63;;;6498:41;6513:6;6521:9;6532:6;6498:14;:41::i;:::-;6491:48;;;;6479:63;-1:-1:-1;;;;;6559:22:0;;;;;;:14;:22;;;;;;;;6558:23;:55;;;;-1:-1:-1;;;;;;6586:27:0;;;;;;:19;:27;;;;;;;;6585:28;6558:55;:90;;;;-1:-1:-1;;;;;;6618:30:0;;;;;;:19;:30;;;;;;;;6617:31;6558:90;:111;;;;;6665:4;-1:-1:-1;;;;;6652:17:0;:9;-1:-1:-1;;;;;6652:17:0;;;6558:111;6554:230;;;6729:15;;-1:-1:-1;;;;;6695:20:0;;;;;;:9;:20;;;;;;:29;;6718:6;;6695:29;:::i;:::-;6694:50;;6686:86;;;;-1:-1:-1;;;6686:86:0;;7855:2:1;6686:86:0;;;7837:21:1;7894:2;7874:18;;;7867:30;7933:26;7913:18;;;7906:54;7977:18;;6686:86:0;7653:348:1;6686:86:0;6819:12;;6809:6;:22;;6808:51;;;-1:-1:-1;;;;;;6836:23:0;;;;;;:15;:23;;;;;;;;6808:51;:81;;;-1:-1:-1;;;;;;6863:26:0;;;;;;:15;:26;;;;;;;;6808:81;6800:115;;;;-1:-1:-1;;;6800:115:0;;8208:2:1;6800:115:0;;;8190:21:1;8247:2;8227:18;;;8220:30;-1:-1:-1;;;8266:18:1;;;8259:51;8327:18;;6800:115:0;8006:345:1;6800:115:0;6931:16;:14;:16::i;:::-;6928:35;;;6950:10;:8;:10::i;:::-;6995:53;;;;;;;;;;;-1:-1:-1;;;6995:53:0;;;;;;;;-1:-1:-1;;;;;6995:17:0;;-1:-1:-1;6995:17:0;;;:9;:17;;;;;;;;:53;;7017:6;;6995:21;:53::i;:::-;-1:-1:-1;;;;;6975:17:0;;;;;;:9;:17;;;;;;;;:73;;;;7087:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7110:22:0;;;;;;:11;:22;;;;;;;;7087:45;:62;;;-1:-1:-1;7136:8:0;;:13;7087:62;7086:110;;7162:34;7170:6;7178;7186:9;7162:7;:34::i;:::-;7086:110;;;7153:6;7086:110;-1:-1:-1;;;;;7232:20:0;;;;;;:9;:20;;;;;;7061:135;;-1:-1:-1;7232:40:0;;7061:135;7232:24;:40::i;:::-;-1:-1:-1;;;;;7209:20:0;;;;;;;:9;:20;;;;;;;:63;;;;7290:43;;;;;;;;;;7318:14;1342:25:1;;1330:2;1315:18;;1196:177;7290:43:0;;;;;;;;-1:-1:-1;7351:4:0;;6370:993;-1:-1:-1;;;;6370:993:0:o;7375:330::-;7505:53;;;;;;;;;;;-1:-1:-1;;;7505:53:0;;;;;;;;-1:-1:-1;;;;;7505:17:0;;7468:4;7505:17;;;:9;:17;;;;;;;:53;;7527:6;;7505:21;:53::i;:::-;-1:-1:-1;;;;;7485:17:0;;;;;;;:9;:17;;;;;;:73;;;;7592:20;;;;;;;:32;;7617:6;7592:24;:32::i;:::-;-1:-1:-1;;;;;7569:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7640:35;;;;;;;;;;7668:6;1342:25:1;;1330:2;1315:18;;1196:177;7640:35:0;;;;;;;;-1:-1:-1;7693:4:0;7375:330;;;;;:::o;8439:197::-;8488:4;8512:10;-1:-1:-1;;;;;8526:4:0;8512:18;;;;;:38;;-1:-1:-1;8544:6:0;;;;8543:7;8512:38;:62;;;;-1:-1:-1;8563:11:0;;-1:-1:-1;;;8563:11:0;;;;8512:62;:116;;;;-1:-1:-1;;8615:13:0;;8605:4;8587:24;;;;:9;:24;;;;;;:41;;;8439:197::o;8644:531::-;4216:6;:13;;-1:-1:-1;;4216:13:0;4225:4;4216:13;;;8719:16:::1;::::0;;8733:1:::1;8719:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8719:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8719:16:0::1;8695:40;;8764:4;8746;8751:1;8746:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;8746:23:0::1;;;-1:-1:-1::0;;;;;8746:23:0::1;;;::::0;::::1;8790:4;8780;8785:1;8780:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8780:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;8807:6:::1;::::0;8879:13:::1;::::0;8807:189:::1;::::0;-1:-1:-1;;;8807:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;8879:13;8807:6:::1;::::0;8923:4;;8950::::1;::::0;8970:15:::1;::::0;8807:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9090:20:0::1;::::0;9082:56:::1;::::0;9029:21:::1;::::0;-1:-1:-1;9009:17:0::1;::::0;-1:-1:-1;;;;;;9090:20:0;;::::1;::::0;9029:21;;9009:17;9082:56;9009:17;9082:56;9029:21;9090:20;9082:56:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;4234:6:0;:14;;-1:-1:-1;;4234:14:0;;;-1:-1:-1;;;;8644:531:0:o;7713:718::-;7799:7;7822:11;;;:28;;-1:-1:-1;7837:8:0;;:13;7822:28;7819:72;;;-1:-1:-1;7873:6:0;7866:13;;7819:72;7924:18;;-1:-1:-1;;;;;7971:4:0;7958:17;;;;;;7955:154;;-1:-1:-1;8005:14:0;;7955:154;;;8050:4;-1:-1:-1;;;;;8040:14:0;:6;-1:-1:-1;;;;;8040:14:0;;8037:72;;-1:-1:-1;8084:13:0;;8037:72;8121:17;8177:20;3866:3;;8177:20;:::i;:::-;8162:10;8151:8;;8142:6;:17;;;;:::i;:::-;:30;;;;:::i;:::-;8141:57;;;;:::i;:::-;8121:77;-1:-1:-1;8214:13:0;;8211:172;;8288:4;8270:24;;;;:9;:24;;;;;;:39;;8299:9;8270:28;:39::i;:::-;8261:4;8243:24;;;;:9;:24;;;;;;;:66;;;;8329:42;;-1:-1:-1;;;;;8329:42:0;;;;;;;8361:9;1342:25:1;;1330:2;1315:18;;1196:177;8329:42:0;;;;;;;;8211:172;8402:21;:6;8413:9;8402:10;:21::i;:::-;8395:28;7713:718;-1:-1:-1;;;;;;7713:718:0:o;192:181::-;250:7;;282:5;286:1;282;:5;:::i;:::-;270:17;;311:1;306;:6;;298:46;;;;-1:-1:-1;;;298:46:0;;10017:2:1;298:46:0;;;9999:21:1;10056:2;10036:18;;;10029:30;10095:29;10075:18;;;10068:57;10142:18;;298:46:0;9815:351:1;379:136:0;437:7;464:43;468:1;471;464:43;;;;;;;;;;;;;;;;;:3;:43::i;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:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:180::-;1437:6;1490:2;1478:9;1469:7;1465:23;1461:32;1458:52;;;1506:1;1503;1496:12;1458:52;-1:-1:-1;1529:23:1;;1378:180;-1:-1:-1;1378:180:1:o;1563:328::-;1640:6;1648;1656;1709:2;1697:9;1688:7;1684:23;1680:32;1677:52;;;1725:1;1722;1715:12;1677:52;1748:29;1767:9;1748:29;:::i;:::-;1738:39;;1796:38;1830:2;1819:9;1815:18;1796:38;:::i;:::-;1786:48;;1881:2;1870:9;1866:18;1853:32;1843:42;;1563:328;;;;;:::o;1896:186::-;1955:6;2008:2;1996:9;1987:7;1983:23;1979:32;1976:52;;;2024:1;2021;2014:12;1976:52;2047:29;2066:9;2047:29;:::i;2276:316::-;2353:6;2361;2369;2422:2;2410:9;2401:7;2397:23;2393:32;2390:52;;;2438:1;2435;2428:12;2390:52;-1:-1:-1;;2461:23:1;;;2531:2;2516:18;;2503:32;;-1:-1:-1;2582:2:1;2567:18;;;2554:32;;2276:316;-1:-1:-1;2276:316:1:o;2805:260::-;2873:6;2881;2934:2;2922:9;2913:7;2909:23;2905:32;2902:52;;;2950:1;2947;2940:12;2902:52;2973:29;2992:9;2973:29;:::i;:::-;2963:39;;3021:38;3055:2;3044:9;3040:18;3021:38;:::i;:::-;3011:48;;2805:260;;;;;:::o;3070:118::-;3156:5;3149:13;3142:21;3135:5;3132:32;3122:60;;3178:1;3175;3168:12;3122:60;3070:118;:::o;3193:309::-;3258:6;3266;3319:2;3307:9;3298:7;3294:23;3290:32;3287:52;;;3335:1;3332;3325:12;3287:52;3374:9;3361:23;3393:28;3415:5;3393:28;:::i;3733:127::-;3794:10;3789:3;3785:20;3782:1;3775:31;3825:4;3822:1;3815:15;3849:4;3846:1;3839:15;3865:422;3954:1;3997:5;3954:1;4011:270;4032:7;4022:8;4019:21;4011:270;;;4091:4;4087:1;4083:6;4079:17;4073:4;4070:27;4067:53;;;4100:18;;:::i;:::-;4150:7;4140:8;4136:22;4133:55;;;4170:16;;;;4133:55;4249:22;;;;4209:15;;;;4011:270;;;4015:3;3865:422;;;;;:::o;4292:806::-;4341:5;4371:8;4361:80;;-1:-1:-1;4412:1:1;4426:5;;4361:80;4460:4;4450:76;;-1:-1:-1;4497:1:1;4511:5;;4450:76;4542:4;4560:1;4555:59;;;;4628:1;4623:130;;;;4535:218;;4555:59;4585:1;4576:10;;4599:5;;;4623:130;4660:3;4650:8;4647:17;4644:43;;;4667:18;;:::i;:::-;-1:-1:-1;;4723:1:1;4709:16;;4738:5;;4535:218;;4837:2;4827:8;4824:16;4818:3;4812:4;4809:13;4805:36;4799:2;4789:8;4786:16;4781:2;4775:4;4772:12;4768:35;4765:77;4762:159;;;-1:-1:-1;4874:19:1;;;4906:5;;4762:159;4953:34;4978:8;4972:4;4953:34;:::i;:::-;5023:6;5019:1;5015:6;5011:19;5002:7;4999:32;4996:58;;;5034:18;;:::i;:::-;5072:20;;4292:806;-1:-1:-1;;;4292:806:1:o;5103:140::-;5161:5;5190:47;5231:4;5221:8;5217:19;5211:4;5190:47;:::i;5248:168::-;5288:7;5354:1;5350;5346:6;5342:14;5339:1;5336:21;5331:1;5324:9;5317:17;5313:45;5310:71;;;5361:18;;:::i;:::-;-1:-1:-1;5401:9:1;;5248:168::o;5421:329::-;5623:2;5605:21;;;5662:1;5642:18;;;5635:29;-1:-1:-1;;;5695:2:1;5680:18;;5673:36;5741:2;5726:18;;5421:329::o;5755:217::-;5795:1;5821;5811:132;;5865:10;5860:3;5856:20;5853:1;5846:31;5900:4;5897:1;5890:15;5928:4;5925:1;5918:15;5811:132;-1:-1:-1;5957:9:1;;5755:217::o;5977:128::-;6044:9;;;6065:11;;;6062:37;;;6079:18;;:::i;6450:184::-;6520:6;6573:2;6561:9;6552:7;6548:23;6544:32;6541:52;;;6589:1;6586;6579:12;6541:52;-1:-1:-1;6612:16:1;;6450:184;-1:-1:-1;6450:184:1:o;6918:245::-;6985:6;7038:2;7026:9;7017:7;7013:23;7009:32;7006:52;;;7054:1;7051;7044:12;7006:52;7086:9;7080:16;7105:28;7127:5;7105:28;:::i;7523:125::-;7588:9;;;7609:10;;;7606:36;;;7622:18;;:::i;8488:127::-;8549:10;8544:3;8540:20;8537:1;8530:31;8580:4;8577:1;8570:15;8604:4;8601:1;8594:15;8620:980;8882:4;8930:3;8919:9;8915:19;8961:6;8950:9;8943:25;8987:2;9025:6;9020:2;9009:9;9005:18;8998:34;9068:3;9063:2;9052:9;9048:18;9041:31;9092:6;9127;9121:13;9158:6;9150;9143:22;9196:3;9185:9;9181:19;9174:26;;9235:2;9227:6;9223:15;9209:29;;9256:1;9266:195;9280:6;9277:1;9274:13;9266:195;;;9345:13;;-1:-1:-1;;;;;9341:39:1;9329:52;;9436:15;;;;9401:12;;;;9377:1;9295:9;9266:195;;;-1:-1:-1;;;;;;;9517:32:1;;;;9512:2;9497:18;;9490:60;-1:-1:-1;;;9581:3:1;9566:19;9559:35;9478:3;8620:980;-1:-1:-1;;;8620:980:1:o

Swarm Source

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