ETH Price: $3,423.57 (+1.51%)

Token

Xplosive Ethereum (xETH)
 

Overview

Max Total Supply

8,407,652.471380288404946738 xETH

Holders

1,831 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
33,589.142731322050946335 xETH

Value
$0.00
0x948ce895be68dc02b25803df0ff0119dab3cfe14
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

xETH is an experimental token with deflationary mechanisms to maintain long-term sustainability. It aims to develop staking dAPP for users to obtain rewards xETH.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
XplosiveEthereum

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-09-08
*/

/**
 *
 * ██╗  ██╗███████╗████████╗██╗  ██╗
 * ╚██╗██╔╝██╔════╝╚══██╔══╝██║  ██║
 *  ╚███╔╝ █████╗     ██║   ███████║
 *  ██╔██╗ ██╔══╝     ██║   ██╔══██║
 * ██╔╝ ██╗███████╗   ██║   ██║  ██║
 * ╚═╝  ╚═╝╚══════╝   ╚═╝   ╚═╝  ╚═╝
 * 
 *    An Ethereum pegged 
 * base-down, burn-up currency. 
 *                    
 *  https://xEth.finance
 *                              
 * 
**/


pragma solidity ^0.6.6;


contract Ownable {
    address public owner;

    event TransferOwnership(address _from, address _to);

    modifier onlyOwner() {
        require(msg.sender == owner, "only owner");
        _;
    }

    function setOwner(address _owner) external onlyOwner {
        emit TransferOwnership(owner, _owner);
        owner = _owner;
    }
}

contract XplosiveEthereum is Ownable {
    
    using SafeMath for uint256;
    
    event Rebase(uint256 indexed epoch, uint256 scalingFactor);
    event NewRebaser(address oldRebaser, address newRebaser);
    
    event Transfer(address indexed from, address indexed to, uint amount);
    event Approval(address indexed owner, address indexed spender, uint amount);

    string public name     = "Xplosive Ethereum";
    string public symbol   = "xETH";
    uint8  public decimals = 18;
    
    address public rebaser;
    
    address public rewardAddress;

    /**
     * @notice Internal decimals used to handle scaling factor
     */
    uint256 public constant internalDecimals = 10**24;

    /**
     * @notice Used for percentage maths
     */
    uint256 public constant BASE = 10**18;

    /**
     * @notice Scaling factor that adjusts everyone's balances
     */
    uint256 public xETHScalingFactor  = BASE;

    mapping (address => uint256) internal _xETHBalances;
    mapping (address => mapping (address => uint256)) internal _allowedFragments;
    
    
    mapping(address => bool) public whitelistFrom;
    mapping(address => bool) public whitelistTo;
    mapping(address => bool) public whitelistRebase;
    
    
    address public noRebaseAddress;
    
    uint256 initSupply = 0;
    uint256 _totalSupply = 0;
    uint16 public SELL_FEE = 33;
    uint16 public TX_FEE = 50;
    
    event WhitelistFrom(address _addr, bool _whitelisted);
    event WhitelistTo(address _addr, bool _whitelisted);
    event WhitelistRebase(address _addr, bool _whitelisted);
    
     constructor(
        uint256 initialSupply,
        address initialSupplyAddr
        
        ) public {
        owner = msg.sender;
        emit TransferOwnership(address(0), msg.sender);
        _mint(initialSupplyAddr,initialSupply);
        
    }
    
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }
    
    function getSellBurn(uint256 value) public view returns (uint256)  {
        uint256 nPercent = value.divRound(SELL_FEE);
        return nPercent;
    }
    function getTxBurn(uint256 value) public view returns (uint256)  {
        uint256 nPercent = value.divRound(TX_FEE);
        return nPercent;
    }
    
    function _isWhitelisted(address _from, address _to) internal view returns (bool) {
        return whitelistFrom[_from]||whitelistTo[_to];
    }
    function _isRebaseWhitelisted(address _addr) internal view returns (bool) {
        return whitelistRebase[_addr];
    }

    function setWhitelistedTo(address _addr, bool _whitelisted) external onlyOwner {
        emit WhitelistTo(_addr, _whitelisted);
        whitelistTo[_addr] = _whitelisted;
    }
    
    function setTxFee(uint16 fee) external onlyRebaser {
        TX_FEE = fee;
    }
    
    function setSellFee(uint16 fee) external onlyRebaser {
        SELL_FEE = fee;
    }
    
    function setWhitelistedFrom(address _addr, bool _whitelisted) external onlyOwner {
        emit WhitelistFrom(_addr, _whitelisted);
        whitelistFrom[_addr] = _whitelisted;
    }
      
    function setWhitelistedRebase(address _addr, bool _whitelisted) external onlyOwner {
        emit WhitelistRebase(_addr, _whitelisted);
        whitelistRebase[_addr] = _whitelisted;
    }
    
    function setNoRebaseAddress(address _addr) external onlyOwner {
        noRebaseAddress = _addr;
    }
    
    
   

    modifier onlyRebaser() {
        require(msg.sender == rebaser);
        _;
    }



    
    /**
    * @notice Computes the current max scaling factor
    */
    function maxScalingFactor()
        external
        view
        returns (uint256)
    {
        return _maxScalingFactor();
    }

    function _maxScalingFactor()
        internal
        view
        returns (uint256)
    {
        // scaling factor can only go up to 2**256-1 = initSupply * xETHScalingFactor
        // this is used to check if xETHScalingFactor will be too high to compute balances when rebasing.
        return uint256(-1) / initSupply;
    }

   
    function _mint(address to, uint256 amount)
        internal
    {
      // increase totalSupply
      _totalSupply = _totalSupply.add(amount);

      // get underlying value
      uint256 xETHValue = amount.mul(internalDecimals).div(xETHScalingFactor);

      // increase initSupply
      initSupply = initSupply.add(xETHValue);

      // make sure the mint didnt push maxScalingFactor too low
      require(xETHScalingFactor <= _maxScalingFactor(), "max scaling factor too low");

      // add balance
      _xETHBalances[to] = _xETHBalances[to].add(xETHValue);
      
      emit Transfer(address(0),to,amount);

     
    }
    
   

    /* - ERC20 functionality - */

    /**
    * @dev Transfer tokens to a specified address.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    * @return True on success, false otherwise.
    */
    function transfer(address to, uint256 value)
        external
        returns (bool)
    {
        // underlying balance is stored in xETH, so divide by current scaling factor

        // note, this means as scaling factor grows, dust will be untransferrable.
        // minimum transfer value == xETHScalingFactor / 1e24;
        
        // get amount in underlying
        //from noRebaseWallet
        if(_isRebaseWhitelisted(msg.sender)){
            uint256 noReValue = value.mul(internalDecimals).div(BASE);
            uint256 noReNextValue = noReValue.mul(BASE).div(xETHScalingFactor);
            _xETHBalances[msg.sender] = _xETHBalances[msg.sender].sub(noReValue); //value==underlying
            _xETHBalances[to] = _xETHBalances[to].add(noReNextValue);
            emit Transfer(msg.sender, to, value);
        }
        else if(_isRebaseWhitelisted(to)){
            uint256 fee = getSellBurn(value);
            uint256 tokensToBurn = fee/2;
            uint256 tokensForRewards = fee-tokensToBurn;
            uint256 tokensToTransfer = value-fee;
                
            uint256 xETHValue = value.mul(internalDecimals).div(xETHScalingFactor);
            uint256 xETHValueKeep = tokensToTransfer.mul(internalDecimals).div(xETHScalingFactor);
            uint256 xETHValueReward = tokensForRewards.mul(internalDecimals).div(xETHScalingFactor);
            
            
            uint256 xETHNextValue = xETHValueKeep.mul(xETHScalingFactor).div(BASE);
            
            _totalSupply = _totalSupply-fee;
            _xETHBalances[address(0)] = _xETHBalances[address(0)].add(fee/2);
            _xETHBalances[msg.sender] = _xETHBalances[msg.sender].sub(xETHValue); 
            _xETHBalances[to] = _xETHBalances[to].add(xETHNextValue);
            _xETHBalances[rewardAddress] = _xETHBalances[rewardAddress].add(xETHValueReward);
            emit Transfer(msg.sender, to, tokensToTransfer);
            emit Transfer(msg.sender, address(0), tokensToBurn);
            emit Transfer(msg.sender, rewardAddress, tokensForRewards);
        }
        else{
          if(!_isWhitelisted(msg.sender, to)){
                uint256 fee = getTxBurn(value);
                uint256 tokensToBurn = fee/2;
                uint256 tokensForRewards = fee-tokensToBurn;
                uint256 tokensToTransfer = value-fee;
                    
                uint256 xETHValue = value.mul(internalDecimals).div(xETHScalingFactor);
                uint256 xETHValueKeep = tokensToTransfer.mul(internalDecimals).div(xETHScalingFactor);
                uint256 xETHValueReward = tokensForRewards.mul(internalDecimals).div(xETHScalingFactor);
                
                _totalSupply = _totalSupply-fee;
                _xETHBalances[address(0)] = _xETHBalances[address(0)].add(fee/2);
                _xETHBalances[msg.sender] = _xETHBalances[msg.sender].sub(xETHValue); 
                _xETHBalances[to] = _xETHBalances[to].add(xETHValueKeep);
                _xETHBalances[rewardAddress] = _xETHBalances[rewardAddress].add(xETHValueReward);
                emit Transfer(msg.sender, to, tokensToTransfer);
                emit Transfer(msg.sender, address(0), tokensToBurn);
                emit Transfer(msg.sender, rewardAddress, tokensForRewards);
           }
             else{
                uint256 xETHValue = value.mul(internalDecimals).div(xETHScalingFactor);
               
                _xETHBalances[msg.sender] = _xETHBalances[msg.sender].sub(xETHValue); 
                _xETHBalances[to] = _xETHBalances[to].add(xETHValue);
                emit Transfer(msg.sender, to, xETHValue);
             }
        }
        return true;
    }



    /**
    * @dev Transfer tokens from one address to another.
    * @param from The address you want to send tokens from.
    * @param to The address you want to transfer to.
    * @param value The amount of tokens to be transferred.
    */
    function transferFrom(address from, address to, uint256 value)
        external
        returns (bool)
    {
        // decrease allowance
        _allowedFragments[from][msg.sender] = _allowedFragments[from][msg.sender].sub(value);

        if(_isRebaseWhitelisted(from)){
            uint256 noReValue = value.mul(internalDecimals).div(BASE);
            uint256 noReNextValue = noReValue.mul(BASE).div(xETHScalingFactor);
            _xETHBalances[from] = _xETHBalances[from].sub(noReValue); //value==underlying
            _xETHBalances[to] = _xETHBalances[to].add(noReNextValue);
            emit Transfer(from, to, value);
        }
        else if(_isRebaseWhitelisted(to)){
            uint256 fee = getSellBurn(value);
            uint256 tokensForRewards = fee-(fee/2);
            uint256 tokensToTransfer = value-fee;
            
            uint256 xETHValue = value.mul(internalDecimals).div(xETHScalingFactor);
            uint256 xETHValueKeep = tokensToTransfer.mul(internalDecimals).div(xETHScalingFactor);
            uint256 xETHValueReward = tokensForRewards.mul(internalDecimals).div(xETHScalingFactor);
            uint256 xETHNextValue = xETHValueKeep.mul(xETHScalingFactor).div(BASE);
            
            _totalSupply = _totalSupply-fee;
            
            _xETHBalances[from] = _xETHBalances[from].sub(xETHValue); 
            _xETHBalances[to] = _xETHBalances[to].add(xETHNextValue);
            _xETHBalances[rewardAddress] = _xETHBalances[rewardAddress].add(xETHValueReward);
            _xETHBalances[address(0)] = _xETHBalances[address(0)].add(fee/2);
            emit Transfer(from, to, tokensToTransfer);
            emit Transfer(from, address(0), fee/2);
            emit Transfer(from, rewardAddress, tokensForRewards);
        }
        else{
          if(!_isWhitelisted(from, to)){
                uint256 fee = getTxBurn(value);
                uint256 tokensToBurn = fee/2;
                uint256 tokensForRewards = fee-tokensToBurn;
                uint256 tokensToTransfer = value-fee;
                    
                uint256 xETHValue = value.mul(internalDecimals).div(xETHScalingFactor);
                uint256 xETHValueKeep = tokensToTransfer.mul(internalDecimals).div(xETHScalingFactor);
                uint256 xETHValueReward = tokensForRewards.mul(internalDecimals).div(xETHScalingFactor);
            
                _totalSupply = _totalSupply-fee;
                _xETHBalances[address(0)] = _xETHBalances[address(0)].add(fee/2);
                _xETHBalances[from] = _xETHBalances[from].sub(xETHValue); 
                _xETHBalances[to] = _xETHBalances[to].add(xETHValueKeep);
                _xETHBalances[rewardAddress] = _xETHBalances[rewardAddress].add(xETHValueReward);
                emit Transfer(from, to, tokensToTransfer);
                emit Transfer(from, address(0), tokensToBurn);
                emit Transfer(from, rewardAddress, tokensForRewards);
           }
             else{
                uint256 xETHValue = value.mul(internalDecimals).div(xETHScalingFactor);
               
                _xETHBalances[from] = _xETHBalances[from].sub(xETHValue); 
                _xETHBalances[to] = _xETHBalances[to].add(xETHValue);
                emit Transfer(from, to, xETHValue);
                
            
             }
        }
        return true;
    }

    /**
    * @param who The address to query.
    * @return The balance of the specified address.
    */
    function balanceOf(address who)
      external
      view
      returns (uint256)
    {
      if(_isRebaseWhitelisted(who)){
        return _xETHBalances[who].mul(BASE).div(internalDecimals);
      }
      else{
        return _xETHBalances[who].mul(xETHScalingFactor).div(internalDecimals);
      }
    }

    /** @notice Currently returns the internal storage amount
    * @param who The address to query.
    * @return The underlying balance of the specified address.
    */
    function balanceOfUnderlying(address who)
      external
      view
      returns (uint256)
    {
      return _xETHBalances[who];
    }

    /**
     * @dev Function to check the amount of tokens that an owner has allowed to a spender.
     * @param owner_ The address which owns the funds.
     * @param spender The address which will spend the funds.
     * @return The number of tokens still available for the spender.
     */
    function allowance(address owner_, address spender)
        external
        view
        returns (uint256)
    {
        return _allowedFragments[owner_][spender];
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of
     * msg.sender. This method is included for ERC20 compatibility.
     * increaseAllowance and decreaseAllowance should be used instead.
     * Changing an allowance with this method brings the risk that someone may transfer both
     * the old and the new allowance - if they are both greater than zero - if a transfer
     * transaction is mined before the later approve() call is mined.
     *
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value)
        external
        returns (bool)
    {
        _allowedFragments[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner has allowed to a spender.
     * This method should be used instead of approve() to avoid the double approval vulnerability
     * described above.
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(address spender, uint256 addedValue)
        external
        returns (bool)
    {
        _allowedFragments[msg.sender][spender] =
            _allowedFragments[msg.sender][spender].add(addedValue);
        emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner has allowed to a spender.
     *
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue)
        external
        returns (bool)
    {
        uint256 oldValue = _allowedFragments[msg.sender][spender];
        if (subtractedValue >= oldValue) {
            _allowedFragments[msg.sender][spender] = 0;
        } else {
            _allowedFragments[msg.sender][spender] = oldValue.sub(subtractedValue);
        }
        emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]);
        return true;
    }

    /* - Governance Functions - */

    /** @notice sets the rebaser
     * @param rebaser_ The address of the rebaser contract to use for authentication.
     */
    function _setRebaser(address rebaser_)
        external
        onlyOwner
    {
        address oldRebaser = rebaser;
        rebaser = rebaser_;
        emit NewRebaser(oldRebaser, rebaser_);
    }
    
     function _setRewardAddress(address rewards_)
        external
        onlyOwner
    {
        rewardAddress = rewards_;
      
    }
    
    /**
    * @notice Initiates a new rebase operation, provided the minimum time period has elapsed.
    *
    * @dev The supply adjustment equals (totalSupply * DeviationFromTargetRate) / rebaseLag
    *      Where DeviationFromTargetRate is (MarketOracleRate - targetRate) / targetRate
    *      and targetRate is CpiOracleRate / baseCpi
    */
    function rebase(
        uint256 epoch,
        uint256 indexDelta,
        bool positive
    )
        external
        onlyRebaser
        returns (uint256)
    {
        if (indexDelta == 0 || !positive) {
          emit Rebase(epoch, xETHScalingFactor);
          return _totalSupply;
        }

            uint256 newScalingFactor = xETHScalingFactor.mul(BASE.add(indexDelta)).div(BASE);
            if (newScalingFactor < _maxScalingFactor()) {
                xETHScalingFactor = newScalingFactor;
            } else {
              xETHScalingFactor = _maxScalingFactor();
            }
        

        _totalSupply = ((initSupply.sub(_xETHBalances[address(0)]).sub(_xETHBalances[noRebaseAddress]))
                        .mul(xETHScalingFactor).div(internalDecimals))
                        .add(_xETHBalances[noRebaseAddress].mul(BASE).div(internalDecimals));
        emit Rebase(epoch, xETHScalingFactor);
        return _totalSupply;
    }
}

    
library SafeMath {

  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }

    uint256 c = a * b;
    require(c / a == b);

    return c;
  }

 
 function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0); // Solidity only automatically asserts when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }

 
 function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a);
    uint256 c = a - b;

    return c;
  }

  
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a);

    return c;
  }
  
  function ceil(uint256 a, uint256 m) internal pure returns (uint256) {
    uint256 c = add(a,m);
    uint256 d = sub(c,1);
    return mul(div(d,m),m);
  }

  /**
  * @dev Divides two numbers and returns the remainder (unsigned integer modulo),
  * reverts when dividing by zero.
  */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
  
  function divRound(uint256 x, uint256 y) internal pure returns (uint256) {
        require(y != 0, "Div by zero");
        uint256 r = x / y;
        if (x % y != 0) {
            r = r + 1;
        }

        return r;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"address","name":"initialSupplyAddr","type":"address"}],"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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRebaser","type":"address"},{"indexed":false,"internalType":"address","name":"newRebaser","type":"address"}],"name":"NewRebaser","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"scalingFactor","type":"uint256"}],"name":"Rebase","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"}],"name":"TransferOwnership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"WhitelistFrom","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"WhitelistRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"WhitelistTo","type":"event"},{"inputs":[],"name":"BASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SELL_FEE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TX_FEE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"rebaser_","type":"address"}],"name":"_setRebaser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rewards_","type":"address"}],"name":"_setRewardAddress","outputs":[],"stateMutability":"nonpayable","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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOfUnderlying","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":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"getSellBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"getTxBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"internalDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxScalingFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noRebaseAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"uint256","name":"indexDelta","type":"uint256"},{"internalType":"bool","name":"positive","type":"bool"}],"name":"rebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rebaser","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setNoRebaseAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"fee","type":"uint16"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"fee","type":"uint16"}],"name":"setTxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"setWhitelistedFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"setWhitelistedRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"setWhitelistedTo","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":[{"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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistTo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"xETHScalingFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040526040518060400160405280601181526020017f58706c6f7369766520457468657265756d00000000000000000000000000000081525060019080519060200190620000519291906200051e565b506040518060400160405280600481526020017f7845544800000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f9291906200051e565b506012600360006101000a81548160ff021916908360ff160217905550670de0b6b3a76400006005556000600c556000600d556021600e60006101000a81548161ffff021916908361ffff1602179055506032600e60026101000a81548161ffff021916908361ffff1602179055503480156200011b57600080fd5b5060405162004af938038062004af9833981810160405260408110156200014157600080fd5b810190808051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c600033604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a16200024681836200024e60201b60201c565b5050620005cd565b6200026a81600d546200046460201b6200441c1790919060201c565b600d819055506000620002b16005546200029d69d3c21bcecceda1000000856200048460201b620043bc1790919060201c565b620004c260201b620043f61790919060201c565b9050620002cf81600c546200046460201b6200441c1790919060201c565b600c81905550620002e5620004ea60201b60201c565b60055411156200035d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f6d6178207363616c696e6720666163746f7220746f6f206c6f7700000000000081525060200191505060405180910390fd5b620003b681600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200046460201b6200441c1790919060201c565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b6000808284019050838110156200047a57600080fd5b8091505092915050565b600080831415620004995760009050620004bc565b6000828402905082848281620004ab57fe5b0414620004b757600080fd5b809150505b92915050565b6000808211620004d157600080fd5b6000828481620004dd57fe5b0490508091505092915050565b6000600c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff816200051857fe5b04905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200056157805160ff191683800117855562000592565b8280016001018555821562000592579182015b828111156200059157825182559160200191906001019062000574565b5b509050620005a19190620005a5565b5090565b620005ca91905b80821115620005c6576000816000905550600101620005ac565b5090565b90565b61451c80620005dd6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c806370a0823111610130578063b72bb3d5116100b8578063e064648a1161007c578063e064648a14610bd2578063ec342ad014610c04578063fa8f345514610c22578063fcdc7b1d14610c66578063ff12bbf414610caa57610227565b8063b72bb3d514610a3e578063bf79cb0d14610a88578063dd62ed3e14610ad8578063de2f716014610b50578063de52014b14610bac57610227565b80638da5cb5b116100ff5780638da5cb5b1461085557806395d89b411461089f578063a457c2d714610922578063a486309d14610988578063a9059cbb146109d857610227565b806370a08231146107195780637af548c1146107715780637dbaed88146107c95780638cf57cb91461080b57610227565b8063313ce567116101b35780633d1c2833116101825780633d1c28331461061757806343684b211461065b5780634773a6a9146106b757806364dd48f5146106dd5780636f97857b146106fb57610227565b8063313ce5671461050357806339509351146105275780633986829d1461058d5780633af9e669146105bf57610227565b806311fd8a83116101fa57806311fd8a831461037557806313af4035146103bf57806316b627d11461040357806318160ddd1461045f57806323b872dd1461047d57610227565b806304cf86821461022c57806306fdde031461026e578063095ea7b3146102f157806311d3e6c414610357575b600080fd5b6102586004803603602081101561024257600080fd5b8101908080359060200190929190505050610cfa565b6040518082815260200191505060405180910390f35b610276610d2f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b657808201518184015260208101905061029b565b50505050905090810190601f1680156102e35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61033d6004803603604081101561030757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dcd565b604051808215151515815260200191505060405180910390f35b61035f610ebf565b6040518082815260200191505060405180910390f35b61037d610ece565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610401600480360360208110156103d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef4565b005b6104456004803603602081101561041957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b1565b604051808215151515815260200191505060405180910390f35b6104676110d1565b6040518082815260200191505060405180910390f35b6104e96004803603606081101561049357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110db565b604051808215151515815260200191505060405180910390f35b61050b611fcd565b604051808260ff1660ff16815260200191505060405180910390f35b6105736004803603604081101561053d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611fe0565b604051808215151515815260200191505060405180910390f35b6105bd600480360360208110156105a357600080fd5b81019080803561ffff1690602001909291905050506121dc565b005b610601600480360360208110156105d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612256565b6040518082815260200191505060405180910390f35b6106596004803603602081101561062d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061229f565b005b61069d6004803603602081101561067157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123a5565b604051808215151515815260200191505060405180910390f35b6106bf6123c5565b604051808261ffff1661ffff16815260200191505060405180910390f35b6106e56123d9565b6040518082815260200191505060405180910390f35b6107036123e7565b6040518082815260200191505060405180910390f35b61075b6004803603602081101561072f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123ed565b6040518082815260200191505060405180910390f35b6107b36004803603606081101561078757600080fd5b8101908080359060200190929190803590602001909291908035151590602001909291905050506124f2565b6040518082815260200191505060405180910390f35b6107f5600480360360208110156107df57600080fd5b8101908080359060200190929190505050612809565b6040518082815260200191505060405180910390f35b61081361283e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61085d612864565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108a7612889565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108e75780820151818401526020810190506108cc565b50505050905090810190601f1680156109145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61096e6004803603604081101561093857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612927565b604051808215151515815260200191505060405180910390f35b6109d66004803603604081101561099e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612bb7565b005b610a24600480360360408110156109ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d43565b604051808215151515815260200191505060405180910390f35b610a46613b21565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ad660048036036040811015610a9e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613b47565b005b610b3a60048036036040811015610aee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613cd3565b6040518082815260200191505060405180910390f35b610b9260048036036020811015610b6657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d5a565b604051808215151515815260200191505060405180910390f35b610bb4613d7a565b604051808261ffff1661ffff16815260200191505060405180910390f35b610c0260048036036020811015610be857600080fd5b81019080803561ffff169060200190929190505050613d8e565b005b610c0c613e08565b6040518082815260200191505060405180910390f35b610c6460048036036020811015610c3857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613e14565b005b610ca860048036036020811015610c7c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613fd9565b005b610cf860048036036040811015610cc057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506140df565b005b600080610d24600e60009054906101000a900461ffff1661ffff168461426b90919063ffffffff16565b905080915050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dc55780601f10610d9a57610100808354040283529160200191610dc5565b820191906000526020600020905b815481529060010190602001808311610da857829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610ec9614313565b905090565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600d54905090565b600061116c82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111f584614366565b156113fe576000611233670de0b6b3a764000061122569d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506000611266600554611258670de0b6b3a7640000856143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506112ba82600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061134f81600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050611fc2565b61140783614366565b1561191857600061141783610cfa565b905060006002828161142557fe5b048203905060008285039050600061146460055461145669d3c21bcecceda1000000896143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050600061149960055461148b69d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b905060006114ce6005546114c069d3c21bcecceda1000000886143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506000611501670de0b6b3a76400006114f3600554866143bc90919063ffffffff16565b6143f690919063ffffffff16565b905086600d5403600d8190555061156084600660008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115f581600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116ac8260066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b60066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061176d6002888161171e57fe5b04600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60028a8161186f57fe5b046040518082815260200191505060405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a350505050505050611fc1565b611922848461443b565b611dfa57600061193183612809565b905060006002828161193f57fe5b0490506000818303905060008386039050600061198360055461197569d3c21bcecceda10000008a6143bc90919063ffffffff16565b6143f690919063ffffffff16565b905060006119b86005546119aa69d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b905060006119ed6005546119df69d3c21bcecceda1000000886143bc90919063ffffffff16565b6143f690919063ffffffff16565b905086600d5403600d81905550611a5660028881611a0757fe5b04600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aeb83600660008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b8082600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c378160066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b60066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a350505050505050611fc0565b6000611e2d600554611e1f69d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050611e8181600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1681600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505b5b5b600190509392505050565b600360009054906101000a900460ff1681565b600061207182600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461223657600080fd5b80600e60026101000a81548161ffff021916908361ffff16021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60086020528060005260406000206000915054906101000a900460ff1681565b600e60009054906101000a900461ffff1681565b69d3c21bcecceda100000081565b60055481565b60006123f882614366565b1561247a5761247369d3c21bcecceda1000000612465670de0b6b3a7640000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506124ed565b6124ea69d3c21bcecceda10000006124dc600554600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143bc90919063ffffffff16565b6143f690919063ffffffff16565b90505b919050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461254e57600080fd5b600083148061255b575081155b156125a457837f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a215116005546040518082815260200191505060405180910390a2600d549050612802565b60006125ef670de0b6b3a76400006125e16125d087670de0b6b3a764000061441c90919063ffffffff16565b6005546143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506125f9614313565b81101561260c578060058190555061261b565b612614614313565b6005819055505b6127bb6126b669d3c21bcecceda10000006126a8670de0b6b3a764000060066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143bc90919063ffffffff16565b6143f690919063ffffffff16565b6127ad69d3c21bcecceda100000061279f60055461279160066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612783600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c5461434690919063ffffffff16565b61434690919063ffffffff16565b6143bc90919063ffffffff16565b6143f690919063ffffffff16565b61441c90919063ffffffff16565b600d81905550847f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a215116005546040518082815260200191505060405180910390a2600d549150505b9392505050565b600080612833600e60029054906101000a900461ffff1661ffff168461426b90919063ffffffff16565b905080915050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561291f5780601f106128f45761010080835404028352916020019161291f565b820191906000526020600020905b81548152906001019060200180831161290257829003601f168201915b505050505081565b600080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808310612a37576000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612acb565b612a4a838261434690919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f88cf9b943f64811022537ee9f0141770d85e612eae3a3a39241abe5ca9f113828282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000612d4e33614366565b15612f57576000612d8c670de0b6b3a7640000612d7e69d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506000612dbf600554612db1670de0b6b3a7640000856143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050612e1382600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ea881600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050613b17565b612f6083614366565b1561346d576000612f7083610cfa565b9050600060028281612f7e57fe5b04905060008183039050600083860390506000612fc2600554612fb469d3c21bcecceda10000008a6143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506000612ff7600554612fe969d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050600061302c60055461301e69d3c21bcecceda1000000886143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050600061305f670de0b6b3a7640000613051600554866143bc90919063ffffffff16565b6143f690919063ffffffff16565b905087600d5403600d819055506130c86002898161307957fe5b04600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061315d84600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131f281600660008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132a98260066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b60066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a35050505050505050613b16565b613477338461443b565b61394f57600061348683612809565b905060006002828161349457fe5b049050600081830390506000838603905060006134d86005546134ca69d3c21bcecceda10000008a6143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050600061350d6005546134ff69d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050600061354260055461353469d3c21bcecceda1000000886143bc90919063ffffffff16565b6143f690919063ffffffff16565b905086600d5403600d819055506135ab6002888161355c57fe5b04600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061364083600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136d582600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061378c8160066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b60066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a350505050505050613b15565b600061398260055461397469d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506139d681600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613a6b81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505b5b5b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613c09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b7fcea48012bdb313072f54da033c891e9ad17d42f6fff9a5a1b74dfc865c37e0518282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600e60029054906101000a900461ffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613de857600080fd5b80600e60006101000a81548161ffff021916908361ffff16021790555050565b670de0b6b3a764000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613ed6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f51f448520e2183de499e224808a409ee01a1f380edb2e8497572320c150305458183604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461409b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146141a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b7fc3d26c130d120a4bb874de56c8b5fb727ad2cfc3551ca49cd42ef248e893b69a8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000808214156142e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f446976206279207a65726f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008284816142ee57fe5b04905060008385816142fc57fe5b0614614309576001810190505b8091505092915050565b6000600c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8161434057fe5b04905090565b60008282111561435557600080fd5b600082840390508091505092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000808314156143cf57600090506143f0565b60008284029050828482816143e057fe5b04146143eb57600080fd5b809150505b92915050565b600080821161440457600080fd5b600082848161440f57fe5b0490508091505092915050565b60008082840190508381101561443157600080fd5b8091505092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806144de5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90509291505056fea2646970667358221220188ecb7c107fa187b5d904d73e652b4033760070e8687f6a457ce0ff9e8f68c064736f6c634300060600330000000000000000000000000000000000000000000034f086f3b33b68400000000000000000000000000000d1f0ecda3699e6135a4dc9c3807bab4aec23898b

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102275760003560e01c806370a0823111610130578063b72bb3d5116100b8578063e064648a1161007c578063e064648a14610bd2578063ec342ad014610c04578063fa8f345514610c22578063fcdc7b1d14610c66578063ff12bbf414610caa57610227565b8063b72bb3d514610a3e578063bf79cb0d14610a88578063dd62ed3e14610ad8578063de2f716014610b50578063de52014b14610bac57610227565b80638da5cb5b116100ff5780638da5cb5b1461085557806395d89b411461089f578063a457c2d714610922578063a486309d14610988578063a9059cbb146109d857610227565b806370a08231146107195780637af548c1146107715780637dbaed88146107c95780638cf57cb91461080b57610227565b8063313ce567116101b35780633d1c2833116101825780633d1c28331461061757806343684b211461065b5780634773a6a9146106b757806364dd48f5146106dd5780636f97857b146106fb57610227565b8063313ce5671461050357806339509351146105275780633986829d1461058d5780633af9e669146105bf57610227565b806311fd8a83116101fa57806311fd8a831461037557806313af4035146103bf57806316b627d11461040357806318160ddd1461045f57806323b872dd1461047d57610227565b806304cf86821461022c57806306fdde031461026e578063095ea7b3146102f157806311d3e6c414610357575b600080fd5b6102586004803603602081101561024257600080fd5b8101908080359060200190929190505050610cfa565b6040518082815260200191505060405180910390f35b610276610d2f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b657808201518184015260208101905061029b565b50505050905090810190601f1680156102e35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61033d6004803603604081101561030757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dcd565b604051808215151515815260200191505060405180910390f35b61035f610ebf565b6040518082815260200191505060405180910390f35b61037d610ece565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610401600480360360208110156103d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef4565b005b6104456004803603602081101561041957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b1565b604051808215151515815260200191505060405180910390f35b6104676110d1565b6040518082815260200191505060405180910390f35b6104e96004803603606081101561049357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110db565b604051808215151515815260200191505060405180910390f35b61050b611fcd565b604051808260ff1660ff16815260200191505060405180910390f35b6105736004803603604081101561053d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611fe0565b604051808215151515815260200191505060405180910390f35b6105bd600480360360208110156105a357600080fd5b81019080803561ffff1690602001909291905050506121dc565b005b610601600480360360208110156105d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612256565b6040518082815260200191505060405180910390f35b6106596004803603602081101561062d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061229f565b005b61069d6004803603602081101561067157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123a5565b604051808215151515815260200191505060405180910390f35b6106bf6123c5565b604051808261ffff1661ffff16815260200191505060405180910390f35b6106e56123d9565b6040518082815260200191505060405180910390f35b6107036123e7565b6040518082815260200191505060405180910390f35b61075b6004803603602081101561072f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123ed565b6040518082815260200191505060405180910390f35b6107b36004803603606081101561078757600080fd5b8101908080359060200190929190803590602001909291908035151590602001909291905050506124f2565b6040518082815260200191505060405180910390f35b6107f5600480360360208110156107df57600080fd5b8101908080359060200190929190505050612809565b6040518082815260200191505060405180910390f35b61081361283e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61085d612864565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108a7612889565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108e75780820151818401526020810190506108cc565b50505050905090810190601f1680156109145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61096e6004803603604081101561093857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612927565b604051808215151515815260200191505060405180910390f35b6109d66004803603604081101561099e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612bb7565b005b610a24600480360360408110156109ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d43565b604051808215151515815260200191505060405180910390f35b610a46613b21565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ad660048036036040811015610a9e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613b47565b005b610b3a60048036036040811015610aee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613cd3565b6040518082815260200191505060405180910390f35b610b9260048036036020811015610b6657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d5a565b604051808215151515815260200191505060405180910390f35b610bb4613d7a565b604051808261ffff1661ffff16815260200191505060405180910390f35b610c0260048036036020811015610be857600080fd5b81019080803561ffff169060200190929190505050613d8e565b005b610c0c613e08565b6040518082815260200191505060405180910390f35b610c6460048036036020811015610c3857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613e14565b005b610ca860048036036020811015610c7c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613fd9565b005b610cf860048036036040811015610cc057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506140df565b005b600080610d24600e60009054906101000a900461ffff1661ffff168461426b90919063ffffffff16565b905080915050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dc55780601f10610d9a57610100808354040283529160200191610dc5565b820191906000526020600020905b815481529060010190602001808311610da857829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610ec9614313565b905090565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600d54905090565b600061116c82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111f584614366565b156113fe576000611233670de0b6b3a764000061122569d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506000611266600554611258670de0b6b3a7640000856143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506112ba82600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061134f81600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050611fc2565b61140783614366565b1561191857600061141783610cfa565b905060006002828161142557fe5b048203905060008285039050600061146460055461145669d3c21bcecceda1000000896143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050600061149960055461148b69d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b905060006114ce6005546114c069d3c21bcecceda1000000886143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506000611501670de0b6b3a76400006114f3600554866143bc90919063ffffffff16565b6143f690919063ffffffff16565b905086600d5403600d8190555061156084600660008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115f581600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116ac8260066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b60066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061176d6002888161171e57fe5b04600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60028a8161186f57fe5b046040518082815260200191505060405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a350505050505050611fc1565b611922848461443b565b611dfa57600061193183612809565b905060006002828161193f57fe5b0490506000818303905060008386039050600061198360055461197569d3c21bcecceda10000008a6143bc90919063ffffffff16565b6143f690919063ffffffff16565b905060006119b86005546119aa69d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b905060006119ed6005546119df69d3c21bcecceda1000000886143bc90919063ffffffff16565b6143f690919063ffffffff16565b905086600d5403600d81905550611a5660028881611a0757fe5b04600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aeb83600660008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b8082600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c378160066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b60066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a350505050505050611fc0565b6000611e2d600554611e1f69d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050611e8181600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1681600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505b5b5b600190509392505050565b600360009054906101000a900460ff1681565b600061207182600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461223657600080fd5b80600e60026101000a81548161ffff021916908361ffff16021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60086020528060005260406000206000915054906101000a900460ff1681565b600e60009054906101000a900461ffff1681565b69d3c21bcecceda100000081565b60055481565b60006123f882614366565b1561247a5761247369d3c21bcecceda1000000612465670de0b6b3a7640000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506124ed565b6124ea69d3c21bcecceda10000006124dc600554600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143bc90919063ffffffff16565b6143f690919063ffffffff16565b90505b919050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461254e57600080fd5b600083148061255b575081155b156125a457837f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a215116005546040518082815260200191505060405180910390a2600d549050612802565b60006125ef670de0b6b3a76400006125e16125d087670de0b6b3a764000061441c90919063ffffffff16565b6005546143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506125f9614313565b81101561260c578060058190555061261b565b612614614313565b6005819055505b6127bb6126b669d3c21bcecceda10000006126a8670de0b6b3a764000060066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143bc90919063ffffffff16565b6143f690919063ffffffff16565b6127ad69d3c21bcecceda100000061279f60055461279160066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612783600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c5461434690919063ffffffff16565b61434690919063ffffffff16565b6143bc90919063ffffffff16565b6143f690919063ffffffff16565b61441c90919063ffffffff16565b600d81905550847f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a215116005546040518082815260200191505060405180910390a2600d549150505b9392505050565b600080612833600e60029054906101000a900461ffff1661ffff168461426b90919063ffffffff16565b905080915050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561291f5780601f106128f45761010080835404028352916020019161291f565b820191906000526020600020905b81548152906001019060200180831161290257829003601f168201915b505050505081565b600080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808310612a37576000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612acb565b612a4a838261434690919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b7f88cf9b943f64811022537ee9f0141770d85e612eae3a3a39241abe5ca9f113828282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000612d4e33614366565b15612f57576000612d8c670de0b6b3a7640000612d7e69d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506000612dbf600554612db1670de0b6b3a7640000856143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050612e1382600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ea881600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050613b17565b612f6083614366565b1561346d576000612f7083610cfa565b9050600060028281612f7e57fe5b04905060008183039050600083860390506000612fc2600554612fb469d3c21bcecceda10000008a6143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506000612ff7600554612fe969d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050600061302c60055461301e69d3c21bcecceda1000000886143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050600061305f670de0b6b3a7640000613051600554866143bc90919063ffffffff16565b6143f690919063ffffffff16565b905087600d5403600d819055506130c86002898161307957fe5b04600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061315d84600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131f281600660008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132a98260066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b60066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a35050505050505050613b16565b613477338461443b565b61394f57600061348683612809565b905060006002828161349457fe5b049050600081830390506000838603905060006134d86005546134ca69d3c21bcecceda10000008a6143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050600061350d6005546134ff69d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b9050600061354260055461353469d3c21bcecceda1000000886143bc90919063ffffffff16565b6143f690919063ffffffff16565b905086600d5403600d819055506135ab6002888161355c57fe5b04600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061364083600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136d582600660008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061378c8160066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b60066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a350505050505050613b15565b600061398260055461397469d3c21bcecceda1000000866143bc90919063ffffffff16565b6143f690919063ffffffff16565b90506139d681600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461434690919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613a6b81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505b5b5b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613c09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b7fcea48012bdb313072f54da033c891e9ad17d42f6fff9a5a1b74dfc865c37e0518282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600e60029054906101000a900461ffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613de857600080fd5b80600e60006101000a81548161ffff021916908361ffff16021790555050565b670de0b6b3a764000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613ed6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f51f448520e2183de499e224808a409ee01a1f380edb2e8497572320c150305458183604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461409b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146141a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79206f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b7fc3d26c130d120a4bb874de56c8b5fb727ad2cfc3551ca49cd42ef248e893b69a8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a180600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000808214156142e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f446976206279207a65726f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008284816142ee57fe5b04905060008385816142fc57fe5b0614614309576001810190505b8091505092915050565b6000600c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8161434057fe5b04905090565b60008282111561435557600080fd5b600082840390508091505092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000808314156143cf57600090506143f0565b60008284029050828482816143e057fe5b04146143eb57600080fd5b809150505b92915050565b600080821161440457600080fd5b600082848161440f57fe5b0490508091505092915050565b60008082840190508381101561443157600080fd5b8091505092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806144de5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90509291505056fea2646970667358221220188ecb7c107fa187b5d904d73e652b4033760070e8687f6a457ce0ff9e8f68c064736f6c63430006060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000034f086f3b33b68400000000000000000000000000000d1f0ecda3699e6135a4dc9c3807bab4aec23898b

-----Decoded View---------------
Arg [0] : initialSupply (uint256): 250000000000000000000000
Arg [1] : initialSupplyAddr (address): 0xd1F0EcDa3699E6135a4DC9c3807baB4Aec23898b

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000034f086f3b33b68400000
Arg [1] : 000000000000000000000000d1f0ecda3699e6135a4dc9c3807bab4aec23898b


Deployed Bytecode Sourcemap

1092:18046:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1092:18046:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;3112:155:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3112:155:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1475:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1475:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15523:235;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15523:235:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4805:137;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1604:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;951:134;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;951:134:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2258:43;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2258:43:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3009:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10218:3421;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10218:3421:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1564:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16131:345;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16131:345:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3908:82;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3908:82:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14256:142;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14256:142:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4502:104;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4502:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2206:45;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2206:45:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2477:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1758:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2004:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13757:316;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13757:316:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18152:983;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18152:983:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3273:151;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3273:151:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1639:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;760:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1526:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1526:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16738:514;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16738:514:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3717:179;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3717:179:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6215:3742;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;6215:3742:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2374:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4299:191;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4299:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14705:176;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14705:176:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2308:47;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2308:47:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2511:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4002:86;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4002:86:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1876:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17428:205;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17428:205:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;17646:138;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17646:138:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4100:185;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4100:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3112:155;3169:7;3190:16;3209:24;3224:8;;;;;;;;;;;3209:24;;:5;:14;;:24;;;;:::i;:::-;3190:43;;3251:8;3244:15;;;3112:155;;;:::o;1475:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15523:235::-;15608:4;15671:5;15630:17;:29;15648:10;15630:29;;;;;;;;;;;;;;;:38;15660:7;15630:38;;;;;;;;;;;;;;;:46;;;;15713:7;15692:36;;15701:10;15692:36;;;15722:5;15692:36;;;;;;;;;;;;;;;;;;15746:4;15739:11;;15523:235;;;;:::o;4805:137::-;4883:7;4915:19;:17;:19::i;:::-;4908:26;;4805:137;:::o;1604:22::-;;;;;;;;;;;;;:::o;951:134::-;903:5;;;;;;;;;;;889:19;;:10;:19;;;881:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1020:32:::1;1038:5;::::0;::::1;;;;;;;;;1045:6;1020:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1071:6;1063:5;::::0;:14:::1;;;;;;;;;;;;;;;;;;951:134:::0;:::o;2258:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;3009:91::-;3053:7;3080:12;;3073:19;;3009:91;:::o;10218:3421::-;10317:4;10408:46;10448:5;10408:17;:23;10426:4;10408:23;;;;;;;;;;;;;;;:35;10432:10;10408:35;;;;;;;;;;;;;;;;:39;;:46;;;;:::i;:::-;10370:17;:23;10388:4;10370:23;;;;;;;;;;;;;;;:35;10394:10;10370:35;;;;;;;;;;;;;;;:84;;;;10470:26;10491:4;10470:20;:26::i;:::-;10467:3143;;;10512:17;10532:37;1907:6;10532:27;1801:6;10532:5;:9;;:27;;;;:::i;:::-;:31;;:37;;;;:::i;:::-;10512:57;;10584:21;10608:42;10632:17;;10608:19;1907:6;10608:9;:13;;:19;;;;:::i;:::-;:23;;:42;;;;:::i;:::-;10584:66;;10687:34;10711:9;10687:13;:19;10701:4;10687:19;;;;;;;;;;;;;;;;:23;;:34;;;;:::i;:::-;10665:13;:19;10679:4;10665:19;;;;;;;;;;;;;;;:56;;;;10776:36;10798:13;10776;:17;10790:2;10776:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;10756:13;:17;10770:2;10756:17;;;;;;;;;;;;;;;:56;;;;10847:2;10832:25;;10841:4;10832:25;;;10851:5;10832:25;;;;;;;;;;;;;;;;;;10467:3143;;;;;10887:24;10908:2;10887:20;:24::i;:::-;10884:2726;;;10927:11;10941:18;10953:5;10941:11;:18::i;:::-;10927:32;;10974:24;11010:1;11006:3;:5;;;;;;11001:3;:11;10974:38;;11027:24;11060:3;11054:5;:9;11027:36;;11092:17;11112:50;11144:17;;11112:27;1801:6;11112:5;:9;;:27;;;;:::i;:::-;:31;;:50;;;;:::i;:::-;11092:70;;11177:21;11201:61;11244:17;;11201:38;1801:6;11201:16;:20;;:38;;;;:::i;:::-;:42;;:61;;;;:::i;:::-;11177:85;;11277:23;11303:61;11346:17;;11303:38;1801:6;11303:16;:20;;:38;;;;:::i;:::-;:42;;:61;;;;:::i;:::-;11277:87;;11379:21;11403:46;1907:6;11403:36;11421:17;;11403:13;:17;;:36;;;;:::i;:::-;:40;;:46;;;;:::i;:::-;11379:70;;11506:3;11493:12;;:16;11478:12;:31;;;;11560:34;11584:9;11560:13;:19;11574:4;11560:19;;;;;;;;;;;;;;;;:23;;:34;;;;:::i;:::-;11538:13;:19;11552:4;11538:19;;;;;;;;;;;;;;;:56;;;;11630:36;11652:13;11630;:17;11644:2;11630:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;11610:13;:17;11624:2;11610:17;;;;;;;;;;;;;;;:56;;;;11712:49;11745:15;11712:13;:28;11726:13;;;;;;;;;;;11712:28;;;;;;;;;;;;;;;;:32;;:49;;;;:::i;:::-;11681:13;:28;11695:13;;;;;;;;;;;11681:28;;;;;;;;;;;;;;;:80;;;;11804:36;11838:1;11834:3;:5;;;;;;11804:13;:25;11826:1;11804:25;;;;;;;;;;;;;;;;:29;;:36;;;;:::i;:::-;11776:13;:25;11798:1;11776:25;;;;;;;;;;;;;;;:64;;;;11875:2;11860:36;;11869:4;11860:36;;;11879:16;11860:36;;;;;;;;;;;;;;;;;;11939:1;11916:33;;11925:4;11916:33;;;11947:1;11943:3;:5;;;;;;11916:33;;;;;;;;;;;;;;;;;;11984:13;;;;;;;;;;;11969:47;;11978:4;11969:47;;;11999:16;11969:47;;;;;;;;;;;;;;;;;;10884:2726;;;;;;;;;;12059:24;12074:4;12080:2;12059:14;:24::i;:::-;12055:1544;;12103:11;12117:16;12127:5;12117:9;:16::i;:::-;12103:30;;12152:20;12179:1;12175:3;:5;;;;;;12152:28;;12199:24;12230:12;12226:3;:16;12199:43;;12261:24;12294:3;12288:5;:9;12261:36;;12338:17;12358:50;12390:17;;12358:27;1801:6;12358:5;:9;;:27;;;;:::i;:::-;:31;;:50;;;;:::i;:::-;12338:70;;12427:21;12451:61;12494:17;;12451:38;1801:6;12451:16;:20;;:38;;;;:::i;:::-;:42;;:61;;;;:::i;:::-;12427:85;;12531:23;12557:61;12600:17;;12557:38;1801:6;12557:16;:20;;:38;;;;:::i;:::-;:42;;:61;;;;:::i;:::-;12531:87;;12679:3;12666:12;;:16;12651:12;:31;;;;12729:36;12763:1;12759:3;:5;;;;;;12729:13;:25;12751:1;12729:25;;;;;;;;;;;;;;;;:29;;:36;;;;:::i;:::-;12701:13;:25;12723:1;12701:25;;;;;;;;;;;;;;;:64;;;;12806:34;12830:9;12806:13;:19;12820:4;12806:19;;;;;;;;;;;;;;;;:23;;:34;;;;:::i;:::-;12784:13;:19;12798:4;12784:19;;;;;;;;;;;;;;;:56;;;;12880:36;12902:13;12880;:17;12894:2;12880:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;12860:13;:17;12874:2;12860:17;;;;;;;;;;;;;;;:56;;;;12966:49;12999:15;12966:13;:28;12980:13;;;;;;;;;;;12966:28;;;;;;;;;;;;;;;;:32;;:49;;;;:::i;:::-;12935:13;:28;12949:13;;;;;;;;;;;12935:28;;;;;;;;;;;;;;;:80;;;;13054:2;13039:36;;13048:4;13039:36;;;13058:16;13039:36;;;;;;;;;;;;;;;;;;13122:1;13099:40;;13108:4;13099:40;;;13126:12;13099:40;;;;;;;;;;;;;;;;;;13178:13;;;;;;;;;;;13163:47;;13172:4;13163:47;;;13193:16;13163:47;;;;;;;;;;;;;;;;;;12055:1544;;;;;;;;;;13263:17;13283:50;13315:17;;13283:27;1801:6;13283:5;:9;;:27;;;;:::i;:::-;:31;;:50;;;;:::i;:::-;13263:70;;13391:34;13415:9;13391:13;:19;13405:4;13391:19;;;;;;;;;;;;;;;;:23;;:34;;;;:::i;:::-;13369:13;:19;13383:4;13369:19;;;;;;;;;;;;;;;:56;;;;13465:32;13487:9;13465:13;:17;13479:2;13465:17;;;;;;;;;;;;;;;;:21;;:32;;;;:::i;:::-;13445:13;:17;13459:2;13445:17;;;;;;;;;;;;;;;:52;;;;13536:2;13521:29;;13530:4;13521:29;;;13540:9;13521:29;;;;;;;;;;;;;;;;;;12055:1544;;10884:2726;10467:3143;13627:4;13620:11;;10218:3421;;;;;:::o;1564:27::-;;;;;;;;;;;;;:::o;16131:345::-;16231:4;16307:54;16350:10;16307:17;:29;16325:10;16307:29;;;;;;;;;;;;;;;:38;16337:7;16307:38;;;;;;;;;;;;;;;;:42;;:54;;;;:::i;:::-;16253:17;:29;16271:10;16253:29;;;;;;;;;;;;;;;:38;16283:7;16253:38;;;;;;;;;;;;;;;:108;;;;16398:7;16377:69;;16386:10;16377:69;;;16407:17;:29;16425:10;16407:29;;;;;;;;;;;;;;;:38;16437:7;16407:38;;;;;;;;;;;;;;;;16377:69;;;;;;;;;;;;;;;;;;16464:4;16457:11;;16131:345;;;;:::o;3908:82::-;4687:7;;;;;;;;;;;4673:21;;:10;:21;;;4665:30;;12:1:-1;9;2:12;4665:30:0;3979:3:::1;3970:6;;:12;;;;;;;;;;;;;;;;;;3908:82:::0;:::o;14256:142::-;14342:7;14372:13;:18;14386:3;14372:18;;;;;;;;;;;;;;;;14365:25;;14256:142;;;:::o;4502:104::-;903:5;;;;;;;;;;;889:19;;:10;:19;;;881:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4593:5:::1;4575:15;;:23;;;;;;;;;;;;;;;;;;4502:104:::0;:::o;2206:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;2477:27::-;;;;;;;;;;;;;:::o;1758:49::-;1801:6;1758:49;:::o;2004:40::-;;;;:::o;13757:316::-;13833:7;13859:25;13880:3;13859:20;:25::i;:::-;13856:210;;;13903:50;1801:6;13903:28;1907:6;13903:13;:18;13917:3;13903:18;;;;;;;;;;;;;;;;:22;;:28;;;;:::i;:::-;:32;;:50;;;;:::i;:::-;13896:57;;;;13856:210;13993:63;1801:6;13993:41;14016:17;;13993:13;:18;14007:3;13993:18;;;;;;;;;;;;;;;;:22;;:41;;;;:::i;:::-;:45;;:63;;;;:::i;:::-;13986:70;;13757:316;;;;:::o;18152:983::-;18309:7;4687;;;;;;;;;;;4673:21;;:10;:21;;;4665:30;;12:1:-1;9;2:12;4665:30:0;18352:1:::1;18338:10;:15;:28;;;;18358:8;18357:9;18338:28;18334:128;;;18393:5;18386:32;18400:17;;18386:32;;;;;;;;;;;;;;;;;;18438:12;;18431:19;;;;18334:128;18478:24;18505:53;1907:6;18505:43;18527:20;18536:10;1907:6;18527:8;;:20;;;;:::i;:::-;18505:17;;:21;;:43;;;;:::i;:::-;:47;;:53;;;;:::i;:::-;18478:80;;18596:19;:17;:19::i;:::-;18577:16;:38;18573:193;;;18656:16;18636:17;:36;;;;18573:193;;;18731:19;:17;:19::i;:::-;18711:17;:39;;;;18573:193;18803:246;18986:62;1801:6;18986:40;1907:6;18986:13;:30;19000:15;;;;;;;;;;;18986:30;;;;;;;;;;;;;;;;:34;;:40;;;;:::i;:::-;:44;;:62;;;;:::i;:::-;18804:150;1801:6;18804:128;18914:17;;18805:77;18851:13;:30;18865:15;;;;;;;;;;;18851:30;;;;;;;;;;;;;;;;18805:41;18820:13;:25;18842:1:::0;18820:25:::1;;;;;;;;;;;;;;;;18805:10;;:14;;:41;;;;:::i;:::-;:45;;:77;;;;:::i;:::-;18804:109;;:128;;;;:::i;:::-;:132;;:150;;;;:::i;:::-;18803:182;;:246;;;;:::i;:::-;18788:12;:261;;;;19072:5;19065:32;19079:17;;19065:32;;;;;;;;;;;;;;;;;;19115:12;;19108:19;;;4706:1;18152:983:::0;;;;;:::o;3273:151::-;3328:7;3349:16;3368:22;3383:6;;;;;;;;;;;3368:22;;:5;:14;;:22;;;;:::i;:::-;3349:41;;3408:8;3401:15;;;3273:151;;;:::o;1639:28::-;;;;;;;;;;;;;:::o;760:20::-;;;;;;;;;;;;;:::o;1526:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16738:514::-;16843:4;16865:16;16884:17;:29;16902:10;16884:29;;;;;;;;;;;;;;;:38;16914:7;16884:38;;;;;;;;;;;;;;;;16865:57;;16956:8;16937:15;:27;16933:205;;17022:1;16981:17;:29;16999:10;16981:29;;;;;;;;;;;;;;;:38;17011:7;16981:38;;;;;;;;;;;;;;;:42;;;;16933:205;;;17097:29;17110:15;17097:8;:12;;:29;;;;:::i;:::-;17056:17;:29;17074:10;17056:29;;;;;;;;;;;;;;;:38;17086:7;17056:38;;;;;;;;;;;;;;;:70;;;;16933:205;17174:7;17153:69;;17162:10;17153:69;;;17183:17;:29;17201:10;17183:29;;;;;;;;;;;;;;;:38;17213:7;17183:38;;;;;;;;;;;;;;;;17153:69;;;;;;;;;;;;;;;;;;17240:4;17233:11;;;16738:514;;;;:::o;3717:179::-;903:5;;;;;;;;;;;889:19;;:10;:19;;;881:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3812:32:::1;3824:5;3831:12;3812:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3876:12;3855:11;:18;3867:5;3855:18;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3717:179:::0;;:::o;6215:3742::-;6296:4;6635:32;6656:10;6635:20;:32::i;:::-;6632:3296;;;6683:17;6703:37;1907:6;6703:27;1801:6;6703:5;:9;;:27;;;;:::i;:::-;:31;;:37;;;;:::i;:::-;6683:57;;6755:21;6779:42;6803:17;;6779:19;1907:6;6779:9;:13;;:19;;;;:::i;:::-;:23;;:42;;;;:::i;:::-;6755:66;;6864:40;6894:9;6864:13;:25;6878:10;6864:25;;;;;;;;;;;;;;;;:29;;:40;;;;:::i;:::-;6836:13;:25;6850:10;6836:25;;;;;;;;;;;;;;;:68;;;;6959:36;6981:13;6959;:17;6973:2;6959:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;6939:13;:17;6953:2;6939:17;;;;;;;;;;;;;;;:56;;;;7036:2;7015:31;;7024:10;7015:31;;;7040:5;7015:31;;;;;;;;;;;;;;;;;;6632:3296;;;;;7076:24;7097:2;7076:20;:24::i;:::-;7073:2855;;;7116:11;7130:18;7142:5;7130:11;:18::i;:::-;7116:32;;7163:20;7190:1;7186:3;:5;;;;;;7163:28;;7206:24;7237:12;7233:3;:16;7206:43;;7264:24;7297:3;7291:5;:9;7264:36;;7333:17;7353:50;7385:17;;7353:27;1801:6;7353:5;:9;;:27;;;;:::i;:::-;:31;;:50;;;;:::i;:::-;7333:70;;7418:21;7442:61;7485:17;;7442:38;1801:6;7442:16;:20;;:38;;;;:::i;:::-;:42;;:61;;;;:::i;:::-;7418:85;;7518:23;7544:61;7587:17;;7544:38;1801:6;7544:16;:20;;:38;;;;:::i;:::-;:42;;:61;;;;:::i;:::-;7518:87;;7648:21;7672:46;1907:6;7672:36;7690:17;;7672:13;:17;;:36;;;;:::i;:::-;:40;;:46;;;;:::i;:::-;7648:70;;7775:3;7762:12;;:16;7747:12;:31;;;;7821:36;7855:1;7851:3;:5;;;;;;7821:13;:25;7843:1;7821:25;;;;;;;;;;;;;;;;:29;;:36;;;;:::i;:::-;7793:13;:25;7815:1;7793:25;;;;;;;;;;;;;;;:64;;;;7900:40;7930:9;7900:13;:25;7914:10;7900:25;;;;;;;;;;;;;;;;:29;;:40;;;;:::i;:::-;7872:13;:25;7886:10;7872:25;;;;;;;;;;;;;;;:68;;;;7976:36;7998:13;7976;:17;7990:2;7976:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;7956:13;:17;7970:2;7956:17;;;;;;;;;;;;;;;:56;;;;8058:49;8091:15;8058:13;:28;8072:13;;;;;;;;;;;8058:28;;;;;;;;;;;;;;;;:32;;:49;;;;:::i;:::-;8027:13;:28;8041:13;;;;;;;;;;;8027:28;;;;;;;;;;;;;;;:80;;;;8148:2;8127:42;;8136:10;8127:42;;;8152:16;8127:42;;;;;;;;;;;;;;;;;;8218:1;8189:46;;8198:10;8189:46;;;8222:12;8189:46;;;;;;;;;;;;;;;;;;8276:13;;;;;;;;;;;8255:53;;8264:10;8255:53;;;8291:16;8255:53;;;;;;;;;;;;;;;;;;7073:2855;;;;;;;;;;;8351:30;8366:10;8378:2;8351:14;:30::i;:::-;8347:1570;;8401:11;8415:16;8425:5;8415:9;:16::i;:::-;8401:30;;8450:20;8477:1;8473:3;:5;;;;;;8450:28;;8497:24;8528:12;8524:3;:16;8497:43;;8559:24;8592:3;8586:5;:9;8559:36;;8636:17;8656:50;8688:17;;8656:27;1801:6;8656:5;:9;;:27;;;;:::i;:::-;:31;;:50;;;;:::i;:::-;8636:70;;8725:21;8749:61;8792:17;;8749:38;1801:6;8749:16;:20;;:38;;;;:::i;:::-;:42;;:61;;;;:::i;:::-;8725:85;;8829:23;8855:61;8898:17;;8855:38;1801:6;8855:16;:20;;:38;;;;:::i;:::-;:42;;:61;;;;:::i;:::-;8829:87;;8981:3;8968:12;;:16;8953:12;:31;;;;9031:36;9065:1;9061:3;:5;;;;;;9031:13;:25;9053:1;9031:25;;;;;;;;;;;;;;;;:29;;:36;;;;:::i;:::-;9003:13;:25;9025:1;9003:25;;;;;;;;;;;;;;;:64;;;;9114:40;9144:9;9114:13;:25;9128:10;9114:25;;;;;;;;;;;;;;;;:29;;:40;;;;:::i;:::-;9086:13;:25;9100:10;9086:25;;;;;;;;;;;;;;;:68;;;;9194:36;9216:13;9194;:17;9208:2;9194:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;9174:13;:17;9188:2;9174:17;;;;;;;;;;;;;;;:56;;;;9280:49;9313:15;9280:13;:28;9294:13;;;;;;;;;;;9280:28;;;;;;;;;;;;;;;;:32;;:49;;;;:::i;:::-;9249:13;:28;9263:13;;;;;;;;;;;9249:28;;;;;;;;;;;;;;;:80;;;;9374:2;9353:42;;9362:10;9353:42;;;9378:16;9353:42;;;;;;;;;;;;;;;;;;9448:1;9419:46;;9428:10;9419:46;;;9452:12;9419:46;;;;;;;;;;;;;;;;;;9510:13;;;;;;;;;;;9489:53;;9498:10;9489:53;;;9525:16;9489:53;;;;;;;;;;;;;;;;;;8347:1570;;;;;;;;;;9595:17;9615:50;9647:17;;9615:27;1801:6;9615:5;:9;;:27;;;;:::i;:::-;:31;;:50;;;;:::i;:::-;9595:70;;9729:40;9759:9;9729:13;:25;9743:10;9729:25;;;;;;;;;;;;;;;;:29;;:40;;;;:::i;:::-;9701:13;:25;9715:10;9701:25;;;;;;;;;;;;;;;:68;;;;9809:32;9831:9;9809:13;:17;9823:2;9809:17;;;;;;;;;;;;;;;;:21;;:32;;;;:::i;:::-;9789:13;:17;9803:2;9789:17;;;;;;;;;;;;;;;:52;;;;9886:2;9865:35;;9874:10;9865:35;;;9890:9;9865:35;;;;;;;;;;;;;;;;;;8347:1570;;7073:2855;6632:3296;9945:4;9938:11;;6215:3742;;;;:::o;2374:30::-;;;;;;;;;;;;;:::o;4299:191::-;903:5;;;;;;;;;;;889:19;;:10;:19;;;881:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4398:36:::1;4414:5;4421:12;4398:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4470:12;4445:15;:22;4461:5;4445:22;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;4299:191:::0;;:::o;14705:176::-;14807:7;14839:17;:25;14857:6;14839:25;;;;;;;;;;;;;;;:34;14865:7;14839:34;;;;;;;;;;;;;;;;14832:41;;14705:176;;;;:::o;2308:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;2511:25::-;;;;;;;;;;;;;:::o;4002:86::-;4687:7;;;;;;;;;;;4673:21;;:10;:21;;;4665:30;;12:1:-1;9;2:12;4665:30:0;4077:3:::1;4066:8;;:14;;;;;;;;;;;;;;;;;;4002:86:::0;:::o;1876:37::-;1907:6;1876:37;:::o;17428:205::-;903:5;;;;;;;;;;;889:19;;:10;:19;;;881:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17520:18:::1;17541:7;;;;;;;;;;;17520:28;;17569:8;17559:7;;:18;;;;;;;;;;;;;;;;;;17593:32;17604:10;17616:8;17593:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;934:1;17428:205:::0;:::o;17646:138::-;903:5;;;;;;;;;;;889:19;;:10;:19;;;881:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17760:8:::1;17744:13;;:24;;;;;;;;;;;;;;;;;;17646:138:::0;:::o;4100:185::-;903:5;;;;;;;;;;;889:19;;:10;:19;;;881:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4197:34:::1;4211:5;4218:12;4197:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4265:12;4242:13;:20;4256:5;4242:20;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4100:185:::0;;:::o;20356:232::-;20419:7;20452:1;20447;:6;;20439:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20480:9;20496:1;20492;:5;;;;;;20480:17;;20521:1;20516;20512;:5;;;;;;:10;20508:52;;20547:1;20543;:5;20539:9;;20508:52;20579:1;20572:8;;;20356:232;;;;:::o;4950:337::-;5029:7;5269:10;;5263:2;5255:24;;;;;;5248:31;;4950:337;:::o;19649:136::-;19707:7;19736:1;19731;:6;;19723:15;;12:1:-1;9;2:12;19723:15:0;19745:9;19761:1;19757;:5;19745:17;;19778:1;19771:8;;;19649:136;;;;:::o;3587:122::-;3655:4;3679:15;:22;3695:5;3679:22;;;;;;;;;;;;;;;;;;;;;;;;;3672:29;;3587:122;;;:::o;19172:185::-;19230:7;19255:1;19250;:6;19246:37;;;19274:1;19267:8;;;;19246:37;19291:9;19307:1;19303;:5;19291:17;;19332:1;19327;19323;:5;;;;;;:10;19315:19;;12:1:-1;9;2:12;19315:19:0;19350:1;19343:8;;;19172:185;;;;;:::o;19365:276::-;19423:7;19451:1;19447;:5;19439:14;;12:1:-1;9;2:12;19439:14:0;19518:9;19534:1;19530;:5;;;;;;19518:17;;19634:1;19627:8;;;19365:276;;;;:::o;19795:136::-;19853:7;19869:9;19885:1;19881;:5;19869:17;;19906:1;19901;:6;;19893:15;;12:1:-1;9;2:12;19893:15:0;19924:1;19917:8;;;19795:136;;;;:::o;3436:145::-;3511:4;3535:13;:20;3549:5;3535:20;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;3557:11;:16;3569:3;3557:16;;;;;;;;;;;;;;;;;;;;;;;;;3535:38;3528:45;;3436:145;;;;:::o

Swarm Source

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