ETH Price: $2,591.64 (-2.70%)

Token

UniLox.io (LOX)
 

Overview

Max Total Supply

2,994,300.454506894243384192 LOX

Holders

106

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,729.449526534975431181 LOX

Value
$0.00
0x6bd00b0d08c0245d07893b4873e4021a7c92b2fb
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
LOX

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*



   __  __      _ __              
  / / / /___  (_) /   ____  _  __
 / / / / __ \/ / /   / __ \| |/_/
/ /_/ / / / / / /___/ /_/ />  <  
\____/_/ /_/_/_____/\____/_/|_|  
                                 

(LOX) 

Securing The DeFi Space

Website:   https://unilox.io

Telegram:  https://t.me/unilox

Twitter:   https://twitter.com/Uniloxio

Discord:   https://discord.gg/PcaQ473


LOX token sale begins September 18, 2020

LOX Uniswap Listing September 20, 2020

LOX token sale price is 0.0001 ETH
(2X Bonus of $PRELOX holders)

To gain the 2X bonus buyers of $LOX must hold at least 1,000 $PRELOX tokens

Buy PRELOX here:   


*/

pragma solidity ^0.5.17;

interface IERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address recipient, uint amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

contract Context {
    constructor () internal { }
    // solhint-disable-previous-line no-empty-blocks

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }
}

contract ERC20 is Context, IERC20 {
    using SafeMath for uint;

    mapping (address => uint) private _balances;

    mapping (address => mapping (address => uint)) private _allowances;

    uint private _totalSupply;
    function totalSupply() public view returns (uint) {
        return _totalSupply;
    }
    function balanceOf(address account) public view returns (uint) {
        return _balances[account];
    }
    function transfer(address recipient, uint amount) public returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view returns (uint) {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint amount) public returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function increaseAllowance(address spender, uint addedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint subtractedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }
    function _transfer(address sender, address recipient, uint amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _burn(address account, uint amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function addBalance(address account, uint amount) internal {
        require(account != address(0), "ERC20: add to the zero address");

        _balances[account] = _balances[account].add(amount);
        _totalSupply = _totalSupply.add(amount);
        emit Transfer(address(0), account, amount);
    }



    function _approve(address owner, address spender, uint amount) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }
    function name() public view returns (string memory) {
        return _name;
    }
    function symbol() public view returns (string memory) {
        return _symbol;
    }
    function decimals() public view returns (uint8) {
        return _decimals;
    }
}

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

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

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

        uint c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint a, uint b) internal pure returns (uint) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint c = a / b;

        return c;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

library SafeERC20 {
    using SafeMath for uint;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract LOX is ERC20, ERC20Detailed {
  using SafeERC20 for IERC20;
  using Address for address;
  using SafeMath for uint;
  uint256 public tokenSalePrice = 0.0001 ether;
  uint public liquidityTokens = 0;  
  bool public _tokenSaleMode = true;
  uint256 public teamLockTime;
  address public admin;
  bool public teamUnlocked = false;
  bool public liquidityTokensAdded = false;
  address public _loxPreAddress = 0x4C08F3aCc79463aDA063EFcd5888161006601964;
  uint public minLoxPreTokens = 1000e18;
  uint public presaleMultiplier = 2;
  uint public minPreSalePurchase = 0.25 ether;
  
 
  constructor () public ERC20Detailed("UniLox.io", "LOX", 18) {
      admin = msg.sender;
      teamLockTime = now + 360*86400; //lock team tokens for 1 year
  }

    function checkPreBalance(address _user)  public view returns(bool) {
      IERC20 preLox = IERC20(_loxPreAddress); 

      if (preLox.balanceOf(_user) >= minLoxPreTokens) {
          return true;
      } else {
        return false;
      }  
  }

function checkMyBonus()  public view returns(bool) {
      IERC20 preLox = IERC20(_loxPreAddress); 

      if (preLox.balanceOf(msg.sender) >= minLoxPreTokens) {
          return true;
      } else {
        return false;
      }  
  }

   function burn(uint256 amount) public {
      _burn(msg.sender, amount);
  }
  
  function buyToken() public payable {
      require(_tokenSaleMode, "token sale is over");
      require(msg.value >= minPreSalePurchase, "minimum purchase amount not met");
      uint256 tokenMultiplier = 1;

      if (checkPreBalance(msg.sender)) {
          tokenMultiplier = presaleMultiplier;
      } else {
          tokenMultiplier = 1;
      }

      uint256 newTokens = SafeMath.mul(SafeMath.div(msg.value, tokenSalePrice),1e18);
      newTokens = newTokens * tokenMultiplier;
      addBalance(msg.sender, newTokens);
      liquidityTokens = liquidityTokens.add(newTokens);
  }

   function unlockTeamTokens() public payable {    // team tokens are locked for 1 year
      require(msg.sender == admin, "!not allowed");
      require(now > teamLockTime, "!too early");   
      require(!teamUnlocked, "!already unlocked");  
      teamUnlocked = true;
      uint256 newTokens = 400000e18;  // 400,000 team tokens
      addBalance(msg.sender, newTokens);
      
  }

  function() external payable {
      buyToken();
  }

  function getLiquidityTokens() public {
      require(msg.sender == admin, "!not allowed");
      require(!liquidityTokensAdded, "!already added");
      liquidityTokensAdded = true;
      uint _liqTokens = SafeMath.mul(liquidityTokens,4);
      addBalance(msg.sender, _liqTokens);
  } 


  function endTokenSale() public {
      require(msg.sender == admin, "!not allowed");
      _tokenSaleMode = false;
  }

   function setPreloxAddress(address loxPreAddress) public {
      require(msg.sender == admin, "!not allowed");
      _loxPreAddress = loxPreAddress;
  }

   function withdraw() external {
      require(msg.sender == admin, "!not allowed");
      msg.sender.transfer(address(this).balance);
  }

   function withdrawPartial(uint _amount) external {
      require(msg.sender == admin, "!not allowed");
      require(_amount <= address(this).balance, "!exceeds balance");
      msg.sender.transfer(_amount);
  }

   function myPreLox() external view returns(uint) {
      IERC20 preLox = IERC20(_loxPreAddress); 
      return preLox.balanceOf(msg.sender);
  }

 function setPreLoxMin(uint _min) external {
      require(msg.sender == admin, "!not allowed");
      minLoxPreTokens = _min;
  }

   function setPresaleMultiplier(uint _mult) external {
      require(msg.sender == admin, "!not allowed");
      presaleMultiplier = _mult;
  }

   function setMinPresale(uint _min) external {
      require(msg.sender == admin, "!not allowed");
      minPreSalePurchase = _min;
  }
  


}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"_loxPreAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_tokenSaleMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buyToken","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"checkMyBonus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkPreBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"endTokenSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getLiquidityTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"liquidityTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidityTokensAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minLoxPreTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minPreSalePurchase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myPreLox","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_min","type":"uint256"}],"name":"setMinPresale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_min","type":"uint256"}],"name":"setPreLoxMin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"loxPreAddress","type":"address"}],"name":"setPreloxAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_mult","type":"uint256"}],"name":"setPresaleMultiplier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamLockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamUnlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSalePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unlockTeamTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawPartial","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

6080604052655af3107a400060065560006007556008805460ff19166001179055600a805461ffff60a01b19169055600b80546001600160a01b031916734c08f3acc79463ada063efcd5888161006601964179055683635c9adc5dea00000600c556002600d556703782dace9d90000600e553480156200007f57600080fd5b5060405180604001604052806009815260200168556e694c6f782e696f60b81b815250604051806040016040528060038152602001620989eb60eb1b81525060128260039080519060200190620000d892919062000128565b508151620000ee90600490602085019062000128565b506005805460ff90921660ff199092169190911790555050600a80546001600160a01b031916331790556301da9c004201600955620001cd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016b57805160ff19168380011785556200019b565b828001600101855582156200019b579182015b828111156200019b5782518255916020019190600101906200017e565b50620001a9929150620001ad565b5090565b620001ca91905b80821115620001a95760008155600101620001b4565b90565b611a5480620001dd6000396000f3fe60806040526004361061020f5760003560e01c80636dca0b5e11610118578063bef643c4116100a0578063e2130d1e1161006f578063e2130d1e14610703578063e55bfd161461070b578063e86790eb14610720578063f851a44014610735578063fd3cf36a1461074a5761020f565b8063bef643c414610656578063c84985c21461066b578063ccc943391461069e578063dd62ed3e146106c85761020f565b806395d89b41116100e757806395d89b41146105ba578063a457c2d7146105cf578063a48217191461020f578063a9059cbb14610608578063b65afb9d146106415761020f565b80636dca0b5e1461052a57806370a082311461053f57806388b119e5146105725780639527f056146105875761020f565b80632900ef151161019b578063395093511161016a57806339509351146104885780633ccfd60b146104c157806342966c68146104d65780634b8ce602146105005780636d1f29e4146105155761020f565b80632900ef1514610409578063307edff814610433578063313ce5671461044857806337184b00146104735761020f565b80631508b326116101e25780631508b3261461034157806318160ddd146103725780631e9d2b451461038757806323b872dd1461039c578063248b2f42146103df5761020f565b806306fdde0314610219578063095ea7b3146102a35780630dd6bec3146102f05780631211540c14610317575b61021761075f565b005b34801561022557600080fd5b5061022e610866565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610268578181015183820152602001610250565b50505050905090810190601f1680156102955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102af57600080fd5b506102dc600480360360408110156102c657600080fd5b506001600160a01b0381351690602001356108fd565b604080519115158252519081900360200190f35b3480156102fc57600080fd5b5061030561091b565b60408051918252519081900360200190f35b34801561032357600080fd5b506102176004803603602081101561033a57600080fd5b5035610921565b34801561034d57600080fd5b506103566109e8565b604080516001600160a01b039092168252519081900360200190f35b34801561037e57600080fd5b506103056109f7565b34801561039357600080fd5b506103056109fd565b3480156103a857600080fd5b506102dc600480360360608110156103bf57600080fd5b506001600160a01b03813581169160208101359091169060400135610a03565b3480156103eb57600080fd5b506102176004803603602081101561040257600080fd5b5035610a90565b34801561041557600080fd5b506102176004803603602081101561042c57600080fd5b5035610ae3565b34801561043f57600080fd5b50610217610b36565b34801561045457600080fd5b5061045d610b90565b6040805160ff9092168252519081900360200190f35b34801561047f57600080fd5b506102dc610b99565b34801561049457600080fd5b506102dc600480360360408110156104ab57600080fd5b506001600160a01b038135169060200135610ba9565b3480156104cd57600080fd5b50610217610bfd565b3480156104e257600080fd5b50610217600480360360208110156104f957600080fd5b5035610c7a565b34801561050c57600080fd5b50610305610c84565b34801561052157600080fd5b506102dc610c8a565b34801561053657600080fd5b50610305610c9a565b34801561054b57600080fd5b506103056004803603602081101561056257600080fd5b50356001600160a01b0316610ca0565b34801561057e57600080fd5b506102dc610cbf565b34801561059357600080fd5b506102dc600480360360208110156105aa57600080fd5b50356001600160a01b0316610d56565b3480156105c657600080fd5b5061022e610df1565b3480156105db57600080fd5b506102dc600480360360408110156105f257600080fd5b506001600160a01b038135169060200135610e52565b34801561061457600080fd5b506102dc6004803603604081101561062b57600080fd5b506001600160a01b038135169060200135610ec0565b34801561064d57600080fd5b50610217610ed4565b34801561066257600080fd5b50610305610fa2565b34801561067757600080fd5b506102176004803603602081101561068e57600080fd5b50356001600160a01b0316611022565b3480156106aa57600080fd5b50610217600480360360208110156106c157600080fd5b5035611092565b3480156106d457600080fd5b50610305600480360360408110156106eb57600080fd5b506001600160a01b03813581169160200135166110e5565b610217611110565b34801561071757600080fd5b506102dc61121c565b34801561072c57600080fd5b50610305611225565b34801561074157600080fd5b5061035661122b565b34801561075657600080fd5b5061030561123a565b60085460ff166107ab576040805162461bcd60e51b81526020600482015260126024820152713a37b5b2b71039b0b6329034b99037bb32b960711b604482015290519081900360640190fd5b600e54341015610802576040805162461bcd60e51b815260206004820152601f60248201527f6d696e696d756d20707572636861736520616d6f756e74206e6f74206d657400604482015290519081900360640190fd5b600161080d33610d56565b1561081b5750600d5461081f565b5060015b600061083e61083034600654611240565b670de0b6b3a7640000611289565b8202905061084c33826112e2565b60075461085f908263ffffffff6113da16565b6007555050565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108f25780601f106108c7576101008083540402835291602001916108f2565b820191906000526020600020905b8154815290600101906020018083116108d557829003601f168201915b505050505090505b90565b600061091161090a611434565b8484611438565b5060015b92915050565b600c5481565b600a546001600160a01b0316331461096f576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b478111156109b7576040805162461bcd60e51b815260206004820152601060248201526f21657863656564732062616c616e636560801b604482015290519081900360640190fd5b604051339082156108fc029083906000818181858888f193505050501580156109e4573d6000803e3d6000fd5b5050565b600b546001600160a01b031681565b60025490565b600e5481565b6000610a10848484611524565b610a8684610a1c611434565b610a8185604051806060016040528060288152602001611969602891396001600160a01b038a16600090815260016020526040812090610a5a611434565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61168016565b611438565b5060019392505050565b600a546001600160a01b03163314610ade576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b600c55565b600a546001600160a01b03163314610b31576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b600e55565b600a546001600160a01b03163314610b84576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b6008805460ff19169055565b60055460ff1690565b600a54600160a01b900460ff1681565b6000610911610bb6611434565b84610a818560016000610bc7611434565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6113da16565b600a546001600160a01b03163314610c4b576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f19350505050158015610c77573d6000803e3d6000fd5b50565b610c773382611717565b60075481565b600a54600160a81b900460ff1681565b600d5481565b6001600160a01b0381166000908152602081905260409020545b919050565b600b54600c54604080516370a0823160e01b815233600482015290516000936001600160a01b0316929183916370a0823191602480820192602092909190829003018186803b158015610d1157600080fd5b505afa158015610d25573d6000803e3d6000fd5b505050506040513d6020811015610d3b57600080fd5b505110610d4c5760019150506108fa565b60009150506108fa565b600b54600c54604080516370a0823160e01b81526001600160a01b038581166004830152915160009492909216929183916370a08231916024808301926020929190829003018186803b158015610dac57600080fd5b505afa158015610dc0573d6000803e3d6000fd5b505050506040513d6020811015610dd657600080fd5b505110610de7576001915050610cba565b6000915050610cba565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108f25780601f106108c7576101008083540402835291602001916108f2565b6000610911610e5f611434565b84610a81856040518060600160405280602581526020016119fb6025913960016000610e89611434565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61168016565b6000610911610ecd611434565b8484611524565b600a546001600160a01b03163314610f22576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b600a54600160a81b900460ff1615610f72576040805162461bcd60e51b815260206004820152600e60248201526d08585b1c9958591e48185919195960921b604482015290519081900360640190fd5b600a805460ff60a81b1916600160a81b179055600754600090610f96906004611289565b9050610c7733826112e2565b600b54604080516370a0823160e01b815233600482015290516000926001600160a01b03169182916370a0823191602480820192602092909190829003018186803b158015610ff057600080fd5b505afa158015611004573d6000803e3d6000fd5b505050506040513d602081101561101a57600080fd5b505191505090565b600a546001600160a01b03163314611070576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b031633146110e0576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b600d55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600a546001600160a01b0316331461115e576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b60095442116111a1576040805162461bcd60e51b815260206004820152600a60248201526921746f6f206561726c7960b01b604482015290519081900360640190fd5b600a54600160a01b900460ff16156111f4576040805162461bcd60e51b815260206004820152601160248201527008585b1c9958591e481d5b9b1bd8dad959607a1b604482015290519081900360640190fd5b600a805460ff60a01b1916600160a01b1790556954b40b1f852bda000000610c7733826112e2565b60085460ff1681565b60065481565b600a546001600160a01b031681565b60095481565b600061128283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611813565b9392505050565b60008261129857506000610915565b828202828482816112a557fe5b04146112825760405162461bcd60e51b81526004018080602001828103825260218152602001806119486021913960400191505060405180910390fd5b6001600160a01b03821661133d576040805162461bcd60e51b815260206004820152601e60248201527f45524332303a2061646420746f20746865207a65726f20616464726573730000604482015290519081900360640190fd5b6001600160a01b038216600090815260208190526040902054611366908263ffffffff6113da16565b6001600160a01b038316600090815260208190526040902055600254611392908263ffffffff6113da16565b6002556040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600082820183811015611282576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3390565b6001600160a01b03831661147d5760405162461bcd60e51b81526004018080602001828103825260248152602001806119d76024913960400191505060405180910390fd5b6001600160a01b0382166114c25760405162461bcd60e51b81526004018080602001828103825260228152602001806119006022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166115695760405162461bcd60e51b81526004018080602001828103825260258152602001806119b26025913960400191505060405180910390fd5b6001600160a01b0382166115ae5760405162461bcd60e51b81526004018080602001828103825260238152602001806118bb6023913960400191505060405180910390fd5b6115f181604051806060016040528060268152602001611922602691396001600160a01b038616600090815260208190526040902054919063ffffffff61168016565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611626908263ffffffff6113da16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561170f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156116d45781810151838201526020016116bc565b50505050905090810190601f1680156117015780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b03821661175c5760405162461bcd60e51b81526004018080602001828103825260218152602001806119916021913960400191505060405180910390fd5b61179f816040518060600160405280602281526020016118de602291396001600160a01b038516600090815260208190526040902054919063ffffffff61168016565b6001600160a01b0383166000908152602081905260409020556002546117cb908263ffffffff61187816565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600081836118625760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156116d45781810151838201526020016116bc565b50600083858161186e57fe5b0495945050505050565b600061128283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061168056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820984973d9998233246066da4c4c2bf083fa4275d2cc1369af13ded98bc8eb310664736f6c63430005110032

Deployed Bytecode

0x60806040526004361061020f5760003560e01c80636dca0b5e11610118578063bef643c4116100a0578063e2130d1e1161006f578063e2130d1e14610703578063e55bfd161461070b578063e86790eb14610720578063f851a44014610735578063fd3cf36a1461074a5761020f565b8063bef643c414610656578063c84985c21461066b578063ccc943391461069e578063dd62ed3e146106c85761020f565b806395d89b41116100e757806395d89b41146105ba578063a457c2d7146105cf578063a48217191461020f578063a9059cbb14610608578063b65afb9d146106415761020f565b80636dca0b5e1461052a57806370a082311461053f57806388b119e5146105725780639527f056146105875761020f565b80632900ef151161019b578063395093511161016a57806339509351146104885780633ccfd60b146104c157806342966c68146104d65780634b8ce602146105005780636d1f29e4146105155761020f565b80632900ef1514610409578063307edff814610433578063313ce5671461044857806337184b00146104735761020f565b80631508b326116101e25780631508b3261461034157806318160ddd146103725780631e9d2b451461038757806323b872dd1461039c578063248b2f42146103df5761020f565b806306fdde0314610219578063095ea7b3146102a35780630dd6bec3146102f05780631211540c14610317575b61021761075f565b005b34801561022557600080fd5b5061022e610866565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610268578181015183820152602001610250565b50505050905090810190601f1680156102955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102af57600080fd5b506102dc600480360360408110156102c657600080fd5b506001600160a01b0381351690602001356108fd565b604080519115158252519081900360200190f35b3480156102fc57600080fd5b5061030561091b565b60408051918252519081900360200190f35b34801561032357600080fd5b506102176004803603602081101561033a57600080fd5b5035610921565b34801561034d57600080fd5b506103566109e8565b604080516001600160a01b039092168252519081900360200190f35b34801561037e57600080fd5b506103056109f7565b34801561039357600080fd5b506103056109fd565b3480156103a857600080fd5b506102dc600480360360608110156103bf57600080fd5b506001600160a01b03813581169160208101359091169060400135610a03565b3480156103eb57600080fd5b506102176004803603602081101561040257600080fd5b5035610a90565b34801561041557600080fd5b506102176004803603602081101561042c57600080fd5b5035610ae3565b34801561043f57600080fd5b50610217610b36565b34801561045457600080fd5b5061045d610b90565b6040805160ff9092168252519081900360200190f35b34801561047f57600080fd5b506102dc610b99565b34801561049457600080fd5b506102dc600480360360408110156104ab57600080fd5b506001600160a01b038135169060200135610ba9565b3480156104cd57600080fd5b50610217610bfd565b3480156104e257600080fd5b50610217600480360360208110156104f957600080fd5b5035610c7a565b34801561050c57600080fd5b50610305610c84565b34801561052157600080fd5b506102dc610c8a565b34801561053657600080fd5b50610305610c9a565b34801561054b57600080fd5b506103056004803603602081101561056257600080fd5b50356001600160a01b0316610ca0565b34801561057e57600080fd5b506102dc610cbf565b34801561059357600080fd5b506102dc600480360360208110156105aa57600080fd5b50356001600160a01b0316610d56565b3480156105c657600080fd5b5061022e610df1565b3480156105db57600080fd5b506102dc600480360360408110156105f257600080fd5b506001600160a01b038135169060200135610e52565b34801561061457600080fd5b506102dc6004803603604081101561062b57600080fd5b506001600160a01b038135169060200135610ec0565b34801561064d57600080fd5b50610217610ed4565b34801561066257600080fd5b50610305610fa2565b34801561067757600080fd5b506102176004803603602081101561068e57600080fd5b50356001600160a01b0316611022565b3480156106aa57600080fd5b50610217600480360360208110156106c157600080fd5b5035611092565b3480156106d457600080fd5b50610305600480360360408110156106eb57600080fd5b506001600160a01b03813581169160200135166110e5565b610217611110565b34801561071757600080fd5b506102dc61121c565b34801561072c57600080fd5b50610305611225565b34801561074157600080fd5b5061035661122b565b34801561075657600080fd5b5061030561123a565b60085460ff166107ab576040805162461bcd60e51b81526020600482015260126024820152713a37b5b2b71039b0b6329034b99037bb32b960711b604482015290519081900360640190fd5b600e54341015610802576040805162461bcd60e51b815260206004820152601f60248201527f6d696e696d756d20707572636861736520616d6f756e74206e6f74206d657400604482015290519081900360640190fd5b600161080d33610d56565b1561081b5750600d5461081f565b5060015b600061083e61083034600654611240565b670de0b6b3a7640000611289565b8202905061084c33826112e2565b60075461085f908263ffffffff6113da16565b6007555050565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108f25780601f106108c7576101008083540402835291602001916108f2565b820191906000526020600020905b8154815290600101906020018083116108d557829003601f168201915b505050505090505b90565b600061091161090a611434565b8484611438565b5060015b92915050565b600c5481565b600a546001600160a01b0316331461096f576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b478111156109b7576040805162461bcd60e51b815260206004820152601060248201526f21657863656564732062616c616e636560801b604482015290519081900360640190fd5b604051339082156108fc029083906000818181858888f193505050501580156109e4573d6000803e3d6000fd5b5050565b600b546001600160a01b031681565b60025490565b600e5481565b6000610a10848484611524565b610a8684610a1c611434565b610a8185604051806060016040528060288152602001611969602891396001600160a01b038a16600090815260016020526040812090610a5a611434565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61168016565b611438565b5060019392505050565b600a546001600160a01b03163314610ade576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b600c55565b600a546001600160a01b03163314610b31576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b600e55565b600a546001600160a01b03163314610b84576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b6008805460ff19169055565b60055460ff1690565b600a54600160a01b900460ff1681565b6000610911610bb6611434565b84610a818560016000610bc7611434565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6113da16565b600a546001600160a01b03163314610c4b576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f19350505050158015610c77573d6000803e3d6000fd5b50565b610c773382611717565b60075481565b600a54600160a81b900460ff1681565b600d5481565b6001600160a01b0381166000908152602081905260409020545b919050565b600b54600c54604080516370a0823160e01b815233600482015290516000936001600160a01b0316929183916370a0823191602480820192602092909190829003018186803b158015610d1157600080fd5b505afa158015610d25573d6000803e3d6000fd5b505050506040513d6020811015610d3b57600080fd5b505110610d4c5760019150506108fa565b60009150506108fa565b600b54600c54604080516370a0823160e01b81526001600160a01b038581166004830152915160009492909216929183916370a08231916024808301926020929190829003018186803b158015610dac57600080fd5b505afa158015610dc0573d6000803e3d6000fd5b505050506040513d6020811015610dd657600080fd5b505110610de7576001915050610cba565b6000915050610cba565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108f25780601f106108c7576101008083540402835291602001916108f2565b6000610911610e5f611434565b84610a81856040518060600160405280602581526020016119fb6025913960016000610e89611434565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61168016565b6000610911610ecd611434565b8484611524565b600a546001600160a01b03163314610f22576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b600a54600160a81b900460ff1615610f72576040805162461bcd60e51b815260206004820152600e60248201526d08585b1c9958591e48185919195960921b604482015290519081900360640190fd5b600a805460ff60a81b1916600160a81b179055600754600090610f96906004611289565b9050610c7733826112e2565b600b54604080516370a0823160e01b815233600482015290516000926001600160a01b03169182916370a0823191602480820192602092909190829003018186803b158015610ff057600080fd5b505afa158015611004573d6000803e3d6000fd5b505050506040513d602081101561101a57600080fd5b505191505090565b600a546001600160a01b03163314611070576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b031633146110e0576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b600d55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600a546001600160a01b0316331461115e576040805162461bcd60e51b815260206004820152600c60248201526b085b9bdd08185b1b1bddd95960a21b604482015290519081900360640190fd5b60095442116111a1576040805162461bcd60e51b815260206004820152600a60248201526921746f6f206561726c7960b01b604482015290519081900360640190fd5b600a54600160a01b900460ff16156111f4576040805162461bcd60e51b815260206004820152601160248201527008585b1c9958591e481d5b9b1bd8dad959607a1b604482015290519081900360640190fd5b600a805460ff60a01b1916600160a01b1790556954b40b1f852bda000000610c7733826112e2565b60085460ff1681565b60065481565b600a546001600160a01b031681565b60095481565b600061128283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611813565b9392505050565b60008261129857506000610915565b828202828482816112a557fe5b04146112825760405162461bcd60e51b81526004018080602001828103825260218152602001806119486021913960400191505060405180910390fd5b6001600160a01b03821661133d576040805162461bcd60e51b815260206004820152601e60248201527f45524332303a2061646420746f20746865207a65726f20616464726573730000604482015290519081900360640190fd5b6001600160a01b038216600090815260208190526040902054611366908263ffffffff6113da16565b6001600160a01b038316600090815260208190526040902055600254611392908263ffffffff6113da16565b6002556040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600082820183811015611282576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3390565b6001600160a01b03831661147d5760405162461bcd60e51b81526004018080602001828103825260248152602001806119d76024913960400191505060405180910390fd5b6001600160a01b0382166114c25760405162461bcd60e51b81526004018080602001828103825260228152602001806119006022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166115695760405162461bcd60e51b81526004018080602001828103825260258152602001806119b26025913960400191505060405180910390fd5b6001600160a01b0382166115ae5760405162461bcd60e51b81526004018080602001828103825260238152602001806118bb6023913960400191505060405180910390fd5b6115f181604051806060016040528060268152602001611922602691396001600160a01b038616600090815260208190526040902054919063ffffffff61168016565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611626908263ffffffff6113da16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561170f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156116d45781810151838201526020016116bc565b50505050905090810190601f1680156117015780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b03821661175c5760405162461bcd60e51b81526004018080602001828103825260218152602001806119916021913960400191505060405180910390fd5b61179f816040518060600160405280602281526020016118de602291396001600160a01b038516600090815260208190526040902054919063ffffffff61168016565b6001600160a01b0383166000908152602081905260409020556002546117cb908263ffffffff61187816565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600081836118625760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156116d45781810151838201526020016116bc565b50600083858161186e57fe5b0495945050505050565b600061128283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061168056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820984973d9998233246066da4c4c2bf083fa4275d2cc1369af13ded98bc8eb310664736f6c63430005110032

Deployed Bytecode Sourcemap

8298:3976:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10709:10;:8;:10::i;:::-;8298:3976;5044:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5044:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5044:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2312:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2312:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2312:149:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8772:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8772:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;11465:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11465:214:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11465:214:0;;:::i;8693:74::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8693:74:0;;;:::i;:::-;;;;-1:-1:-1;;;;;8693:74:0;;;;;;;;;;;;;;1807:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1807:88:0;;;:::i;8852:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8852:43:0;;;:::i;2467:301::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2467:301:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2467:301:0;;;;;;;;;;;;;;;;;:::i;11837:132::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11837:132:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11837:132:0;;:::i;12127:136::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12127:136:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12127:136:0;;:::i;11030:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11030:121:0;;;:::i;5226:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5226:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8611:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8611:32:0;;;:::i;2774:207::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2774:207:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2774:207:0;;;;;;;;:::i;11319:139::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11319:139:0;;;:::i;9585:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9585:77:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9585:77:0;;:::i;8478:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8478:31:0;;;:::i;8648:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8648:40:0;;;:::i;8814:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8814:33:0;;;:::i;1901:107::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1901:107:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1901:107:0;-1:-1:-1;;;;;1901:107:0;;:::i;9335:243::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9335:243:0;;;:::i;9077:254::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9077:254:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9077:254:0;-1:-1:-1;;;;;9077:254:0;;:::i;5133:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5133:87:0;;;:::i;2987:258::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2987:258:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2987:258:0;;;;;;;;:::i;2014:155::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2014:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2014:155:0;;;;;;;;:::i;10731:290::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10731:290:0;;;:::i;11686:146::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11686:146:0;;;:::i;11158:154::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11158:154:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11158:154:0;-1:-1:-1;;;;;11158:154:0;;:::i;11976:144::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11976:144:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11976:144:0;;:::i;2175:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2175:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2175:131:0;;;;;;;;;;:::i;10277:389::-;;;:::i;8516:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8516:33:0;;;:::i;8429:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8429:44:0;;;:::i;8586:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8586:20:0;;;:::i;8554:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8554:27:0;;;:::i;9670:600::-;9722:14;;;;9714:45;;;;;-1:-1:-1;;;9714:45:0;;;;;;;;;;;;-1:-1:-1;;;9714:45:0;;;;;;;;;;;;;;;9789:18;;9776:9;:31;;9768:75;;;;;-1:-1:-1;;;9768:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9878:1;9894:27;9910:10;9894:15;:27::i;:::-;9890:139;;;-1:-1:-1;9954:17:0;;9890:139;;;-1:-1:-1;10018:1:0;9890:139;10039:17;10059:58;10072:39;10085:9;10096:14;;10072:12;:39::i;:::-;10112:4;10059:12;:58::i;:::-;10138:27;;;-1:-1:-1;10174:33:0;10185:10;10138:27;10174:10;:33::i;:::-;10234:15;;:30;;10254:9;10234:30;:19;:30;:::i;:::-;10216:15;:48;-1:-1:-1;;9670:600:0:o;5044:83::-;5114:5;5107:12;;;;;;;;-1:-1:-1;;5107:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5081:13;;5107:12;;5114:5;;5107:12;;5114:5;5107:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5044:83;;:::o;2312:149::-;2375:4;2392:39;2401:12;:10;:12::i;:::-;2415:7;2424:6;2392:8;:39::i;:::-;-1:-1:-1;2449:4:0;2312:149;;;;;:::o;8772:37::-;;;;:::o;11465:214::-;11544:5;;-1:-1:-1;;;;;11544:5:0;11530:10;:19;11522:44;;;;;-1:-1:-1;;;11522:44:0;;;;;;;;;;;;-1:-1:-1;;;11522:44:0;;;;;;;;;;;;;;;11594:21;11583:7;:32;;11575:61;;;;;-1:-1:-1;;;11575:61:0;;;;;;;;;;;;-1:-1:-1;;;11575:61:0;;;;;;;;;;;;;;;11645:28;;:10;;:28;;;;;11665:7;;11645:28;;;;11665:7;11645:10;:28;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11645:28:0;11465:214;:::o;8693:74::-;;;-1:-1:-1;;;;;8693:74:0;;:::o;1807:88::-;1875:12;;1807:88;:::o;8852:43::-;;;;:::o;2467:301::-;2553:4;2570:36;2580:6;2588:9;2599:6;2570:9;:36::i;:::-;2617:121;2626:6;2634:12;:10;:12::i;:::-;2648:89;2686:6;2648:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2648:19:0;;;;;;:11;:19;;;;;;2668:12;:10;:12::i;:::-;-1:-1:-1;;;;;2648:33:0;;;;;;;;;;;;-1:-1:-1;2648:33:0;;;:89;;:37;:89;:::i;:::-;2617:8;:121::i;:::-;-1:-1:-1;2756:4:0;2467:301;;;;;:::o;11837:132::-;11910:5;;-1:-1:-1;;;;;11910:5:0;11896:10;:19;11888:44;;;;;-1:-1:-1;;;11888:44:0;;;;;;;;;;;;-1:-1:-1;;;11888:44:0;;;;;;;;;;;;;;;11941:15;:22;11837:132::o;12127:136::-;12201:5;;-1:-1:-1;;;;;12201:5:0;12187:10;:19;12179:44;;;;;-1:-1:-1;;;12179:44:0;;;;;;;;;;;;-1:-1:-1;;;12179:44:0;;;;;;;;;;;;;;;12232:18;:25;12127:136::o;11030:121::-;11092:5;;-1:-1:-1;;;;;11092:5:0;11078:10;:19;11070:44;;;;;-1:-1:-1;;;11070:44:0;;;;;;;;;;;;-1:-1:-1;;;11070:44:0;;;;;;;;;;;;;;;11123:14;:22;;-1:-1:-1;;11123:22:0;;;11030:121::o;5226:83::-;5292:9;;;;5226:83;:::o;8611:32::-;;;-1:-1:-1;;;8611:32:0;;;;;:::o;2774:207::-;2851:4;2868:83;2877:12;:10;:12::i;:::-;2891:7;2900:50;2939:10;2900:11;:25;2912:12;:10;:12::i;:::-;-1:-1:-1;;;;;2900:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;2900:25:0;;;:34;;;;;;;;;;;:50;:38;:50;:::i;11319:139::-;11379:5;;-1:-1:-1;;;;;11379:5:0;11365:10;:19;11357:44;;;;;-1:-1:-1;;;11357:44:0;;;;;;;;;;;;-1:-1:-1;;;11357:44:0;;;;;;;;;;;;;;;11410:42;;:10;;11430:21;11410:42;;;;;;;;;11430:21;11410:10;:42;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11410:42:0;11319:139::o;9585:77::-;9631:25;9637:10;9649:6;9631:5;:25::i;8478:31::-;;;;:::o;8648:40::-;;;-1:-1:-1;;;8648:40:0;;;;;:::o;8814:33::-;;;;:::o;1901:107::-;-1:-1:-1;;;;;1982:18:0;;1958:4;1982:18;;;;;;;;;;;1901:107;;;;:::o;9335:243::-;9418:14;;9481:15;;9449:28;;;-1:-1:-1;;;9449:28:0;;9466:10;9449:28;;;;;;9380:4;;-1:-1:-1;;;;;9418:14:0;;9481:15;9418:14;;9449:16;;:28;;;;;;;;;;;;;;;9418:14;9449:28;;;5:2:-1;;;;30:1;27;20:12;5:2;9449:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9449:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9449:28:0;:47;9445:126;;9518:4;9511:11;;;;;9445:126;9556:5;9549:12;;;;;9077:254;9176:14;;9234:15;;9207:23;;;-1:-1:-1;;;9207:23:0;;-1:-1:-1;;;;;9207:23:0;;;;;;;;;9138:4;;9176:14;;;;;9234:15;9176:14;;9207:16;;:23;;;;;;;;;;;;;;9176:14;9207:23;;;5:2:-1;;;;30:1;27;20:12;5:2;9207:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9207:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9207:23:0;:42;9203:121;;9271:4;9264:11;;;;;9203:121;9309:5;9302:12;;;;;5133:87;5205:7;5198:14;;;;;;;;-1:-1:-1;;5198:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5172:13;;5198:14;;5205:7;;5198:14;;5205:7;5198:14;;;;;;;;;;;;;;;;;;;;;;;;2987:258;3069:4;3086:129;3095:12;:10;:12::i;:::-;3109:7;3118:96;3157:15;3118:96;;;;;;;;;;;;;;;;;:11;:25;3130:12;:10;:12::i;:::-;-1:-1:-1;;;;;3118:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;3118:25:0;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;2014:155::-;2080:4;2097:42;2107:12;:10;:12::i;:::-;2121:9;2132:6;2097:9;:42::i;10731:290::-;10799:5;;-1:-1:-1;;;;;10799:5:0;10785:10;:19;10777:44;;;;;-1:-1:-1;;;10777:44:0;;;;;;;;;;;;-1:-1:-1;;;10777:44:0;;;;;;;;;;;;;;;10839:20;;-1:-1:-1;;;10839:20:0;;;;10838:21;10830:48;;;;;-1:-1:-1;;;10830:48:0;;;;;;;;;;;;-1:-1:-1;;;10830:48:0;;;;;;;;;;;;;;;10887:20;:27;;-1:-1:-1;;;;10887:27:0;-1:-1:-1;;;10887:27:0;;;10954:15;;10887:27;;10941:31;;10970:1;10941:12;:31::i;:::-;10923:49;;10981:34;10992:10;11004;10981;:34::i;11686:146::-;11766:14;;11798:28;;;-1:-1:-1;;;11798:28:0;;11815:10;11798:28;;;;;;11728:4;;-1:-1:-1;;;;;11766:14:0;;;;11798:16;;:28;;;;;;;;;;;;;;;11766:14;11798:28;;;5:2:-1;;;;30:1;27;20:12;5:2;11798:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11798:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11798:28:0;;-1:-1:-1;;11686:146:0;:::o;11158:154::-;11245:5;;-1:-1:-1;;;;;11245:5:0;11231:10;:19;11223:44;;;;;-1:-1:-1;;;11223:44:0;;;;;;;;;;;;-1:-1:-1;;;11223:44:0;;;;;;;;;;;;;;;11276:14;:30;;-1:-1:-1;;;;;;11276:30:0;-1:-1:-1;;;;;11276:30:0;;;;;;;;;;11158:154::o;11976:144::-;12058:5;;-1:-1:-1;;;;;12058:5:0;12044:10;:19;12036:44;;;;;-1:-1:-1;;;12036:44:0;;;;;;;;;;;;-1:-1:-1;;;12036:44:0;;;;;;;;;;;;;;;12089:17;:25;11976:144::o;2175:131::-;-1:-1:-1;;;;;2271:18:0;;;2247:4;2271:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2175:131::o;10277:389::-;10391:5;;-1:-1:-1;;;;;10391:5:0;10377:10;:19;10369:44;;;;;-1:-1:-1;;;10369:44:0;;;;;;;;;;;;-1:-1:-1;;;10369:44:0;;;;;;;;;;;;;;;10436:12;;10430:3;:18;10422:41;;;;;-1:-1:-1;;;10422:41:0;;;;;;;;;;;;-1:-1:-1;;;10422:41:0;;;;;;;;;;;;;;;10484:12;;-1:-1:-1;;;10484:12:0;;;;10483:13;10475:43;;;;;-1:-1:-1;;;10475:43:0;;;;;;;;;;;;-1:-1:-1;;;10475:43:0;;;;;;;;;;;;;;;10529:12;:19;;-1:-1:-1;;;;10529:19:0;-1:-1:-1;;;10529:19:0;;;10577:9;10619:33;10630:10;10577:9;10619:10;:33::i;8516:::-;;;;;;:::o;8429:44::-;;;;:::o;8586:20::-;;;-1:-1:-1;;;;;8586:20:0;;:::o;8554:27::-;;;;:::o;6078:123::-;6130:4;6154:39;6158:1;6161;6154:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6147:46;6078:123;-1:-1:-1;;;6078:123:0:o;5834:238::-;5886:4;5907:6;5903:47;;-1:-1:-1;5937:1:0;5930:8;;5903:47;5971:5;;;5975:1;5971;:5;:1;5995:5;;;;;:10;5987:56;;;;-1:-1:-1;;;5987:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4080:309;-1:-1:-1;;;;;4158:21:0;;4150:64;;;;;-1:-1:-1;;;4150:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4248:18:0;;:9;:18;;;;;;;;;;;:30;;4271:6;4248:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;4227:18:0;;:9;:18;;;;;;;;;;:51;4304:12;;:24;;4321:6;4304:24;:16;:24;:::i;:::-;4289:12;:39;4344:37;;;;;;;;-1:-1:-1;;;;;4344:37:0;;;4361:1;;4344:37;;;;;;;;;4080:309;;:::o;5340:169::-;5392:4;5418:5;;;5442:6;;;;5434:46;;;;;-1:-1:-1;;;5434:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1470:98;1550:10;1470:98;:::o;4401:335::-;-1:-1:-1;;;;;4492:19:0;;4484:68;;;;-1:-1:-1;;;4484:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4571:21:0;;4563:68;;;;-1:-1:-1;;;4563:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4644:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;4696:32;;;;;;;;;;;;;;;;;4401:335;;;:::o;3251:468::-;-1:-1:-1;;;;;3346:20:0;;3338:70;;;;-1:-1:-1;;;3338:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3427:23:0;;3419:71;;;;-1:-1:-1;;;3419:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3523;3545:6;3523:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3523:17:0;;:9;:17;;;;;;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;3503:17:0;;;:9;:17;;;;;;;;;;;:91;;;;3628:20;;;;;;;:32;;3653:6;3628:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;3605:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;3676:35;;;;;;;3605:20;;3676:35;;;;;;;;;;;;;3251:468;;;:::o;5648:180::-;5728:4;5761:12;5753:6;;;;5745:29;;;;-1:-1:-1;;;5745:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5745:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5794:5:0;;;5648:180::o;3727:345::-;-1:-1:-1;;;;;3800:21:0;;3792:67;;;;-1:-1:-1;;;3792:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3893:68;3916:6;3893:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3893:18:0;;:9;:18;;;;;;;;;;;;:68;;:22;:68;:::i;:::-;-1:-1:-1;;;;;3872:18:0;;:9;:18;;;;;;;;;;:89;3987:12;;:24;;4004:6;3987:24;:16;:24;:::i;:::-;3972:12;:39;4027:37;;;;;;;;4053:1;;-1:-1:-1;;;;;4027:37:0;;;;;;;;;;;;3727:345;;:::o;6207:246::-;6287:4;6386:12;6379:5;6371:28;;;;-1:-1:-1;;;6371:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;6371:28:0;;6410:6;6423:1;6419;:5;;;;;;;6207:246;-1:-1:-1;;;;;6207:246:0:o;5515:127::-;5567:4;5591:43;5595:1;5598;5591:43;;;;;;;;;;;;;;;;;:3;:43::i

Swarm Source

bzzr://984973d9998233246066da4c4c2bf083fa4275d2cc1369af13ded98bc8eb3106
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.