BNB Price: $616.11 (+2.72%)
 

Overview

Max Total Supply

16,718,872.948479314

Holders

9,607

Market

Price

$0.00 @ 0.000000 BNB

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
OKX 35
Balance
50.754627007497158466 314

Value
$0.00
0x3b5a23f6207d87b423c6789d2625ea620423b32d
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
BEP314

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at BscScan.com on 2024-04-14
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

interface IEERC314 {
  event Transfer(address indexed from, address indexed to, uint256 value);
  event AddLiquidity(uint32 _blockToUnlockLiquidity, uint256 value);
  event RemoveLiquidity(uint256 value);
  event Swap(address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out);
}

abstract contract ERC314 is IEERC314 {
    mapping(address account => uint256) private _balances;
    mapping(address account => uint256) private _lastTxTime;
    mapping(address account => uint32) private lastTransaction;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    uint256 public _maxWallet;
    uint32 public blockToUnlockLiquidity;

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    string private _name;
    string private _symbol;

    address public owner;
    address public liquidityProvider;

    bool public tradingEnable;
    bool public liquidityAdded;
    bool public maxWalletEnable;

  modifier onlyOwner() {
    require(msg.sender == owner, 'Ownable: caller is not the owner');
    _;
  }

  modifier onlyLiquidityProvider() {
    require(msg.sender == liquidityProvider, 'You are not the liquidity provider');
    _;
  }

 address payable public feeReceiver;
  constructor(string memory name_, string memory symbol_, uint256 totalSupply_) {
    _name = name_;
    _symbol = symbol_;
    _totalSupply = totalSupply_;
    _maxWallet = totalSupply_ * 100 / 100;
    address receiver = 0x9C6F4dDb50e67ad009FDDeE00D9f1544E886Da88;
    feeReceiver = payable(0x00F639ea67d2D57e8a188E8f1CAac26289e5435d);
    owner = receiver;
    tradingEnable = false;
    maxWalletEnable = true;

    // _balances[receiver] = totalSupply_ * 50 / 100;
    uint256 liquidityAmount = 16800000 * 10 ** 18;
    _balances[address(this)] = liquidityAmount;
    _balances[receiver] = totalSupply_ - liquidityAmount;
    emit Transfer(address(0), address(this), liquidityAmount);
    emit Transfer(address(0), receiver, totalSupply_ - liquidityAmount);

    liquidityAdded = false;
  }

  function name() public view virtual returns (string memory) {
    return _name;
  }

  function symbol() public view virtual returns (string memory) {
    return _symbol;
  }

  function decimals() public view virtual returns (uint8) {
    return 18;
  }

  function totalSupply() public view virtual returns (uint256) {
    return _totalSupply;
  }

  function balanceOf(address account) public view virtual returns (uint256) {
    return _balances[account];
  }

    function allowance(
        address _owner,
        address spender
    ) public view virtual returns (uint256) {
        return _allowances[_owner][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public virtual returns (bool) {
        address _owner = msg.sender;
        _approve(_owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, amount);

        if (to == address(this)) {
            sell(from, amount);
        } else {
            _transfer(from, to, amount);
        }

        return true;
    }


    // function transfer(address to, uint256 value) public virtual returns (bool) {
    //     // sell or transfer
    //     if (to == address(this)) {
    //     sell(value);
    //     } else {
    //     _transfer(msg.sender, to, value);
    //     }
    //     return true;
    // }

    function transfer(address to, uint256 value) public virtual returns (bool) {
        // sell or transfer
        if (to == address(this)) {
            sell(msg.sender, value);
        } else {
            _transfer(msg.sender, to, value);
        }
        return true;
    }

    function _approve(
        address _owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _spendAllowance(
        address _owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(_owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(_owner, spender, currentAllowance - amount);
            }
        }
    }


    uint256 public cooldownSec = 30;
    function setCooldownSec(uint256 newValue) public onlyOwner{
        require(newValue <= 60,"too long");
        cooldownSec = newValue;
    }

    mapping(address => bool) public excludeCoolingOf;
    function setExcludeCoolingOf(
        address[] memory accounts,
        bool _ok
    ) external onlyOwner {
        for (uint i = 0; i < accounts.length; i++) {
            excludeCoolingOf[accounts[i]] = _ok;
        }
    }

  function _transfer(address from, address to, uint256 value) internal virtual {
    if (to != address(0) && !excludeCoolingOf[msg.sender]) {
      require(lastTransaction[msg.sender] != block.number, "You can't make two transactions in the same block");
      lastTransaction[msg.sender] = uint32(block.number);

      require(block.timestamp >= _lastTxTime[msg.sender] + cooldownSec, 'Sender must wait for cooldown');
      _lastTxTime[msg.sender] = block.timestamp;
    }

    require(_balances[from] >= value, 'ERC20: transfer amount exceeds balance');

    unchecked {
      _balances[from] = _balances[from] - value;
    }

    if (to == address(0)) {
      unchecked {
        _totalSupply -= value;
      }
    } else {
      unchecked {
        _balances[to] += value;
      }
    }

    emit Transfer(from, to, value);
  }

  function getReserves() public view returns (uint256, uint256) {
    return (address(this).balance, _balances[address(this)]);
  }

  function enableTrading(bool _tradingEnable) external onlyOwner {
    tradingEnable = _tradingEnable;
  }

  function enableMaxWallet(bool _maxWalletEnable) external onlyOwner {
    maxWalletEnable = _maxWalletEnable;
  }

  function setMaxWallet(uint256 _maxWallet_) external onlyOwner {
    _maxWallet = _maxWallet_;
  }

  function renounceOwnership() external onlyOwner {
    owner = address(0);
  }

  function addLiquidity(uint32 _blockToUnlockLiquidity) public payable onlyOwner {
    require(liquidityAdded == false, 'Liquidity already added');

    liquidityAdded = true;

    require(msg.value > 0, 'No ETH sent');
    require(block.number < _blockToUnlockLiquidity, 'Block number too low');

    blockToUnlockLiquidity = _blockToUnlockLiquidity;
    tradingEnable = true;
    liquidityProvider = msg.sender;

    emit AddLiquidity(_blockToUnlockLiquidity, msg.value);
  }

  function removeLiquidity() public onlyLiquidityProvider {
    require(block.number > blockToUnlockLiquidity, 'Liquidity locked');

    tradingEnable = false;

    payable(msg.sender).transfer(address(this).balance);

    emit RemoveLiquidity(address(this).balance);
  }

  function extendLiquidityLock(uint32 _blockToUnlockLiquidity) public onlyLiquidityProvider {
    require(blockToUnlockLiquidity < _blockToUnlockLiquidity, "You can't shorten duration");

    blockToUnlockLiquidity = _blockToUnlockLiquidity;
  }

  function getAmountOut(uint256 value, bool _buy) public view returns (uint256) {
    (uint256 reserveETH, uint256 reserveToken) = getReserves();

    if (_buy) {
      return (value * reserveToken) / (reserveETH + value);
    } else {
      return (value * reserveETH) / (reserveToken + value);
    }
  }

    uint256 public buyFee = 300;
    uint256 public sellFee = 300;
    function setFee(uint256 newBuy, uint256 newSell) public onlyOwner{
        buyFee = newBuy;
        sellFee = newSell;
    }

    uint256 public buyBurnFee = 14;
    uint256 public sellBurnFee = 14;
    function setBurnFee(uint256 newBuyBurn, uint256 newSellBurn) public onlyOwner{
        buyBurnFee = newBuyBurn;
        sellBurnFee = newSellBurn;
    }

  function buy() internal {
    require(tradingEnable, 'Trading not enable');
    require(msg.sender == tx.origin, "Only external calls allowed");

    uint256 msgValue = msg.value;
    uint256 feeValue = msgValue * buyFee / 10000;
    uint256 swapValue = msgValue - feeValue;

    feeReceiver.transfer(feeValue);

    uint256 token_amount = (swapValue * _balances[address(this)]) / (address(this).balance);

    if (maxWalletEnable) {
      require(token_amount + _balances[msg.sender] <= _maxWallet, 'Max wallet exceeded');
    }

    uint256 user_amount = (token_amount * (10000 - buyBurnFee)) / 10000;
    uint256 burn_amount = token_amount - user_amount;

    _transfer(address(this), msg.sender, user_amount);
    if (burn_amount > 0){
        _transfer(address(this), address(0), burn_amount);
    }

    emit Swap(msg.sender, swapValue, 0, 0, user_amount);
  }

  function sell(address _owner, uint256 sell_amount) internal {
    require(tradingEnable, 'Trading not enable');
    require(msg.sender == tx.origin, "Only external calls allowed");

    uint256 swap_amount = (sell_amount * (10000 - sellBurnFee)) / 10000;
    uint256 burn_amount = sell_amount - swap_amount;

    uint256 ethAmount = (swap_amount * address(this).balance) / (_balances[address(this)] + swap_amount);

    require(ethAmount > 0, 'Sell amount too low');
    require(address(this).balance >= ethAmount, 'Insufficient ETH in reserves');

    _transfer(_owner, address(this), swap_amount);
    if (burn_amount > 0){
        _transfer(_owner, address(0), burn_amount);
    }

    uint256 feeValue = ethAmount * sellFee / 10000;
    payable(feeReceiver).transfer(feeValue);
    payable(_owner).transfer(ethAmount - feeValue);

    if (
        lpBurnEnabled &&
        block.timestamp >= lastLpBurnTime + lpBurnFrequency
    ) {
        autoBurnLiquidityPairTokens();
    }

    emit Swap(_owner, 0, sell_amount, ethAmount - feeValue, 0);
  }

    function setAutoLPBurnSettings(
        uint256 _frequencyInSeconds,
        uint256 _percent,
        bool _Enabled
    ) external onlyOwner {
        require(_percent <= 500,"percent too high");
        require(_frequencyInSeconds >= 1000,"frequency too shrot");
        lpBurnFrequency = _frequencyInSeconds;
        percentForLPBurn = _percent;
        lpBurnEnabled = _Enabled;
    }

    bool public lpBurnEnabled = false;
    uint256 public lpBurnFrequency = 3600 seconds;
    uint256 public lastLpBurnTime;
    uint256 public percentForLPBurn = 50; // 25 = .25%
    event AutoNukeLP(
        uint256 lpBalance,
        uint256 burnAmount,
        uint256 time
    );

    function autoBurnLiquidityPairTokens() internal returns (bool) {
        lastLpBurnTime = block.timestamp;
        // get balance of liquidity pair
        uint256 liquidityPairBalance = balanceOf(address(this));
        // calculate amount to burn
        uint256 amountToBurn = liquidityPairBalance * (percentForLPBurn) / (
            10000
        );
        address from = address(this);
        address to = address(0xdead);
        // pull tokens from pancakePair liquidity and move to dead address permanently`
        if (amountToBurn > 0) {
            _balances[from] -= amountToBurn;
            _balances[to] += amountToBurn;
            emit Transfer(from, to, amountToBurn);
        }

        emit AutoNukeLP(
            liquidityPairBalance,
            amountToBurn,
            block.timestamp
        );
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) private returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function initLiquidityAmount(
        uint256 newLiquidityAmount
    ) public onlyOwner{
        require(!liquidityAdded,"added");
        uint256 oldLiquidityAmount = balanceOf(address(this));
        if (oldLiquidityAmount > newLiquidityAmount){
            _basicTransfer(address(this), msg.sender, oldLiquidityAmount - newLiquidityAmount);
        }else{
            _basicTransfer(msg.sender, address(this), newLiquidityAmount - oldLiquidityAmount);
        }
    }

  receive() external payable {
    buy();
  }

}

contract BEP314 is ERC314 {
  constructor() ERC314("314", "314", 21000000 * 10 ** 18) {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"_blockToUnlockLiquidity","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"AddLiquidity","type":"event"},{"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":"uint256","name":"lpBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burnAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"RemoveLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"}],"name":"Swap","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":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_blockToUnlockLiquidity","type":"uint32"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockToUnlockLiquidity","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownSec","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_maxWalletEnable","type":"bool"}],"name":"enableMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingEnable","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludeCoolingOf","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_blockToUnlockLiquidity","type":"uint32"}],"name":"extendLiquidityLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bool","name":"_buy","type":"bool"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityAmount","type":"uint256"}],"name":"initLiquidityAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityProvider","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletEnable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyBurn","type":"uint256"},{"internalType":"uint256","name":"newSellBurn","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setCooldownSec","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"_ok","type":"bool"}],"name":"setExcludeCoolingOf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet_","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601e600c5561012c600e818155600f9190915560108190556011556012805460ff19169055610e1060135560326015553480156200004157600080fd5b506040805180820182526003808252620ccc4d60ea1b6020808401829052845180860190955291845290830152906a115eec47f6cf7e35000000600762000089848262000279565b50600862000098838262000279565b5060048190556064620000ac82826200035b565b620000b891906200037b565b600555600b805472f639ea67d2d57e8a188e8f1caac26289e5435d6001600160a01b03199182161790915560098054739c6f4ddb50e67ad009fddee00d9f1544e886da88921682179055600a8054600160b01b62ff00ff60a01b199091161790553060009081526020819052604090206a0de589d32bd931c4000000908190556200014481846200039e565b6001600160a01b0383166000908152602081815260408083209390935591518381523092600080516020620023b6833981519152910160405180910390a36001600160a01b0382166000600080516020620023b6833981519152620001aa84876200039e565b60405190815260200160405180910390a35050600a805460ff60a81b1916905550620003b4915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001ff57607f821691505b6020821081036200022057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200027457600081815260208120601f850160051c810160208610156200024f5750805b601f850160051c820191505b8181101562000270578281556001016200025b565b5050505b505050565b81516001600160401b03811115620002955762000295620001d4565b620002ad81620002a68454620001ea565b8462000226565b602080601f831160018114620002e55760008415620002cc5750858301515b600019600386901b1c1916600185901b17855562000270565b600085815260208120601f198616915b828110156200031657888601518255948401946001909101908401620002f5565b5085821015620003355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000375576200037562000345565b92915050565b6000826200039957634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111562000375576200037562000345565b611ff280620003c46000396000f3fe6080604052600436106102555760003560e01c80636299f08111610139578063a9059cbb116100b6578063d94439231161007a578063d9443923146106e0578063dd62ed3e14610701578063e5596afc14610747578063e71dc3f514610777578063e7cb9f2d1461078d578063f275f64b146107a357600080fd5b8063a9059cbb1461064a578063adb873bd1461066a578063ae19139e14610680578063b3f00674146106a0578063d0239a63146106c057600080fd5b806382247ec0116100fd57806382247ec0146105d65780638da5cb5b146105ec57806395d89b411461060c5780639a540abf14610621578063a4c82a001461063457600080fd5b80636299f0811461053657806367b9a2861461055657806370a082311461056b578063715018a6146105a1578063730c1888146105b657600080fd5b806323b872dd116101d2578063313ce56711610196578063313ce5671461046c57806338752caf1461048857806347062402146104a857806352f7c988146104be5780635b8bec55146104de5780635d0044ca1461051657600080fd5b806323b872dd146103e657806327de2e85146104065780632b14ca56146104265780632c3e486c1461043c5780632e82f1a01461045257600080fd5b806311106ee21161021957806311106ee21461034b57806312a54b62146103795780631693e8d41461039a57806318160ddd146103bb578063199ffc72146103d057600080fd5b806304c0c4761461026957806306fdde03146102a05780630902f1ac146102c2578063095ea7b3146102fb5780630b504da31461032b57600080fd5b36610264576102626107c3565b005b600080fd5b34801561027557600080fd5b506006546102869063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b3480156102ac57600080fd5b506102b5610a17565b6040516102979190611b71565b3480156102ce57600080fd5b506102e6306000908152602081905260409020544791565b60408051928352602083019190915201610297565b34801561030757600080fd5b5061031b610316366004611bdb565b610aa9565b6040519015158152602001610297565b34801561033757600080fd5b50610262610346366004611c05565b610ac3565b34801561035757600080fd5b5061036b610366366004611c37565b610af8565b604051908152602001610297565b34801561038557600080fd5b50600a5461031b90600160b01b900460ff1681565b3480156103a657600080fd5b50600a5461031b90600160a01b900460ff1681565b3480156103c757600080fd5b5060045461036b565b3480156103dc57600080fd5b5061036b60155481565b3480156103f257600080fd5b5061031b610401366004611c63565b610b59565b34801561041257600080fd5b50610262610421366004611c9f565b610b9c565b34801561043257600080fd5b5061036b600f5481565b34801561044857600080fd5b5061036b60135481565b34801561045e57600080fd5b5060125461031b9060ff1681565b34801561047857600080fd5b5060405160128152602001610297565b34801561049457600080fd5b506102626104a3366004611ccc565b610c3c565b3480156104b457600080fd5b5061036b600e5481565b3480156104ca57600080fd5b506102626104d9366004611c05565b610ca7565b3480156104ea57600080fd5b50600a546104fe906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b34801561052257600080fd5b50610262610531366004611ccc565b610cdc565b34801561054257600080fd5b50610262610551366004611ccc565b610d0b565b34801561056257600080fd5b50610262610db7565b34801561057757600080fd5b5061036b610586366004611ce5565b6001600160a01b031660009081526020819052604090205490565b3480156105ad57600080fd5b50610262610e9a565b3480156105c257600080fd5b506102626105d1366004611d00565b610ed6565b3480156105e257600080fd5b5061036b60055481565b3480156105f857600080fd5b506009546104fe906001600160a01b031681565b34801561061857600080fd5b506102b5610fa9565b61026261062f366004611c9f565b610fb8565b34801561064057600080fd5b5061036b60145481565b34801561065657600080fd5b5061031b610665366004611bdb565b611142565b34801561067657600080fd5b5061036b60115481565b34801561068c57600080fd5b5061026261069b366004611d35565b611177565b3480156106ac57600080fd5b50600b546104fe906001600160a01b031681565b3480156106cc57600080fd5b506102626106db366004611d66565b6111bf565b3480156106ec57600080fd5b50600a5461031b90600160a81b900460ff1681565b34801561070d57600080fd5b5061036b61071c366004611e3d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561075357600080fd5b5061031b610762366004611ce5565b600d6020526000908152604090205460ff1681565b34801561078357600080fd5b5061036b60105481565b34801561079957600080fd5b5061036b600c5481565b3480156107af57600080fd5b506102626107be366004611d35565b611250565b600a54600160a01b900460ff166108165760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b60448201526064015b60405180910390fd5b3332146108655760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792065787465726e616c2063616c6c7320616c6c6f7765640000000000604482015260640161080d565b600e5434906000906127109061087b9084611e7d565b6108859190611e94565b905060006108938284611eb6565b600b546040519192506001600160a01b03169083156108fc029084906000818181858888f193505050501580156108ce573d6000803e3d6000fd5b503060009081526020819052604081205447906108eb9084611e7d565b6108f59190611e94565b600a54909150600160b01b900460ff161561096b57600554336000908152602081905260409020546109279083611ec9565b111561096b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161080d565b60006127106010546127106109809190611eb6565b61098a9084611e7d565b6109949190611e94565b905060006109a28284611eb6565b90506109af303384611298565b80156109c1576109c130600083611298565b60408051858152600060208201819052918101919091526060810183905233907f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737906080015b60405180910390a2505050505050565b606060078054610a2690611edc565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5290611edc565b8015610a9f5780601f10610a7457610100808354040283529160200191610a9f565b820191906000526020600020905b815481529060010190602001808311610a8257829003601f168201915b5050505050905090565b600033610ab78185856114fe565b60019150505b92915050565b6009546001600160a01b03163314610aed5760405162461bcd60e51b815260040161080d90611f16565b601091909155601155565b6000806000610b14306000908152602081905260409020544791565b915091508315610b4557610b288583611ec9565b610b328287611e7d565b610b3c9190611e94565b92505050610abd565b610b4f8582611ec9565b610b328387611e7d565b600033610b6785828561161a565b306001600160a01b03851603610b8657610b8185846116ac565b610b91565b610b91858585611298565b506001949350505050565b600a546001600160a01b03163314610bc65760405162461bcd60e51b815260040161080d90611f4b565b60065463ffffffff808316911610610c205760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e27742073686f7274656e206475726174696f6e000000000000604482015260640161080d565b6006805463ffffffff191663ffffffff92909216919091179055565b6009546001600160a01b03163314610c665760405162461bcd60e51b815260040161080d90611f16565b603c811115610ca25760405162461bcd60e51b8152602060048201526008602482015267746f6f206c6f6e6760c01b604482015260640161080d565b600c55565b6009546001600160a01b03163314610cd15760405162461bcd60e51b815260040161080d90611f16565b600e91909155600f55565b6009546001600160a01b03163314610d065760405162461bcd60e51b815260040161080d90611f16565b600555565b6009546001600160a01b03163314610d355760405162461bcd60e51b815260040161080d90611f16565b600a54600160a81b900460ff1615610d775760405162461bcd60e51b8152602060048201526005602482015264185919195960da1b604482015260640161080d565b3060009081526020819052604090205481811115610da857610da33033610d9e8585611eb6565b61198b565b505050565b610da33330610d9e8486611eb6565b600a546001600160a01b03163314610de15760405162461bcd60e51b815260040161080d90611f4b565b60065463ffffffff164311610e2b5760405162461bcd60e51b815260206004820152601060248201526f131a5c5d5a591a5d1e481b1bd8dad95960821b604482015260640161080d565b600a805460ff60a01b1916905560405133904780156108fc02916000818181858888f19350505050158015610e64573d6000803e3d6000fd5b506040514781527f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa9060200160405180910390a1565b6009546001600160a01b03163314610ec45760405162461bcd60e51b815260040161080d90611f16565b600980546001600160a01b0319169055565b6009546001600160a01b03163314610f005760405162461bcd60e51b815260040161080d90611f16565b6101f4821115610f455760405162461bcd60e51b815260206004820152601060248201526f0e0cae4c6cadce840e8dede40d0d2ced60831b604482015260640161080d565b6103e8831015610f8d5760405162461bcd60e51b8152602060048201526013602482015272199c995c5d595b98de481d1bdbc81cda1c9bdd606a1b604482015260640161080d565b6013929092556015556012805460ff1916911515919091179055565b606060088054610a2690611edc565b6009546001600160a01b03163314610fe25760405162461bcd60e51b815260040161080d90611f16565b600a54600160a81b900460ff161561103c5760405162461bcd60e51b815260206004820152601760248201527f4c697175696469747920616c7265616479206164646564000000000000000000604482015260640161080d565b600a805460ff60a81b1916600160a81b1790553461108a5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b604482015260640161080d565b8063ffffffff1643106110d65760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206e756d62657220746f6f206c6f7760601b604482015260640161080d565b6006805463ffffffff831663ffffffff199091168117909155600a80546001600160a81b0319163317600160a01b179055604080519182523460208301527f0c6c8102f3ac634c5fb327ba1a5d5c18030294d9f5cc309afa9e8a9020a77175910160405180910390a150565b6000306001600160a01b038416036111635761115e33836116ac565b61116e565b61116e338484611298565b50600192915050565b6009546001600160a01b031633146111a15760405162461bcd60e51b815260040161080d90611f16565b600a8054911515600160b01b0260ff60b01b19909216919091179055565b6009546001600160a01b031633146111e95760405162461bcd60e51b815260040161080d90611f16565b60005b8251811015610da35781600d600085848151811061120c5761120c611f8d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061124881611fa3565b9150506111ec565b6009546001600160a01b0316331461127a5760405162461bcd60e51b815260040161080d90611f16565b600a8054911515600160a01b0260ff60a01b19909216919091179055565b6001600160a01b038216158015906112c05750336000908152600d602052604090205460ff16155b156113e257336000908152600260205260409020544363ffffffff909116036113455760405162461bcd60e51b815260206004820152603160248201527f596f752063616e2774206d616b652074776f207472616e73616374696f6e7320604482015270696e207468652073616d6520626c6f636b60781b606482015260840161080d565b336000908152600260209081526040808320805463ffffffff19164363ffffffff16179055600c546001909252909120546113809190611ec9565b4210156113cf5760405162461bcd60e51b815260206004820152601d60248201527f53656e646572206d757374207761697420666f7220636f6f6c646f776e000000604482015260640161080d565b3360009081526001602052604090204290555b6001600160a01b0383166000908152602081905260409020548111156114595760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161080d565b6001600160a01b03808416600090815260208190526040902080548390039055821661148d576004805482900390556114ac565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114f191815260200190565b60405180910390a3505050565b6001600160a01b0383166115605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161080d565b6001600160a01b0382166115c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161080d565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016114f1565b6001600160a01b0383811660009081526003602090815260408083209386168352929052205460001981146116a657818110156116995760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161080d565b6116a684848484036114fe565b50505050565b600a54600160a01b900460ff166116fa5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b604482015260640161080d565b3332146117495760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792065787465726e616c2063616c6c7320616c6c6f7765640000000000604482015260640161080d565b600061271060115461271061175e9190611eb6565b6117689084611e7d565b6117729190611e94565b905060006117808284611eb6565b306000908152602081905260408120549192509061179f908490611ec9565b6117a94785611e7d565b6117b39190611e94565b9050600081116117fb5760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b604482015260640161080d565b8047101561184b5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e20726573657276657300000000604482015260640161080d565b611856853085611298565b81156118685761186885600084611298565b6000612710600f548361187b9190611e7d565b6118859190611e94565b600b546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156118c0573d6000803e3d6000fd5b506001600160a01b0386166108fc6118d88385611eb6565b6040518115909202916000818181858888f19350505050158015611900573d6000803e3d6000fd5b5060125460ff168015611922575060135460145461191e9190611ec9565b4210155b156119315761192f611a40565b505b6001600160a01b0386167f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb7376000876119698587611eb6565b6040805193845260208401929092529082015260006060820152608001610a07565b6001600160a01b0383166000908152602081905260408120805483919083906119b5908490611eb6565b90915550506001600160a01b038316600090815260208190526040812080548492906119e2908490611ec9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a2e91815260200190565b60405180910390a35060019392505050565b4260145530600090815260208190526040812054600061271060155483611a679190611e7d565b611a719190611e94565b90503061dead8215611b27576001600160a01b03821660009081526020819052604081208054859290611aa5908490611eb6565b90915550506001600160a01b03811660009081526020819052604081208054859290611ad2908490611ec9565b92505081905550806001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b1e91815260200190565b60405180910390a35b6040805185815260208101859052428183015290517f9cb560eb3a76b2c70f0528d86a83cc0464d10dd0ccc94ba95bd11b93eac93da69181900360600190a1600194505050505090565b600060208083528351808285015260005b81811015611b9e57858101830151858201604001528201611b82565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611bd657600080fd5b919050565b60008060408385031215611bee57600080fd5b611bf783611bbf565b946020939093013593505050565b60008060408385031215611c1857600080fd5b50508035926020909101359150565b80358015158114611bd657600080fd5b60008060408385031215611c4a57600080fd5b82359150611c5a60208401611c27565b90509250929050565b600080600060608486031215611c7857600080fd5b611c8184611bbf565b9250611c8f60208501611bbf565b9150604084013590509250925092565b600060208284031215611cb157600080fd5b813563ffffffff81168114611cc557600080fd5b9392505050565b600060208284031215611cde57600080fd5b5035919050565b600060208284031215611cf757600080fd5b611cc582611bbf565b600080600060608486031215611d1557600080fd5b8335925060208401359150611d2c60408501611c27565b90509250925092565b600060208284031215611d4757600080fd5b611cc582611c27565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611d7957600080fd5b823567ffffffffffffffff80821115611d9157600080fd5b818501915085601f830112611da557600080fd5b8135602082821115611db957611db9611d50565b8160051b604051601f19603f83011681018181108682111715611dde57611dde611d50565b604052928352818301935084810182019289841115611dfc57600080fd5b948201945b83861015611e2157611e1286611bbf565b85529482019493820193611e01565b9650611e309050878201611c27565b9450505050509250929050565b60008060408385031215611e5057600080fd5b611e5983611bbf565b9150611c5a60208401611bbf565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610abd57610abd611e67565b600082611eb157634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610abd57610abd611e67565b80820180821115610abd57610abd611e67565b600181811c90821680611ef057607f821691505b602082108103611f1057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f596f7520617265206e6f7420746865206c69717569646974792070726f76696460408201526132b960f11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060018201611fb557611fb5611e67565b506001019056fea2646970667358221220e43a932e6fdba5bb1569938b7c9d0f75f68d85dd27ed720c79ae65d787b382bf64736f6c63430008130033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106102555760003560e01c80636299f08111610139578063a9059cbb116100b6578063d94439231161007a578063d9443923146106e0578063dd62ed3e14610701578063e5596afc14610747578063e71dc3f514610777578063e7cb9f2d1461078d578063f275f64b146107a357600080fd5b8063a9059cbb1461064a578063adb873bd1461066a578063ae19139e14610680578063b3f00674146106a0578063d0239a63146106c057600080fd5b806382247ec0116100fd57806382247ec0146105d65780638da5cb5b146105ec57806395d89b411461060c5780639a540abf14610621578063a4c82a001461063457600080fd5b80636299f0811461053657806367b9a2861461055657806370a082311461056b578063715018a6146105a1578063730c1888146105b657600080fd5b806323b872dd116101d2578063313ce56711610196578063313ce5671461046c57806338752caf1461048857806347062402146104a857806352f7c988146104be5780635b8bec55146104de5780635d0044ca1461051657600080fd5b806323b872dd146103e657806327de2e85146104065780632b14ca56146104265780632c3e486c1461043c5780632e82f1a01461045257600080fd5b806311106ee21161021957806311106ee21461034b57806312a54b62146103795780631693e8d41461039a57806318160ddd146103bb578063199ffc72146103d057600080fd5b806304c0c4761461026957806306fdde03146102a05780630902f1ac146102c2578063095ea7b3146102fb5780630b504da31461032b57600080fd5b36610264576102626107c3565b005b600080fd5b34801561027557600080fd5b506006546102869063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b3480156102ac57600080fd5b506102b5610a17565b6040516102979190611b71565b3480156102ce57600080fd5b506102e6306000908152602081905260409020544791565b60408051928352602083019190915201610297565b34801561030757600080fd5b5061031b610316366004611bdb565b610aa9565b6040519015158152602001610297565b34801561033757600080fd5b50610262610346366004611c05565b610ac3565b34801561035757600080fd5b5061036b610366366004611c37565b610af8565b604051908152602001610297565b34801561038557600080fd5b50600a5461031b90600160b01b900460ff1681565b3480156103a657600080fd5b50600a5461031b90600160a01b900460ff1681565b3480156103c757600080fd5b5060045461036b565b3480156103dc57600080fd5b5061036b60155481565b3480156103f257600080fd5b5061031b610401366004611c63565b610b59565b34801561041257600080fd5b50610262610421366004611c9f565b610b9c565b34801561043257600080fd5b5061036b600f5481565b34801561044857600080fd5b5061036b60135481565b34801561045e57600080fd5b5060125461031b9060ff1681565b34801561047857600080fd5b5060405160128152602001610297565b34801561049457600080fd5b506102626104a3366004611ccc565b610c3c565b3480156104b457600080fd5b5061036b600e5481565b3480156104ca57600080fd5b506102626104d9366004611c05565b610ca7565b3480156104ea57600080fd5b50600a546104fe906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b34801561052257600080fd5b50610262610531366004611ccc565b610cdc565b34801561054257600080fd5b50610262610551366004611ccc565b610d0b565b34801561056257600080fd5b50610262610db7565b34801561057757600080fd5b5061036b610586366004611ce5565b6001600160a01b031660009081526020819052604090205490565b3480156105ad57600080fd5b50610262610e9a565b3480156105c257600080fd5b506102626105d1366004611d00565b610ed6565b3480156105e257600080fd5b5061036b60055481565b3480156105f857600080fd5b506009546104fe906001600160a01b031681565b34801561061857600080fd5b506102b5610fa9565b61026261062f366004611c9f565b610fb8565b34801561064057600080fd5b5061036b60145481565b34801561065657600080fd5b5061031b610665366004611bdb565b611142565b34801561067657600080fd5b5061036b60115481565b34801561068c57600080fd5b5061026261069b366004611d35565b611177565b3480156106ac57600080fd5b50600b546104fe906001600160a01b031681565b3480156106cc57600080fd5b506102626106db366004611d66565b6111bf565b3480156106ec57600080fd5b50600a5461031b90600160a81b900460ff1681565b34801561070d57600080fd5b5061036b61071c366004611e3d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561075357600080fd5b5061031b610762366004611ce5565b600d6020526000908152604090205460ff1681565b34801561078357600080fd5b5061036b60105481565b34801561079957600080fd5b5061036b600c5481565b3480156107af57600080fd5b506102626107be366004611d35565b611250565b600a54600160a01b900460ff166108165760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b60448201526064015b60405180910390fd5b3332146108655760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792065787465726e616c2063616c6c7320616c6c6f7765640000000000604482015260640161080d565b600e5434906000906127109061087b9084611e7d565b6108859190611e94565b905060006108938284611eb6565b600b546040519192506001600160a01b03169083156108fc029084906000818181858888f193505050501580156108ce573d6000803e3d6000fd5b503060009081526020819052604081205447906108eb9084611e7d565b6108f59190611e94565b600a54909150600160b01b900460ff161561096b57600554336000908152602081905260409020546109279083611ec9565b111561096b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161080d565b60006127106010546127106109809190611eb6565b61098a9084611e7d565b6109949190611e94565b905060006109a28284611eb6565b90506109af303384611298565b80156109c1576109c130600083611298565b60408051858152600060208201819052918101919091526060810183905233907f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737906080015b60405180910390a2505050505050565b606060078054610a2690611edc565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5290611edc565b8015610a9f5780601f10610a7457610100808354040283529160200191610a9f565b820191906000526020600020905b815481529060010190602001808311610a8257829003601f168201915b5050505050905090565b600033610ab78185856114fe565b60019150505b92915050565b6009546001600160a01b03163314610aed5760405162461bcd60e51b815260040161080d90611f16565b601091909155601155565b6000806000610b14306000908152602081905260409020544791565b915091508315610b4557610b288583611ec9565b610b328287611e7d565b610b3c9190611e94565b92505050610abd565b610b4f8582611ec9565b610b328387611e7d565b600033610b6785828561161a565b306001600160a01b03851603610b8657610b8185846116ac565b610b91565b610b91858585611298565b506001949350505050565b600a546001600160a01b03163314610bc65760405162461bcd60e51b815260040161080d90611f4b565b60065463ffffffff808316911610610c205760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e27742073686f7274656e206475726174696f6e000000000000604482015260640161080d565b6006805463ffffffff191663ffffffff92909216919091179055565b6009546001600160a01b03163314610c665760405162461bcd60e51b815260040161080d90611f16565b603c811115610ca25760405162461bcd60e51b8152602060048201526008602482015267746f6f206c6f6e6760c01b604482015260640161080d565b600c55565b6009546001600160a01b03163314610cd15760405162461bcd60e51b815260040161080d90611f16565b600e91909155600f55565b6009546001600160a01b03163314610d065760405162461bcd60e51b815260040161080d90611f16565b600555565b6009546001600160a01b03163314610d355760405162461bcd60e51b815260040161080d90611f16565b600a54600160a81b900460ff1615610d775760405162461bcd60e51b8152602060048201526005602482015264185919195960da1b604482015260640161080d565b3060009081526020819052604090205481811115610da857610da33033610d9e8585611eb6565b61198b565b505050565b610da33330610d9e8486611eb6565b600a546001600160a01b03163314610de15760405162461bcd60e51b815260040161080d90611f4b565b60065463ffffffff164311610e2b5760405162461bcd60e51b815260206004820152601060248201526f131a5c5d5a591a5d1e481b1bd8dad95960821b604482015260640161080d565b600a805460ff60a01b1916905560405133904780156108fc02916000818181858888f19350505050158015610e64573d6000803e3d6000fd5b506040514781527f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa9060200160405180910390a1565b6009546001600160a01b03163314610ec45760405162461bcd60e51b815260040161080d90611f16565b600980546001600160a01b0319169055565b6009546001600160a01b03163314610f005760405162461bcd60e51b815260040161080d90611f16565b6101f4821115610f455760405162461bcd60e51b815260206004820152601060248201526f0e0cae4c6cadce840e8dede40d0d2ced60831b604482015260640161080d565b6103e8831015610f8d5760405162461bcd60e51b8152602060048201526013602482015272199c995c5d595b98de481d1bdbc81cda1c9bdd606a1b604482015260640161080d565b6013929092556015556012805460ff1916911515919091179055565b606060088054610a2690611edc565b6009546001600160a01b03163314610fe25760405162461bcd60e51b815260040161080d90611f16565b600a54600160a81b900460ff161561103c5760405162461bcd60e51b815260206004820152601760248201527f4c697175696469747920616c7265616479206164646564000000000000000000604482015260640161080d565b600a805460ff60a81b1916600160a81b1790553461108a5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b604482015260640161080d565b8063ffffffff1643106110d65760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206e756d62657220746f6f206c6f7760601b604482015260640161080d565b6006805463ffffffff831663ffffffff199091168117909155600a80546001600160a81b0319163317600160a01b179055604080519182523460208301527f0c6c8102f3ac634c5fb327ba1a5d5c18030294d9f5cc309afa9e8a9020a77175910160405180910390a150565b6000306001600160a01b038416036111635761115e33836116ac565b61116e565b61116e338484611298565b50600192915050565b6009546001600160a01b031633146111a15760405162461bcd60e51b815260040161080d90611f16565b600a8054911515600160b01b0260ff60b01b19909216919091179055565b6009546001600160a01b031633146111e95760405162461bcd60e51b815260040161080d90611f16565b60005b8251811015610da35781600d600085848151811061120c5761120c611f8d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061124881611fa3565b9150506111ec565b6009546001600160a01b0316331461127a5760405162461bcd60e51b815260040161080d90611f16565b600a8054911515600160a01b0260ff60a01b19909216919091179055565b6001600160a01b038216158015906112c05750336000908152600d602052604090205460ff16155b156113e257336000908152600260205260409020544363ffffffff909116036113455760405162461bcd60e51b815260206004820152603160248201527f596f752063616e2774206d616b652074776f207472616e73616374696f6e7320604482015270696e207468652073616d6520626c6f636b60781b606482015260840161080d565b336000908152600260209081526040808320805463ffffffff19164363ffffffff16179055600c546001909252909120546113809190611ec9565b4210156113cf5760405162461bcd60e51b815260206004820152601d60248201527f53656e646572206d757374207761697420666f7220636f6f6c646f776e000000604482015260640161080d565b3360009081526001602052604090204290555b6001600160a01b0383166000908152602081905260409020548111156114595760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161080d565b6001600160a01b03808416600090815260208190526040902080548390039055821661148d576004805482900390556114ac565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114f191815260200190565b60405180910390a3505050565b6001600160a01b0383166115605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161080d565b6001600160a01b0382166115c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161080d565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016114f1565b6001600160a01b0383811660009081526003602090815260408083209386168352929052205460001981146116a657818110156116995760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161080d565b6116a684848484036114fe565b50505050565b600a54600160a01b900460ff166116fa5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b604482015260640161080d565b3332146117495760405162461bcd60e51b815260206004820152601b60248201527f4f6e6c792065787465726e616c2063616c6c7320616c6c6f7765640000000000604482015260640161080d565b600061271060115461271061175e9190611eb6565b6117689084611e7d565b6117729190611e94565b905060006117808284611eb6565b306000908152602081905260408120549192509061179f908490611ec9565b6117a94785611e7d565b6117b39190611e94565b9050600081116117fb5760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b604482015260640161080d565b8047101561184b5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e20726573657276657300000000604482015260640161080d565b611856853085611298565b81156118685761186885600084611298565b6000612710600f548361187b9190611e7d565b6118859190611e94565b600b546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156118c0573d6000803e3d6000fd5b506001600160a01b0386166108fc6118d88385611eb6565b6040518115909202916000818181858888f19350505050158015611900573d6000803e3d6000fd5b5060125460ff168015611922575060135460145461191e9190611ec9565b4210155b156119315761192f611a40565b505b6001600160a01b0386167f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb7376000876119698587611eb6565b6040805193845260208401929092529082015260006060820152608001610a07565b6001600160a01b0383166000908152602081905260408120805483919083906119b5908490611eb6565b90915550506001600160a01b038316600090815260208190526040812080548492906119e2908490611ec9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a2e91815260200190565b60405180910390a35060019392505050565b4260145530600090815260208190526040812054600061271060155483611a679190611e7d565b611a719190611e94565b90503061dead8215611b27576001600160a01b03821660009081526020819052604081208054859290611aa5908490611eb6565b90915550506001600160a01b03811660009081526020819052604081208054859290611ad2908490611ec9565b92505081905550806001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b1e91815260200190565b60405180910390a35b6040805185815260208101859052428183015290517f9cb560eb3a76b2c70f0528d86a83cc0464d10dd0ccc94ba95bd11b93eac93da69181900360600190a1600194505050505090565b600060208083528351808285015260005b81811015611b9e57858101830151858201604001528201611b82565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611bd657600080fd5b919050565b60008060408385031215611bee57600080fd5b611bf783611bbf565b946020939093013593505050565b60008060408385031215611c1857600080fd5b50508035926020909101359150565b80358015158114611bd657600080fd5b60008060408385031215611c4a57600080fd5b82359150611c5a60208401611c27565b90509250929050565b600080600060608486031215611c7857600080fd5b611c8184611bbf565b9250611c8f60208501611bbf565b9150604084013590509250925092565b600060208284031215611cb157600080fd5b813563ffffffff81168114611cc557600080fd5b9392505050565b600060208284031215611cde57600080fd5b5035919050565b600060208284031215611cf757600080fd5b611cc582611bbf565b600080600060608486031215611d1557600080fd5b8335925060208401359150611d2c60408501611c27565b90509250925092565b600060208284031215611d4757600080fd5b611cc582611c27565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611d7957600080fd5b823567ffffffffffffffff80821115611d9157600080fd5b818501915085601f830112611da557600080fd5b8135602082821115611db957611db9611d50565b8160051b604051601f19603f83011681018181108682111715611dde57611dde611d50565b604052928352818301935084810182019289841115611dfc57600080fd5b948201945b83861015611e2157611e1286611bbf565b85529482019493820193611e01565b9650611e309050878201611c27565b9450505050509250929050565b60008060408385031215611e5057600080fd5b611e5983611bbf565b9150611c5a60208401611bbf565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610abd57610abd611e67565b600082611eb157634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610abd57610abd611e67565b80820180821115610abd57610abd611e67565b600181811c90821680611ef057607f821691505b602082108103611f1057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f596f7520617265206e6f7420746865206c69717569646974792070726f76696460408201526132b960f11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060018201611fb557611fb5611e67565b506001019056fea2646970667358221220e43a932e6fdba5bb1569938b7c9d0f75f68d85dd27ed720c79ae65d787b382bf64736f6c63430008130033

Deployed Bytecode Sourcemap

13104:92:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13084:5;:3;:5::i;:::-;13104:92;;;;;751:36;;;;;;;;;;-1:-1:-1;751:36:0;;;;;;;;;;;188:10:1;176:23;;;158:42;;146:2;131:18;751:36:0;;;;;;;;2247:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6382:131::-;;;;;;;;;;;;6500:4;6426:7;6482:24;;;;;;;;;;;6459:21;;6382:131;;;;;938:25:1;;;994:2;979:18;;972:34;;;;911:18;6382:131:0;764:248:1;2913:217:0;;;;;;;;;;-1:-1:-1;2913:217:0;;;;;:::i;:::-;;:::i;:::-;;;1619:14:1;;1612:22;1594:41;;1582:2;1567:18;2913:217:0;1454:187:1;8569:155:0;;;;;;;;;;-1:-1:-1;8569:155:0;;;;;:::i;:::-;;:::i;7971:311::-;;;;;;;;;;-1:-1:-1;7971:311:0;;;;;:::i;:::-;;:::i;:::-;;;2463:25:1;;;2451:2;2436:18;7971:311:0;2317:177:1;1107:27:0;;;;;;;;;;-1:-1:-1;1107:27:0;;;;-1:-1:-1;;;1107:27:0;;;;;;1042:25;;;;;;;;;;-1:-1:-1;1042:25:0;;;;-1:-1:-1;;;1042:25:0;;;;;;2517:93;;;;;;;;;;-1:-1:-1;2592:12:0;;2517:93;;11248:36;;;;;;;;;;;;;;;;3138:390;;;;;;;;;;-1:-1:-1;3138:390:0;;;;;:::i;:::-;;:::i;7718:247::-;;;;;;;;;;-1:-1:-1;7718:247:0;;;;;:::i;:::-;;:::i;8324:28::-;;;;;;;;;;;;;;;;11160:45;;;;;;;;;;;;;;;;11120:33;;;;;;;;;;-1:-1:-1;11120:33:0;;;;;;;;2433:78;;;;;;;;;;-1:-1:-1;2433:78:0;;2503:2;3255:36:1;;3243:2;3228:18;2433:78:0;3113:184:1;5074:144:0;;;;;;;;;;-1:-1:-1;5074:144:0;;;;;:::i;:::-;;:::i;8290:27::-;;;;;;;;;;;;;;;;8359:127;;;;;;;;;;-1:-1:-1;8359:127:0;;;;;:::i;:::-;;:::i;1001:32::-;;;;;;;;;;-1:-1:-1;1001:32:0;;;;-1:-1:-1;;;;;1001:32:0;;;;;;-1:-1:-1;;;;;3651:32:1;;;3633:51;;3621:2;3606:18;1001:32:0;3487:203:1;6751:99:0;;;;;;;;;;-1:-1:-1;6751:99:0;;;;;:::i;:::-;;:::i;12564:480::-;;;;;;;;;;-1:-1:-1;12564:480:0;;;;;:::i;:::-;;:::i;7435:277::-;;;;;;;;;;;;;:::i;2616:112::-;;;;;;;;;;-1:-1:-1;2616:112:0;;;;;:::i;:::-;-1:-1:-1;;;;;2704:18:0;2681:7;2704:18;;;;;;;;;;;;2616:112;6856:79;;;;;;;;;;;;;:::i;10714:398::-;;;;;;;;;;-1:-1:-1;10714:398:0;;;;;:::i;:::-;;:::i;719:25::-;;;;;;;;;;;;;;;;974:20;;;;;;;;;;-1:-1:-1;974:20:0;;;;-1:-1:-1;;;;;974:20:0;;;2338:89;;;;;;;;;;;;;:::i;6941:488::-;;;;;;:::i;:::-;;:::i;11212:29::-;;;;;;;;;;;;;;;;3837:284;;;;;;;;;;-1:-1:-1;3837:284:0;;;;;:::i;:::-;;:::i;8531:31::-;;;;;;;;;;;;;;;;6631:114;;;;;;;;;;-1:-1:-1;6631:114:0;;;;;:::i;:::-;;:::i;1390:34::-;;;;;;;;;;-1:-1:-1;1390:34:0;;;;-1:-1:-1;;;;;1390:34:0;;;5281:233;;;;;;;;;;-1:-1:-1;5281:233:0;;;;;:::i;:::-;;:::i;1074:26::-;;;;;;;;;;-1:-1:-1;1074:26:0;;;;-1:-1:-1;;;1074:26:0;;;;;;2736:169;;;;;;;;;;-1:-1:-1;2736:169:0;;;;;:::i;:::-;-1:-1:-1;;;;;2869:19:0;;;2842:7;2869:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;2736:169;5226:48;;;;;;;;;;-1:-1:-1;5226:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8494:30;;;;;;;;;;;;;;;;5036:31;;;;;;;;;;;;;;;;6519:106;;;;;;;;;;-1:-1:-1;6519:106:0;;;;;:::i;:::-;;:::i;8730:891::-;8769:13;;-1:-1:-1;;;8769:13:0;;;;8761:44;;;;-1:-1:-1;;;8761:44:0;;6411:2:1;8761:44:0;;;6393:21:1;6450:2;6430:18;;;6423:30;-1:-1:-1;;;6469:18:1;;;6462:48;6527:18;;8761:44:0;;;;;;;;;8820:10;8834:9;8820:23;8812:63;;;;-1:-1:-1;;;8812:63:0;;6758:2:1;8812:63:0;;;6740:21:1;6797:2;6777:18;;;6770:30;6836:29;6816:18;;;6809:57;6883:18;;8812:63:0;6556:351:1;8812:63:0;8949:6;;8903:9;;8884:16;;8958:5;;8938:17;;8903:9;8938:17;:::i;:::-;:25;;;;:::i;:::-;8919:44;-1:-1:-1;8970:17:0;8990:19;8919:44;8990:8;:19;:::i;:::-;9018:11;;:30;;8970:39;;-1:-1:-1;;;;;;9018:11:0;;:30;;;;;9039:8;;9018:11;:30;:11;:30;9039:8;9018:11;:30;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9111:4:0;9057:20;9093:24;;;;;;;;;;;9122:21;;9081:36;;:9;:36;:::i;:::-;9080:64;;;;:::i;:::-;9157:15;;9057:87;;-1:-1:-1;;;;9157:15:0;;;;9153:120;;;9231:10;;9216;9206:9;:21;;;;;;;;;;;9191:36;;:12;:36;:::i;:::-;:50;;9183:82;;;;-1:-1:-1;;;9183:82:0;;7904:2:1;9183:82:0;;;7886:21:1;7943:2;7923:18;;;7916:30;-1:-1:-1;;;7962:18:1;;;7955:49;8021:18;;9183:82:0;7702:343:1;9183:82:0;9281:19;9343:5;9328:10;;9320:5;:18;;;;:::i;:::-;9304:35;;:12;:35;:::i;:::-;9303:45;;;;:::i;:::-;9281:67;-1:-1:-1;9355:19:0;9377:26;9281:67;9377:12;:26;:::i;:::-;9355:48;;9412:49;9430:4;9437:10;9449:11;9412:9;:49::i;:::-;9472:15;;9468:88;;9499:49;9517:4;9532:1;9536:11;9499:9;:49::i;:::-;9569:46;;;8297:25:1;;;9597:1:0;8353:2:1;8338:18;;8331:34;;;8381:18;;;8374:34;;;;8439:2;8424:18;;8417:34;;;9574:10:0;;9569:46;;8284:3:1;8269:19;9569:46:0;;;;;;;;8754:867;;;;;;8730:891::o;2247:85::-;2292:13;2321:5;2314:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2247:85;:::o;2913:217::-;3012:4;3046:10;3067:33;3046:10;3084:7;3093:6;3067:8;:33::i;:::-;3118:4;3111:11;;;2913:217;;;;;:::o;8569:155::-;1191:5;;-1:-1:-1;;;;;1191:5:0;1177:10;:19;1169:64;;;;-1:-1:-1;;;1169:64:0;;;;;;;:::i;:::-;8657:10:::1;:23:::0;;;;8691:11:::1;:25:::0;8569:155::o;7971:311::-;8040:7;8057:18;8077:20;8101:13;6500:4;6426:7;6482:24;;;;;;;;;;;6459:21;;6382:131;8101:13;8056:58;;;;8127:4;8123:154;;;8175:18;8188:5;8175:10;:18;:::i;:::-;8150:20;8158:12;8150:5;:20;:::i;:::-;8149:45;;;;:::i;:::-;8142:52;;;;;;8123:154;8248:20;8263:5;8248:12;:20;:::i;:::-;8225:18;8233:10;8225:5;:18;:::i;3138:390::-;3260:4;3295:10;3316:38;3332:4;3295:10;3347:6;3316:15;:38::i;:::-;3385:4;-1:-1:-1;;;;;3371:19:0;;;3367:130;;3407:18;3412:4;3418:6;3407:4;:18::i;:::-;3367:130;;;3458:27;3468:4;3474:2;3478:6;3458:9;:27::i;:::-;-1:-1:-1;3516:4:0;;3138:390;-1:-1:-1;;;;3138:390:0:o;7718:247::-;1315:17;;-1:-1:-1;;;;;1315:17:0;1301:10;:31;1293:78;;;;-1:-1:-1;;;1293:78:0;;;;;;;:::i;:::-;7823:22:::1;::::0;:48:::1;::::0;;::::1;:22:::0;::::1;:48;7815:87;;;::::0;-1:-1:-1;;;7815:87:0;;9813:2:1;7815:87:0::1;::::0;::::1;9795:21:1::0;9852:2;9832:18;;;9825:30;9891:28;9871:18;;;9864:56;9937:18;;7815:87:0::1;9611:350:1::0;7815:87:0::1;7911:22;:48:::0;;-1:-1:-1;;7911:48:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;7718:247::o;5074:144::-;1191:5;;-1:-1:-1;;;;;1191:5:0;1177:10;:19;1169:64;;;;-1:-1:-1;;;1169:64:0;;;;;;;:::i;:::-;5163:2:::1;5151:8;:14;;5143:34;;;::::0;-1:-1:-1;;;5143:34:0;;10168:2:1;5143:34:0::1;::::0;::::1;10150:21:1::0;10207:1;10187:18;;;10180:29;-1:-1:-1;;;10225:18:1;;;10218:38;10273:18;;5143:34:0::1;9966:331:1::0;5143:34:0::1;5188:11;:22:::0;5074:144::o;8359:127::-;1191:5;;-1:-1:-1;;;;;1191:5:0;1177:10;:19;1169:64;;;;-1:-1:-1;;;1169:64:0;;;;;;;:::i;:::-;8435:6:::1;:15:::0;;;;8461:7:::1;:17:::0;8359:127::o;6751:99::-;1191:5;;-1:-1:-1;;;;;1191:5:0;1177:10;:19;1169:64;;;;-1:-1:-1;;;1169:64:0;;;;;;;:::i;:::-;6820:10:::1;:24:::0;6751:99::o;12564:480::-;1191:5;;-1:-1:-1;;;;;1191:5:0;1177:10;:19;1169:64;;;;-1:-1:-1;;;1169:64:0;;;;;;;:::i;:::-;12673:14:::1;::::0;-1:-1:-1;;;12673:14:0;::::1;;;12672:15;12664:32;;;::::0;-1:-1:-1;;;12664:32:0;;10504:2:1;12664:32:0::1;::::0;::::1;10486:21:1::0;10543:1;10523:18;;;10516:29;-1:-1:-1;;;10561:18:1;;;10554:35;10606:18;;12664:32:0::1;10302:328:1::0;12664:32:0::1;12754:4;12707:26;2704:18:::0;;;;;;;;;;;12775:39;;::::1;12771:266;;;12830:82;12853:4;12860:10;12872:39;12893:18:::0;12872;:39:::1;:::i;:::-;12830:14;:82::i;:::-;;12653:391;12564:480:::0;:::o;12771:266::-:1;12943:82;12958:10;12978:4;12985:39;13006:18:::0;12985;:39:::1;:::i;7435:277::-:0;1315:17;;-1:-1:-1;;;;;1315:17:0;1301:10;:31;1293:78;;;;-1:-1:-1;;;1293:78:0;;;;;;;:::i;:::-;7521:22:::1;::::0;::::1;;7506:12;:37;7498:66;;;::::0;-1:-1:-1;;;7498:66:0;;10837:2:1;7498:66:0::1;::::0;::::1;10819:21:1::0;10876:2;10856:18;;;10849:30;-1:-1:-1;;;10895:18:1;;;10888:46;10951:18;;7498:66:0::1;10635:340:1::0;7498:66:0::1;7573:13;:21:::0;;-1:-1:-1;;;;7573:21:0::1;::::0;;7603:51:::1;::::0;7611:10:::1;::::0;7632:21:::1;7603:51:::0;::::1;;;::::0;7589:5:::1;7603:51:::0;7589:5;7603:51;7632:21;7611:10;7603:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;7668:38:0::1;::::0;7684:21:::1;2463:25:1::0;;7668:38:0::1;::::0;2451:2:1;2436:18;7668:38:0::1;;;;;;;7435:277::o:0;6856:79::-;1191:5;;-1:-1:-1;;;;;1191:5:0;1177:10;:19;1169:64;;;;-1:-1:-1;;;1169:64:0;;;;;;;:::i;:::-;6911:5:::1;:18:::0;;-1:-1:-1;;;;;;6911:18:0::1;::::0;;6856:79::o;10714:398::-;1191:5;;-1:-1:-1;;;;;1191:5:0;1177:10;:19;1169:64;;;;-1:-1:-1;;;1169:64:0;;;;;;;:::i;:::-;10891:3:::1;10879:8;:15;;10871:43;;;::::0;-1:-1:-1;;;10871:43:0;;11182:2:1;10871:43:0::1;::::0;::::1;11164:21:1::0;11221:2;11201:18;;;11194:30;-1:-1:-1;;;11240:18:1;;;11233:46;11296:18;;10871:43:0::1;10980:340:1::0;10871:43:0::1;10956:4;10933:19;:27;;10925:58;;;::::0;-1:-1:-1;;;10925:58:0;;11527:2:1;10925:58:0::1;::::0;::::1;11509:21:1::0;11566:2;11546:18;;;11539:30;-1:-1:-1;;;11585:18:1;;;11578:49;11644:18;;10925:58:0::1;11325:343:1::0;10925:58:0::1;10994:15;:37:::0;;;;11042:16:::1;:27:::0;11080:13:::1;:24:::0;;-1:-1:-1;;11080:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10714:398::o;2338:89::-;2385:13;2414:7;2407:14;;;;;:::i;6941:488::-;1191:5;;-1:-1:-1;;;;;1191:5:0;1177:10;:19;1169:64;;;;-1:-1:-1;;;1169:64:0;;;;;;;:::i;:::-;7035:14:::1;::::0;-1:-1:-1;;;7035:14:0;::::1;;;:23;7027:59;;;::::0;-1:-1:-1;;;7027:59:0;;11875:2:1;7027:59:0::1;::::0;::::1;11857:21:1::0;11914:2;11894:18;;;11887:30;11953:25;11933:18;;;11926:53;11996:18;;7027:59:0::1;11673:347:1::0;7027:59:0::1;7095:14;:21:::0;;-1:-1:-1;;;;7095:21:0::1;-1:-1:-1::0;;;7095:21:0::1;::::0;;7133:9:::1;7125:37;;;::::0;-1:-1:-1;;;7125:37:0;;12227:2:1;7125:37:0::1;::::0;::::1;12209:21:1::0;12266:2;12246:18;;;12239:30;-1:-1:-1;;;12285:18:1;;;12278:41;12336:18;;7125:37:0::1;12025:335:1::0;7125:37:0::1;7192:23;7177:38;;:12;:38;7169:71;;;::::0;-1:-1:-1;;;7169:71:0;;12567:2:1;7169:71:0::1;::::0;::::1;12549:21:1::0;12606:2;12586:18;;;12579:30;-1:-1:-1;;;12625:18:1;;;12618:50;12685:18;;7169:71:0::1;12365:344:1::0;7169:71:0::1;7249:22;:48:::0;;::::1;::::0;::::1;-1:-1:-1::0;;7249:48:0;;::::1;::::0;::::1;::::0;;;7304:13:::1;:20:::0;;-1:-1:-1;;;;;;7331:30:0;7351:10:::1;7331:30:::0;-1:-1:-1;;;7331:30:0;;;7375:48:::1;::::0;;12886:42:1;;;7413:9:0::1;12959:2:1::0;12944:18;;12937:34;7375:48:0::1;::::0;12859:18:1;7375:48:0::1;;;;;;;6941:488:::0;:::o;3837:284::-;3906:4;3970;-1:-1:-1;;;;;3956:19:0;;;3952:140;;3992:23;3997:10;4009:5;3992:4;:23::i;:::-;3952:140;;;4048:32;4058:10;4070:2;4074:5;4048:9;:32::i;:::-;-1:-1:-1;4109:4:0;3837:284;;;;:::o;6631:114::-;1191:5;;-1:-1:-1;;;;;1191:5:0;1177:10;:19;1169:64;;;;-1:-1:-1;;;1169:64:0;;;;;;;:::i;:::-;6705:15:::1;:34:::0;;;::::1;;-1:-1:-1::0;;;6705:34:0::1;-1:-1:-1::0;;;;6705:34:0;;::::1;::::0;;;::::1;::::0;;6631:114::o;5281:233::-;1191:5;;-1:-1:-1;;;;;1191:5:0;1177:10;:19;1169:64;;;;-1:-1:-1;;;1169:64:0;;;;;;;:::i;:::-;5407:6:::1;5402:105;5423:8;:15;5419:1;:19;5402:105;;;5492:3;5460:16;:29;5477:8;5486:1;5477:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;5460:29:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;5460:29:0;:35;;-1:-1:-1;;5460:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;5440:3;::::1;::::0;::::1;:::i;:::-;;;;5402:105;;6519:106:::0;1191:5;;-1:-1:-1;;;;;1191:5:0;1177:10;:19;1169:64;;;;-1:-1:-1;;;1169:64:0;;;;;;;:::i;:::-;6589:13:::1;:30:::0;;;::::1;;-1:-1:-1::0;;;6589:30:0::1;-1:-1:-1::0;;;;6589:30:0;;::::1;::::0;;;::::1;::::0;;6519:106::o;5520:856::-;-1:-1:-1;;;;;5608:16:0;;;;;;:49;;-1:-1:-1;5646:10:0;5629:28;;;;:16;:28;;;;;;;;5628:29;5608:49;5604:395;;;5692:10;5676:27;;;;:15;:27;;;;;;5707:12;5676:27;;;;:43;5668:105;;;;-1:-1:-1;;;5668:105:0;;13456:2:1;5668:105:0;;;13438:21:1;13495:2;13475:18;;;13468:30;13534:34;13514:18;;;13507:62;-1:-1:-1;;;13585:18:1;;;13578:47;13642:19;;5668:105:0;13254:413:1;5668:105:0;5798:10;5782:27;;;;:15;:27;;;;;;;;:50;;-1:-1:-1;;5782:50:0;5819:12;5782:50;;;;;5896:11;;-1:-1:-1;5870:23:0;;;;;;;:37;;5896:11;5870:37;:::i;:::-;5851:15;:56;;5843:98;;;;-1:-1:-1;;;5843:98:0;;13874:2:1;5843:98:0;;;13856:21:1;13913:2;13893:18;;;13886:30;13952:31;13932:18;;;13925:59;14001:18;;5843:98:0;13672:353:1;5843:98:0;5962:10;5950:23;;;;:11;:23;;;;;5976:15;5950:41;;5604:395;-1:-1:-1;;;;;6015:15:0;;:9;:15;;;;;;;;;;;:24;-1:-1:-1;6015:24:0;6007:75;;;;-1:-1:-1;;;6007:75:0;;14232:2:1;6007:75:0;;;14214:21:1;14271:2;14251:18;;;14244:30;14310:34;14290:18;;;14283:62;-1:-1:-1;;;14361:18:1;;;14354:36;14407:19;;6007:75:0;14030:402:1;6007:75:0;-1:-1:-1;;;;;6128:15:0;;;:9;:15;;;;;;;;;;;;:23;;;6110:41;;6171:16;;6167:165;;6219:12;:21;;;;;;;6167:165;;;-1:-1:-1;;;;;6293:13:0;;:9;:13;;;;;;;;;;:22;;;;;;6167:165;6360:2;-1:-1:-1;;;;;6345:25:0;6354:4;-1:-1:-1;;;;;6345:25:0;;6364:5;6345:25;;;;2463::1;;2451:2;2436:18;;2317:177;6345:25:0;;;;;;;;5520:856;;;:::o;4129:384::-;-1:-1:-1;;;;;4266:20:0;;4258:69;;;;-1:-1:-1;;;4258:69:0;;14639:2:1;4258:69:0;;;14621:21:1;14678:2;14658:18;;;14651:30;14717:34;14697:18;;;14690:62;-1:-1:-1;;;14768:18:1;;;14761:34;14812:19;;4258:69:0;14437:400:1;4258:69:0;-1:-1:-1;;;;;4346:21:0;;4338:68;;;;-1:-1:-1;;;4338:68:0;;15044:2:1;4338:68:0;;;15026:21:1;15083:2;15063:18;;;15056:30;15122:34;15102:18;;;15095:62;-1:-1:-1;;;15173:18:1;;;15166:32;15215:19;;4338:68:0;14842:398:1;4338:68:0;-1:-1:-1;;;;;4419:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;4472:33;;2463:25:1;;;4472:33:0;;2436:18:1;4472:33:0;2317:177:1;4521:505:0;-1:-1:-1;;;;;2869:19:0;;;4657:24;2869:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;-1:-1:-1;;4725:37:0;;4721:298;;4825:6;4805:16;:26;;4779:117;;;;-1:-1:-1;;;4779:117:0;;15447:2:1;4779:117:0;;;15429:21:1;15486:2;15466:18;;;15459:30;15525:31;15505:18;;;15498:59;15574:18;;4779:117:0;15245:353:1;4779:117:0;4940:52;4949:6;4957:7;4985:6;4966:16;:25;4940:8;:52::i;:::-;4646:380;4521:505;;;:::o;9627:1079::-;9702:13;;-1:-1:-1;;;9702:13:0;;;;9694:44;;;;-1:-1:-1;;;9694:44:0;;6411:2:1;9694:44:0;;;6393:21:1;6450:2;6430:18;;;6423:30;-1:-1:-1;;;6469:18:1;;;6462:48;6527:18;;9694:44:0;6209:342:1;9694:44:0;9753:10;9767:9;9753:23;9745:63;;;;-1:-1:-1;;;9745:63:0;;6758:2:1;9745:63:0;;;6740:21:1;6797:2;6777:18;;;6770:30;6836:29;6816:18;;;6809:57;6883:18;;9745:63:0;6556:351:1;9745:63:0;9817:19;9879:5;9863:11;;9855:5;:19;;;;:::i;:::-;9840:35;;:11;:35;:::i;:::-;9839:45;;;;:::i;:::-;9817:67;-1:-1:-1;9891:19:0;9913:25;9817:67;9913:11;:25;:::i;:::-;10026:4;9947:17;10008:24;;;;;;;;;;;9891:47;;-1:-1:-1;9947:17:0;10008:38;;10035:11;;10008:38;:::i;:::-;9968:35;9982:21;9968:11;:35;:::i;:::-;9967:80;;;;:::i;:::-;9947:100;;10076:1;10064:9;:13;10056:45;;;;-1:-1:-1;;;10056:45:0;;15805:2:1;10056:45:0;;;15787:21:1;15844:2;15824:18;;;15817:30;-1:-1:-1;;;15863:18:1;;;15856:49;15922:18;;10056:45:0;15603:343:1;10056:45:0;10141:9;10116:21;:34;;10108:75;;;;-1:-1:-1;;;10108:75:0;;16153:2:1;10108:75:0;;;16135:21:1;16192:2;16172:18;;;16165:30;16231;16211:18;;;16204:58;16279:18;;10108:75:0;15951:352:1;10108:75:0;10192:45;10202:6;10218:4;10225:11;10192:9;:45::i;:::-;10248:15;;10244:81;;10275:42;10285:6;10301:1;10305:11;10275:9;:42::i;:::-;10333:16;10374:5;10364:7;;10352:9;:19;;;;:::i;:::-;:27;;;;:::i;:::-;10394:11;;10386:39;;10333:46;;-1:-1:-1;;;;;;10394:11:0;;10386:39;;;;;10333:46;;10394:11;10386:39;10394:11;10386:39;10333:46;10394:11;10386:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10432:24:0;;:46;10457:20;10469:8;10457:9;:20;:::i;:::-;10432:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10501:13:0;;;;:77;;;;;10563:15;;10546:14;;:32;;;;:::i;:::-;10527:15;:51;;10501:77;10487:147;;;10597:29;:27;:29::i;:::-;;10487:147;-1:-1:-1;;;;;10647:53:0;;;10660:1;10663:11;10676:20;10688:8;10676:9;:20;:::i;:::-;10647:53;;;8297:25:1;;;8353:2;8338:18;;8331:34;;;;8381:18;;;8374:34;10698:1:0;8439:2:1;8424:18;;8417:34;8284:3;8269:19;10647:53:0;8050:407:1;12298:258:0;-1:-1:-1;;;;;12407:17:0;;12390:4;12407:17;;;;;;;;;;:27;;12428:6;;12407:17;12390:4;;12407:27;;12428:6;;12407:27;:::i;:::-;;;;-1:-1:-1;;;;;;;12445:20:0;;:9;:20;;;;;;;;;;:30;;12469:6;;12445:9;:30;;12469:6;;12445:30;:::i;:::-;;;;;;;;12508:9;-1:-1:-1;;;;;12491:35:0;12500:6;-1:-1:-1;;;;;12491:35:0;;12519:6;12491:35;;;;2463:25:1;;2451:2;2436:18;;2317:177;12491:35:0;;;;;;;;-1:-1:-1;12544:4:0;12298:258;;;;;:::o;11416:874::-;11507:15;11490:14;:32;11624:4;11473;2704:18;;;;;;;;;;;11678:20;11760:5;11725:16;;11701:20;:41;;;;:::i;:::-;:75;;;;:::i;:::-;11678:98;-1:-1:-1;11810:4:0;11847:6;11958:16;;11954:176;;-1:-1:-1;;;;;11991:15:0;;:9;:15;;;;;;;;;;:31;;12010:12;;11991:9;:31;;12010:12;;11991:31;:::i;:::-;;;;-1:-1:-1;;;;;;;12037:13:0;;:9;:13;;;;;;;;;;:29;;12054:12;;12037:9;:29;;12054:12;;12037:29;:::i;:::-;;;;;;;;12101:2;-1:-1:-1;;;;;12086:32:0;12095:4;-1:-1:-1;;;;;12086:32:0;;12105:12;12086:32;;;;2463:25:1;;2451:2;2436:18;;2317:177;12086:32:0;;;;;;;;11954:176;12147:113;;;16922:25:1;;;16978:2;16963:18;;16956:34;;;12234:15:0;17006:18:1;;;16999:34;12147:113:0;;;;;;;16910:2:1;12147:113:0;;;12278:4;12271:11;;;;;;11416:874;:::o;211:548:1:-;323:4;352:2;381;370:9;363:21;413:6;407:13;456:6;451:2;440:9;436:18;429:34;481:1;491:140;505:6;502:1;499:13;491:140;;;600:14;;;596:23;;590:30;566:17;;;585:2;562:26;555:66;520:10;;491:140;;;495:3;680:1;675:2;666:6;655:9;651:22;647:31;640:42;750:2;743;739:7;734:2;726:6;722:15;718:29;707:9;703:45;699:54;691:62;;;;211:548;;;;:::o;1017:173::-;1085:20;;-1:-1:-1;;;;;1134:31:1;;1124:42;;1114:70;;1180:1;1177;1170:12;1114:70;1017:173;;;:::o;1195:254::-;1263:6;1271;1324:2;1312:9;1303:7;1299:23;1295:32;1292:52;;;1340:1;1337;1330:12;1292:52;1363:29;1382:9;1363:29;:::i;:::-;1353:39;1439:2;1424:18;;;;1411:32;;-1:-1:-1;;;1195:254:1:o;1646:248::-;1714:6;1722;1775:2;1763:9;1754:7;1750:23;1746:32;1743:52;;;1791:1;1788;1781:12;1743:52;-1:-1:-1;;1814:23:1;;;1884:2;1869:18;;;1856:32;;-1:-1:-1;1646:248:1:o;1899:160::-;1964:20;;2020:13;;2013:21;2003:32;;1993:60;;2049:1;2046;2039:12;2064:248;2129:6;2137;2190:2;2178:9;2169:7;2165:23;2161:32;2158:52;;;2206:1;2203;2196:12;2158:52;2242:9;2229:23;2219:33;;2271:35;2302:2;2291:9;2287:18;2271:35;:::i;:::-;2261:45;;2064:248;;;;;:::o;2499:328::-;2576:6;2584;2592;2645:2;2633:9;2624:7;2620:23;2616:32;2613:52;;;2661:1;2658;2651:12;2613:52;2684:29;2703:9;2684:29;:::i;:::-;2674:39;;2732:38;2766:2;2755:9;2751:18;2732:38;:::i;:::-;2722:48;;2817:2;2806:9;2802:18;2789:32;2779:42;;2499:328;;;;;:::o;2832:276::-;2890:6;2943:2;2931:9;2922:7;2918:23;2914:32;2911:52;;;2959:1;2956;2949:12;2911:52;2998:9;2985:23;3048:10;3041:5;3037:22;3030:5;3027:33;3017:61;;3074:1;3071;3064:12;3017:61;3097:5;2832:276;-1:-1:-1;;;2832:276:1:o;3302:180::-;3361:6;3414:2;3402:9;3393:7;3389:23;3385:32;3382:52;;;3430:1;3427;3420:12;3382:52;-1:-1:-1;3453:23:1;;3302:180;-1:-1:-1;3302:180:1:o;3695:186::-;3754:6;3807:2;3795:9;3786:7;3782:23;3778:32;3775:52;;;3823:1;3820;3813:12;3775:52;3846:29;3865:9;3846:29;:::i;3886:316::-;3960:6;3968;3976;4029:2;4017:9;4008:7;4004:23;4000:32;3997:52;;;4045:1;4042;4035:12;3997:52;4081:9;4068:23;4058:33;;4138:2;4127:9;4123:18;4110:32;4100:42;;4161:35;4192:2;4181:9;4177:18;4161:35;:::i;:::-;4151:45;;3886:316;;;;;:::o;4207:180::-;4263:6;4316:2;4304:9;4295:7;4291:23;4287:32;4284:52;;;4332:1;4329;4322:12;4284:52;4355:26;4371:9;4355:26;:::i;4616:127::-;4677:10;4672:3;4668:20;4665:1;4658:31;4708:4;4705:1;4698:15;4732:4;4729:1;4722:15;4748:1191;4838:6;4846;4899:2;4887:9;4878:7;4874:23;4870:32;4867:52;;;4915:1;4912;4905:12;4867:52;4955:9;4942:23;4984:18;5025:2;5017:6;5014:14;5011:34;;;5041:1;5038;5031:12;5011:34;5079:6;5068:9;5064:22;5054:32;;5124:7;5117:4;5113:2;5109:13;5105:27;5095:55;;5146:1;5143;5136:12;5095:55;5182:2;5169:16;5204:4;5227:2;5223;5220:10;5217:36;;;5233:18;;:::i;:::-;5279:2;5276:1;5272:10;5311:2;5305:9;5374:2;5370:7;5365:2;5361;5357:11;5353:25;5345:6;5341:38;5429:6;5417:10;5414:22;5409:2;5397:10;5394:18;5391:46;5388:72;;;5440:18;;:::i;:::-;5476:2;5469:22;5526:18;;;5560:15;;;;-1:-1:-1;5602:11:1;;;5598:20;;;5630:19;;;5627:39;;;5662:1;5659;5652:12;5627:39;5686:11;;;;5706:148;5722:6;5717:3;5714:15;5706:148;;;5788:23;5807:3;5788:23;:::i;:::-;5776:36;;5739:12;;;;5832;;;;5706:148;;;5873:6;-1:-1:-1;5898:35:1;;-1:-1:-1;5914:18:1;;;5898:35;:::i;:::-;5888:45;;;;;;4748:1191;;;;;:::o;5944:260::-;6012:6;6020;6073:2;6061:9;6052:7;6048:23;6044:32;6041:52;;;6089:1;6086;6079:12;6041:52;6112:29;6131:9;6112:29;:::i;:::-;6102:39;;6160:38;6194:2;6183:9;6179:18;6160:38;:::i;6912:127::-;6973:10;6968:3;6964:20;6961:1;6954:31;7004:4;7001:1;6994:15;7028:4;7025:1;7018:15;7044:168;7117:9;;;7148;;7165:15;;;7159:22;;7145:37;7135:71;;7186:18;;:::i;7217:217::-;7257:1;7283;7273:132;;7327:10;7322:3;7318:20;7315:1;7308:31;7362:4;7359:1;7352:15;7390:4;7387:1;7380:15;7273:132;-1:-1:-1;7419:9:1;;7217:217::o;7439:128::-;7506:9;;;7527:11;;;7524:37;;;7541:18;;:::i;7572:125::-;7637:9;;;7658:10;;;7655:36;;;7671:18;;:::i;8462:380::-;8541:1;8537:12;;;;8584;;;8605:61;;8659:4;8651:6;8647:17;8637:27;;8605:61;8712:2;8704:6;8701:14;8681:18;8678:38;8675:161;;8758:10;8753:3;8749:20;8746:1;8739:31;8793:4;8790:1;8783:15;8821:4;8818:1;8811:15;8675:161;;8462:380;;;:::o;8847:356::-;9049:2;9031:21;;;9068:18;;;9061:30;9127:34;9122:2;9107:18;;9100:62;9194:2;9179:18;;8847:356::o;9208:398::-;9410:2;9392:21;;;9449:2;9429:18;;;9422:30;9488:34;9483:2;9468:18;;9461:62;-1:-1:-1;;;9554:2:1;9539:18;;9532:32;9596:3;9581:19;;9208:398::o;12982:127::-;13043:10;13038:3;13034:20;13031:1;13024:31;13074:4;13071:1;13064:15;13098:4;13095:1;13088:15;13114:135;13153:3;13174:17;;;13171:43;;13194:18;;:::i;:::-;-1:-1:-1;13241:1:1;13230:13;;13114:135::o

Swarm Source

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