ETH Price: $3,496.75 (+2.96%)

Token

EXMR FDN. (EXMR)
 

Overview

Max Total Supply

18,172,091.060947336842997165 EXMR

Holders

1,211 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.1 EXMR

Value
$0.00
0x30f096ad3312a6be1d54cbde07cad4d512a4f4da
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

EXMR FDN is the official token of all the projects integrated with their foundation such as buoystocks.com that offers 'commercial bots', gcps.io, payment gateway, and very soon vipex.ai 'exchange services' as well as others that are in process.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
EXMR_FDN

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-10-28
*/

pragma solidity 0.5.12 <0.6.0;  

// -------------------------------------------------------------------------------------------
// EXMR FOUNDATION = EXMR FND.
// "Public Smart Contract"
//
// For details, please visit: https://exmrfoundation.org
// Staking Reward:            https://dapp.exmr.io
// We handle different projects, we are opening the doors to the entire developer community 
// so they can create Dapps and platforms based on our EXMR and get rewards for it...
// -------------------------------------------------------------------------------------------


contract ownerShip    
{
    
    address payable public owner;

    address payable public newOwner;

    bool public safeGuard ; 

    
    event OwnershipTransferredEv(address payable indexed previousOwner, address payable indexed newOwner);

    constructor() public 
    {
        
        owner = msg.sender;
        
        safeGuard = false;

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


    function transferOwnership(address payable _newOwner) public onlyOwner 
    {
        newOwner = _newOwner;
    }


    function acceptOwnership() public 
    {
        require(msg.sender == newOwner);
        emit OwnershipTransferredEv(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }

    function changesafeGuardStatus() onlyOwner public
    {
        if (safeGuard == false)
        {
            safeGuard = true;
        }
        else
        {
            safeGuard = false;    
        }
    }

}

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

        return c;
    }

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

        return c;
    }

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

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

        return c;
    }

   
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
       
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        

        return c;
    }

    
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

contract tokenERC20 is  ownerShip
{
    
    using SafeMath for uint256;
    bytes23 public name;
    bytes8 public symbol;
    uint8 public decimals; 
    uint256 public totalSupply;
    uint256 public totalMintAfterInitial;
    uint256 public maximumSupply;

    uint public burningRate = 500;    // 500=5%

    
    struct userBalance 
    {
        uint256 totalValue;
        uint256 freezeValue;
        uint256 freezeDate;
        uint256 meltValue;    
    }

    
    mapping (address => mapping (address => userBalance)) public tokens;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) public allowance;
    
   
    mapping (address => bool) public frozenAccount;
        
    
    event FrozenFunds(address target, bool frozen);
    
    
    event Transfer(address indexed from, address indexed to, uint256 value);
  
    
    event Burn(address indexed from, uint256 value);

     
    function calculatePercentage(uint256 PercentOf, uint256 percentTo ) internal pure returns (uint256) 
    {
        uint256 factor = 10000;
        require(percentTo <= factor);
        uint256 c = PercentOf.mul(percentTo).div(factor);
        return c;
    }   

    function setBurningRate(uint _burningRate) onlyOwner public returns(bool success)
    {
        burningRate = _burningRate;
        return true;
    }

   
    struct tokenTypeData
    {
        bytes23 tokenName;
        bytes8 tokenSymbol;
        uint decimalCount;
        uint minFreezingValue;
        uint rateFactor;      
        uint perDayFreezeRate;   
        bool freezingAllowed;   
    }
    
    mapping (address => tokenTypeData) public tokenTypeDatas;

    constructor () public {
    	decimals = 18; 
        totalSupply = 18000000000000000000000000;       
        maximumSupply = 75000000000000000000000000;
        balanceOf[msg.sender]=totalSupply;       
        tokens[address(this)][owner].totalValue = balanceOf[msg.sender];
        name = "EXMR FDN.";                           
        symbol = "EXMR";                       

       
        tokenTypeData memory temp;

        temp.tokenName=name;
        temp.tokenSymbol=symbol;
        temp.decimalCount=decimals;
        temp.minFreezingValue=100;
        temp.rateFactor=10000;     
        temp.perDayFreezeRate=1;   
        temp.freezingAllowed=true;  
        tokenTypeDatas[address(this)] = temp;
        emit Transfer(address(0), msg.sender, totalSupply);
    }
    
         
        function _transfer(address _from, address _to, uint _value) internal {
            require(!safeGuard,"safeGuard Active");
			require (_to != address(0),"to is address 0");                               
			require (balanceOf[_from] >= _value, "no balance in from");               
			require (balanceOf[_to].add(_value) >= balanceOf[_to],"overflow balance"); 
			require(!frozenAccount[_from],"from account frozen");                     
			require(!frozenAccount[_to],"to account frozen");                       
			balanceOf[_from] = balanceOf[_from].sub(_value);    
            tokens[address(this)][_from].totalValue = tokens[address(this)][_from].totalValue.sub(_value); 
			balanceOf[_to] = balanceOf[_to].add(_value);        
            tokens[address(this)][_to].totalValue = tokens[address(this)][_to].totalValue.add(_value);            
            uint burnValue;
            if(!(msg.sender == owner || msg.sender == address(this)))   
            {
                burnValue = calculatePercentage(_value,burningRate); 
                require(burnInternal(_to, burnValue),"burning failed");   
            }
			emit Transfer(_from, _to,_value);
            
        } 

        function burnInternal(address _burnFrom, uint _burnValue) internal returns(bool success)
        {   
            require(!safeGuard,"safeGuard Active");
            require(_burnFrom != address(0));
            require(balanceOf[_burnFrom] >= _burnValue);   
			require(!frozenAccount[_burnFrom],"to account frozen");                       
			balanceOf[_burnFrom] = balanceOf[_burnFrom].sub(_burnValue);    
            tokens[address(this)][_burnFrom].totalValue = tokens[address(this)][_burnFrom].totalValue.sub(_burnValue); 
			balanceOf[address(0)] = balanceOf[address(0)].add(_burnValue);        
            tokens[address(this)][address(0)].totalValue = tokens[address(this)][address(0)].totalValue.add(_burnValue);            
            totalSupply = totalSupply.sub(_burnValue);            
			emit Transfer(_burnFrom, address(0),_burnValue);                         
            return true;            
        }

		function mintInternal(uint256 mintedAmount)  internal returns (bool success) {                         
			totalSupply = totalSupply.add(mintedAmount);
            totalMintAfterInitial = totalMintAfterInitial.add(mintedAmount);
            return true;
		}

    function transfer(address _to, uint256 _value) public returns (bool success) {
         _transfer(msg.sender, _to, _value);
        return true;
    }
    
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        require(!safeGuard);
        require(_from != address(0),"transfer from adderss(0) is invalid");
        require(_value <= allowance[_from][msg.sender]);     // Check allowance
        allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value);
        _transfer(_from, _to, _value);
        return true;
    }
    
        
    function approve(address _spender, uint256 _value) public
        returns (bool success) {
        require(!safeGuard);
        allowance[msg.sender][_spender] = _value;
        return true;
    }
		
		function mintToken(address target, uint256 mintedAmount)  public onlyOwner returns (bool success) {
			balanceOf[target] = balanceOf[target].add(mintedAmount);
            tokens[address(this)][target].totalValue = tokens[address(this)][target].totalValue.add(mintedAmount); //parallel record for multi token addressing need                         
			totalSupply = totalSupply.add(mintedAmount);
            totalMintAfterInitial = totalMintAfterInitial.add(mintedAmount);
		 	emit Transfer(address(0), address(this), mintedAmount);
            return true;
		}
		
    function burn(uint256 _value) public onlyOwner returns (bool success) {
        burnInternal(msg.sender, _value);
        return true;
    }
    
        
    function burnFrom(address _from, uint256 _value) public onlyOwner returns (bool success) {
        burnInternal(_from, _value);
        return true;
    }
        
}


interface ERC20Necessary {
  function transfer(address to, uint256 value) external returns (bool);

  function approve(address spender, uint256 value) external returns (bool);

  function transferFrom(address from, address to, uint256 value) external returns (bool);

  function totalSupply() external view returns (uint256);

  function balanceOf(address who) external view returns (uint256);

  function allowance(address owner, address spender) external view returns (uint256);

  event Transfer(address indexed from, address indexed to, uint256 value);

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

contract EXMR_FDN is tokenERC20
{

    using SafeMath for uint256;
    
    	
        bool public whitelistingStatus = false;
        mapping (address => bool) public whitelisted;

        
        function changeWhitelistingStatus() onlyOwner public{
            if (whitelistingStatus == false){
			    whitelistingStatus = true;
                whitelisted[owner]= true;
            }
            else{
                whitelistingStatus = false;    
            }
		}
		
		
        function whitelistUser(address userAddress) onlyOwner public{
            require(whitelistingStatus == true);
            require(userAddress != address(0));
            whitelisted[userAddress] = true;
		}    
		


		function freezeAccount(address target, bool freeze) onlyOwner public {
				frozenAccount[target] = freeze;
			emit  FrozenFunds(target, freeze);
		}
        

        function manualWithdrawToken(uint256 _amount) onlyOwner public {
      		uint256 tokenAmount = _amount.mul(100);
            _transfer(address(this), msg.sender, tokenAmount);
        }
          
        
        function manualWithdrawEther()onlyOwner public{
			uint256 amount=address(this).balance;
			owner.transfer(amount);
		}
	    //Bounty
        function Bounty(address[] memory recipients,uint[] memory tokenAmount) public onlyOwner returns (bool) {
            uint reciversLength  = recipients.length;
            require(reciversLength <= 150);
            for(uint i = 0; i < reciversLength; i++)
            {
                  //This will loop through all the recipients and send them the specified tokens
                  _transfer(owner, recipients[i], tokenAmount[i]);
            }
            return true;
        }
    

    uint public meltHoldSeconds = 172800;  // 48 Hr. user can withdraw only after this period


    event tokenDepositEv(address token, address user, uint amount, uint balance);
    event tokenWithdrawEv(address token, address user, uint amount, uint balance);

    function setWithdrawWaitingPeriod(uint valueInSeconds) onlyOwner public returns (bool)
    {
        meltHoldSeconds = valueInSeconds;
        return true;
    }

    function newTokenTypeData(address token,bytes23 _tokenName, bytes8 _tokenSymbol, uint _decimalCount, uint _minFreezingValue, uint _rateFactor, uint _perDayFreezeRate) onlyOwner public returns (bool)
    {
        tokenTypeData memory temp;

        temp.tokenName=_tokenName;
        temp.tokenSymbol=_tokenSymbol;
        temp.decimalCount=_decimalCount;
        temp.minFreezingValue=_minFreezingValue;
        temp.rateFactor=_rateFactor;      
        temp.perDayFreezeRate=_perDayFreezeRate;   
        temp.freezingAllowed=true;  
        tokenTypeDatas[token] = temp;
        return true;
    }

    function freezingOnOffForTokenType(address token) onlyOwner public returns (bool)
    {
        if (tokenTypeDatas[token].freezingAllowed == false)
        {
            tokenTypeDatas[token].freezingAllowed = true;
        }
        else
        {
            tokenTypeDatas[token].freezingAllowed = false;    
        } 
        return true;     
    }

    function setMinFreezingValue(address token, uint _minFreezingValue) onlyOwner public returns (bool)
    {
        tokenTypeDatas[token].minFreezingValue = _minFreezingValue;
        return true;
    }

    function setRateFactor(address token, uint _rateFactor) onlyOwner public returns (bool)
    {
        tokenTypeDatas[token].rateFactor = _rateFactor;
        return true;
    }

    function setPerDayFreezeRate(address token, uint _perDayFreezeRate) onlyOwner public returns (bool)
    {
        tokenTypeDatas[token].perDayFreezeRate = _perDayFreezeRate;
        return true;
    }

   
    function tokenDeposit(address token, uint amount) public 
    {
        
        require(token!=address(0),"Address(0) found, can't continue");
        require(ERC20Necessary(token).transferFrom(msg.sender, address(this), amount),"ERC20 'transferFrom' call failed");
        tokens[token][msg.sender].totalValue = tokens[token][msg.sender].totalValue.add(amount);
        emit tokenDepositEv(token, msg.sender, amount, tokens[token][msg.sender].totalValue);
    }

    
    function tokenWithdraw(address token, uint amount) public
    {
        require(!safeGuard,"System Paused By Admin");
        require(token != address(this));
        require(token!=address(0),"Address(0) found, can't continue");
        if(now.sub(meltHoldSeconds) > tokens[token][msg.sender].freezeDate)
        {
           tokens[token][msg.sender].meltValue = 0; 
        }
        require(tokens[token][msg.sender].totalValue.sub(tokens[token][msg.sender].freezeValue.add(tokens[token][msg.sender].meltValue)) >= amount,"Required amount is not free to withdraw");       
        tokens[token][msg.sender].totalValue = tokens[token][msg.sender].totalValue.sub(amount);
        ERC20Necessary(token).transfer(msg.sender, amount);
        emit tokenWithdrawEv(token, msg.sender, amount, tokens[token][msg.sender].totalValue);
    }

    event releaseMyExmrEv(address token, uint amount);
    //releasing after minumum waiting period to withdraw EXMR 
    function releaseMyExmr(address token) public returns (bool)
    {
        require(!safeGuard,"System Paused By Admin");
        require(token!=address(0),"Address(0) found, can't continue");
        require(token == address(this),"Only pissible for EXMR ");
        require(now.sub(meltHoldSeconds) > tokens[token][msg.sender].freezeDate,"wait period is not over");
        uint amount = tokens[token][msg.sender].meltValue;
        balanceOf[msg.sender] = balanceOf[msg.sender].add(amount);
        tokens[token][msg.sender].totalValue = balanceOf[msg.sender].add(tokens[token][msg.sender].freezeValue );
        tokens[token][msg.sender].meltValue = 0; 
        emit releaseMyExmrEv(token, amount);
        return true;
    }

    event tokenBalanceFreezeEv(address token, uint amount, uint earning);


    function tokenBalanceFreeze(address token, uint amount)   public returns (bool)
    {
        require(!safeGuard,"System Paused By Admin");
        require(tokenTypeDatas[token].freezingAllowed,"token type not allowed to freeze");
        require(token!=address(0),"Address(0) found, can't continue");
        address callingUser = msg.sender;
        require(msg.sender != address(0),"Address(0) found, can't continue");

        require(amount <=  tokens[token][callingUser].totalValue.sub(tokens[token][callingUser].freezeValue.add(tokens[token][callingUser].meltValue)) && amount >= tokenTypeDatas[token].minFreezingValue, "less than required or less balance");
        
        uint freezeValue = tokens[token][callingUser].freezeValue;
        uint earnedValue;
        if (freezeValue > 0)
        {
            earnedValue = getEarning(token,callingUser,freezeValue);
            require(mintInternal(earnedValue),"minting failed");
            tokens[address(this)][callingUser].meltValue = tokens[address(this)][callingUser].meltValue.add(earnedValue);
        }

        tokens[token][callingUser].freezeValue = tokens[token][callingUser].freezeValue.add(amount);
        if (token==address(this))
        {
            balanceOf[callingUser] = balanceOf[callingUser].sub(amount);
        }
        tokens[token][callingUser].freezeDate = now;

        emit tokenBalanceFreezeEv(token,amount,earnedValue);
        return true;
    }

    function getEarning(address token,address user,uint amount) internal view returns(uint256)
    {
        uint effectiveAmount = calculatePercentage(amount,tokenTypeDatas[token].rateFactor);
        uint interestAmount = calculatePercentage(effectiveAmount,tokenTypeDatas[token].perDayFreezeRate);
        uint secondsPassed = (now - tokens[token][user].freezeDate);
        uint daysPassed=0;
        if (secondsPassed >= 86400)  // if less than one day earning will be zero
        {
           daysPassed = secondsPassed.div(86400); 
        }
        return daysPassed.mul(interestAmount);
    }


    event tokenBalanceMeltEv(address token, uint amount, uint earning);


    function tokenBalanceMelt(address token, uint amount)   public returns (bool)
    {
        require(!safeGuard,"System Paused By Admin");
        require(token!=address(0),"Address(0) found, can't continue");
        address callingUser = msg.sender;
        require(msg.sender != address(0),"Address(0) found, can't continue");
        require(amount <=  tokens[token][callingUser].freezeValue && amount > 0, "less than required or less balance");
        
        uint freezeValue = tokens[token][callingUser].freezeValue;
        uint earnedValue = getEarning(token,callingUser,freezeValue);
        require(mintInternal(earnedValue),"minting failed");
        tokens[address(this)][callingUser].meltValue = tokens[address(this)][callingUser].meltValue.add(earnedValue);       
        
        tokens[token][callingUser].freezeValue = tokens[token][callingUser].freezeValue.sub(amount);
        if (token==address(this))
        {
            tokens[token][callingUser].meltValue = tokens[token][callingUser].meltValue.add(amount);
        }

        tokens[token][callingUser].freezeDate = now;
        emit tokenBalanceMeltEv(token,amount,earnedValue);
        return true;
    }

    function viewMyReward(address token) public view returns(uint freezedValue, uint rewardValue)
    {
        address callingUser = msg.sender;
        uint freezeValue = tokens[token][callingUser].freezeValue;
        uint earnedValue = getEarning(token,callingUser,freezeValue);
        return (freezeValue,earnedValue);
    }

}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"bool","name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address payable","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address payable","name":"newOwner","type":"address"}],"name":"OwnershipTransferredEv","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"releaseMyExmrEv","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"earning","type":"uint256"}],"name":"tokenBalanceFreezeEv","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"earning","type":"uint256"}],"name":"tokenBalanceMeltEv","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"}],"name":"tokenDepositEv","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"}],"name":"tokenWithdrawEv","type":"event"},{"constant":false,"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"tokenAmount","type":"uint256[]"}],"name":"Bounty","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burningRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"changeWhitelistingStatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"changesafeGuardStatus","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"target","type":"address"},{"internalType":"bool","name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"freezingOnOffForTokenType","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"frozenAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"manualWithdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"manualWithdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maximumSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"meltHoldSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"mintedAmount","type":"uint256"}],"name":"mintToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"bytes23","name":"","type":"bytes23"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes23","name":"_tokenName","type":"bytes23"},{"internalType":"bytes8","name":"_tokenSymbol","type":"bytes8"},{"internalType":"uint256","name":"_decimalCount","type":"uint256"},{"internalType":"uint256","name":"_minFreezingValue","type":"uint256"},{"internalType":"uint256","name":"_rateFactor","type":"uint256"},{"internalType":"uint256","name":"_perDayFreezeRate","type":"uint256"}],"name":"newTokenTypeData","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"releaseMyExmr","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"safeGuard","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_burningRate","type":"uint256"}],"name":"setBurningRate","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"_minFreezingValue","type":"uint256"}],"name":"setMinFreezingValue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"_perDayFreezeRate","type":"uint256"}],"name":"setPerDayFreezeRate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"_rateFactor","type":"uint256"}],"name":"setRateFactor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"valueInSeconds","type":"uint256"}],"name":"setWithdrawWaitingPeriod","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"bytes8","name":"","type":"bytes8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokenBalanceFreeze","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokenBalanceMelt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokenDeposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenTypeDatas","outputs":[{"internalType":"bytes23","name":"tokenName","type":"bytes23"},{"internalType":"bytes8","name":"tokenSymbol","type":"bytes8"},{"internalType":"uint256","name":"decimalCount","type":"uint256"},{"internalType":"uint256","name":"minFreezingValue","type":"uint256"},{"internalType":"uint256","name":"rateFactor","type":"uint256"},{"internalType":"uint256","name":"perDayFreezeRate","type":"uint256"},{"internalType":"bool","name":"freezingAllowed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokenWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"tokens","outputs":[{"internalType":"uint256","name":"totalValue","type":"uint256"},{"internalType":"uint256","name":"freezeValue","type":"uint256"},{"internalType":"uint256","name":"freezeDate","type":"uint256"},{"internalType":"uint256","name":"meltValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalMintAfterInitial","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":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"viewMyReward","outputs":[{"internalType":"uint256","name":"freezedValue","type":"uint256"},{"internalType":"uint256","name":"rewardValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"whitelistUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whitelistingStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]

608060409081526101f4600655600c805460ff191690556202a300600e5560008054336001600160a01b0319909116811782556001805460ff60a01b19169055600280546001600160f81b03167f12000000000000000000000000000000000000000000000000000000000000001781556a0ee3a5f48a68b55200000060038190556a3e09de2596099e2b000000600555918352600860209081528484208390553084526007815284842084546001600160a01b031685529052929091205580546001600160b81b0319167645584d522046444e2e000000000000000000000000000017600160b81b600160f81b0319167e45584d5200000000000000000000000000000000000000000000000000000017905561011b610266565b60028054604881811b6001600160481b03191684527701000000000000000000000000000000000000000000000080830460c090811b6001600160c01b03191660208088019182527f010000000000000000000000000000000000000000000000000000000000000090950460ff166040808901918252606460608a0190815261271060808b01908152600160a08c01818152878d01828152306000908152600b8d528681208f5181549a516001600160b81b0319909b169d1c9c909c17600160b81b600160f81b0319169890991c9099029690961789559351938801939093555197860197909755516003808601919091559051600485015591516005909301805460ff1916931515939093179092555483519081529251339391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a3506102a2565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b612da2806102b16000396000f3fe608060405234801561001057600080fd5b506004361061028a5760003560e01c80638da5cb5b1161015c578063dd62ed3e116100ce578063ee3f39c211610087578063ee3f39c214610936578063eee3ea4714610962578063efea921f1461097f578063f04fd98c146109ab578063f2fde38b146109d7578063ff4496c0146109fd5761028a565b8063dd62ed3e14610863578063e56ccc3b14610891578063e64c3e92146108ae578063e724529c146108b6578063eaf5e7ce146108e4578063edd9a46b1461090a5761028a565b8063be50af2e11610120578063be50af2e146107f1578063c01830a11461081d578063c3e3f8fd14610825578063d085f6ea1461082d578063d4ee1d9014610835578063d936547e1461083d5761028a565b80638da5cb5b1461074e57806395d89b4114610772578063a9059cbb14610797578063b414d4b6146107c3578063bd694af2146107e95761028a565b8063508493bc1161020057806379279fd1116101b957806379279fd1146106b857806379ba5097146106c057806379c65068146106c857806379cc6790146106f45780637c022bb4146107205780637ec69c50146107465761028a565b8063508493bc1461049257806357877d99146104e65780635954c8c5146105465780635d22a3521461054e5780635ee387d11461056b57806370a08231146106925761028a565b806323784ea71161025257806323784ea71461035757806323b872dd146103cd578063313ce5671461040357806342966c6814610421578063443f41d51461043e5780634a4c560d1461046c5761028a565b80630480e58b1461028f57806306fdde03146102a9578063095ea7b3146102d05780630f2e92d31461031057806318160ddd1461034f575b600080fd5b610297610a29565b60408051918252519081900360200190f35b6102b1610a2f565b6040805168ffffffffffffffffff199092168252519081900360200190f35b6102fc600480360360408110156102e657600080fd5b506001600160a01b038135169060200135610a38565b604080519115158252519081900360200190f35b6103366004803603602081101561032657600080fd5b50356001600160a01b0316610a82565b6040805192835260208301919091528051918290030190f35b610297610ac5565b61037d6004803603602081101561036d57600080fd5b50356001600160a01b0316610acb565b6040805168ffffffffffffffffff1990981688526001600160c01b03199096166020880152868601949094526060860192909252608085015260a0840152151560c0830152519081900360e00190f35b6102fc600480360360608110156103e357600080fd5b506001600160a01b03813581169160208101359091169060400135610b0e565b61040b610c0a565b6040805160ff9092168252519081900360200190f35b6102fc6004803603602081101561043757600080fd5b5035610c1a565b61046a6004803603604081101561045457600080fd5b506001600160a01b038135169060200135610c45565b005b61046a6004803603602081101561048257600080fd5b50356001600160a01b0316610e07565b6104c0600480360360408110156104a857600080fd5b506001600160a01b0381358116916020013516610e69565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6102fc600480360360e08110156104fc57600080fd5b506001600160a01b038135169068ffffffffffffffffff19602082013516906001600160c01b03196040820135169060608101359060808101359060a08101359060c00135610e9b565b61046a610f8e565b61046a6004803603602081101561056457600080fd5b5035610fe5565b6102fc6004803603604081101561058157600080fd5b81019060208101813564010000000081111561059c57600080fd5b8201836020820111156105ae57600080fd5b803590602001918460208302840111640100000000831117156105d057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561062057600080fd5b82018360208201111561063257600080fd5b8035906020019184602083028401116401000000008311171561065457600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061101c945050505050565b610297600480360360208110156106a857600080fd5b50356001600160a01b03166110a2565b6102fc6110b4565b61046a6110c4565b6102fc600480360360408110156106de57600080fd5b506001600160a01b03813516906020013561113f565b6102fc6004803603604081101561070a57600080fd5b506001600160a01b038135169060200135611253565b6102fc6004803603602081101561073657600080fd5b50356001600160a01b0316611275565b61046a611307565b61075661136d565b604080516001600160a01b039092168252519081900360200190f35b61077a61137c565b604080516001600160c01b03199092168252519081900360200190f35b6102fc600480360360408110156107ad57600080fd5b506001600160a01b03813516906020013561138c565b6102fc600480360360208110156107d957600080fd5b50356001600160a01b0316611399565b6102fc6113ae565b61046a6004803603604081101561080757600080fd5b506001600160a01b0381351690602001356113b7565b6102976116b9565b6102976116bf565b61046a6116c5565b610756611714565b6102fc6004803603602081101561085357600080fd5b50356001600160a01b0316611723565b6102976004803603604081101561087957600080fd5b506001600160a01b0381358116916020013516611738565b6102fc600480360360208110156108a757600080fd5b5035611755565b610297611776565b61046a600480360360408110156108cc57600080fd5b506001600160a01b038135169060200135151561177c565b6102fc600480360360208110156108fa57600080fd5b50356001600160a01b03166117f7565b6102fc6004803603604081101561092057600080fd5b506001600160a01b038135169060200135611a7c565b6102fc6004803603604081101561094c57600080fd5b506001600160a01b038135169060200135611ab8565b6102fc6004803603602081101561097857600080fd5b5035611af4565b6102fc6004803603604081101561099557600080fd5b506001600160a01b038135169060200135611b15565b6102fc600480360360408110156109c157600080fd5b506001600160a01b038135169060200135611e8c565b61046a600480360360208110156109ed57600080fd5b50356001600160a01b0316611ec8565b6102fc60048036036040811015610a1357600080fd5b506001600160a01b038135169060200135611f01565b60055481565b60025460481b81565b600154600090600160a01b900460ff1615610a5257600080fd5b503360009081526009602090815260408083206001600160a01b0386168452909152902081905560015b92915050565b6001600160a01b038116600090815260076020908152604080832033808552925282206001015482919082610ab886848461233d565b9194509092505050915091565b60035481565b600b60205260009081526040902080546001820154600283015460038401546004850154600590950154604885901b95600160b81b90950460c01b949060ff1687565b600154600090600160a01b900460ff1615610b2857600080fd5b6001600160a01b038416610b6d5760405162461bcd60e51b8152600401808060200182810382526023815260200180612cc16023913960400191505060405180910390fd5b6001600160a01b0384166000908152600960209081526040808320338452909152902054821115610b9d57600080fd5b6001600160a01b0384166000908152600960209081526040808320338452909152902054610bd1908363ffffffff61240116565b6001600160a01b0385166000908152600960209081526040808320338452909152902055610c0084848461245e565b5060019392505050565b600254600160f81b900460ff1681565b600080546001600160a01b03163314610c3257600080fd5b610c3c338361286c565b50600192915050565b6001600160a01b038216610c8e576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b604080516323b872dd60e01b81523360048201523060248201526044810183905290516001600160a01b038416916323b872dd9160648083019260209291908290030181600087803b158015610ce357600080fd5b505af1158015610cf7573d6000803e3d6000fd5b505050506040513d6020811015610d0d57600080fd5b5051610d60576040805162461bcd60e51b815260206004820181905260248201527f455243323020277472616e7366657246726f6d272063616c6c206661696c6564604482015290519081900360640190fd5b6001600160a01b0382166000908152600760209081526040808320338452909152902054610d94908263ffffffff612aec16565b6001600160a01b03831660008181526007602090815260408083203380855290835292819020859055805193845290830191909152818101849052606082019290925290517fe57520e183743e5e5fb8e2304562449ccfe980ba4144b066aff77bcd98b678c19181900360800190a15050565b6000546001600160a01b03163314610e1e57600080fd5b600c5460ff161515600114610e3257600080fd5b6001600160a01b038116610e4557600080fd5b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b600760209081526000928352604080842090915290825290208054600182015460028301546003909301549192909184565b600080546001600160a01b03163314610eb357600080fd5b610ebb612c84565b68ffffffffffffffffff199097168752506001600160c01b031990941660208087019182526040808801958652606088019485526080880193845260a08801968752600160c0808a018281526001600160a01b03909b166000908152600b9094529190922097518854935190911c600160b81b0267ffffffffffffffff60b81b1960489290921c6001600160b81b03199094169390931716919091178655925185840155905160028501555160038401559051600483015591516005909101805491151560ff1990921691909117905590565b6000546001600160a01b03163314610fa557600080fd5b600080546040513031926001600160a01b03909216916108fc841502918491818181858888f19350505050158015610fe1573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610ffc57600080fd5b600061100f82606463ffffffff612b4d16565b9050610fe130338361245e565b600080546001600160a01b0316331461103457600080fd5b8251609681111561104457600080fd5b60005b8181101561109757600054855161108f916001600160a01b03169087908490811061106e57fe5b602002602001015186848151811061108257fe5b602002602001015161245e565b600101611047565b506001949350505050565b60086020526000908152604090205481565b600154600160a01b900460ff1681565b6001546001600160a01b031633146110db57600080fd5b600154600080546040516001600160a01b0393841693909116917f7b9f4dbf19021732cc1236215fb8368569be3a9c57a729f6c306471afc35505191a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600080546001600160a01b0316331461115757600080fd5b6001600160a01b038316600090815260086020526040902054611180908363ffffffff612aec16565b6001600160a01b038416600081815260086020908152604080832094909455308252600781528382209282529190915220546111c2908363ffffffff612aec16565b3060009081526007602090815260408083206001600160a01b03881684529091529020556003546111f9908363ffffffff612aec16565b60035560045461120f908363ffffffff612aec16565b60045560408051838152905130916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b600080546001600160a01b0316331461126b57600080fd5b610c00838361286c565b600080546001600160a01b0316331461128d57600080fd5b6001600160a01b0382166000908152600b602052604090206005015460ff166112db576001600160a01b0382166000908152600b60205260409020600501805460ff191660011790556112ff565b6001600160a01b0382166000908152600b60205260409020600501805460ff191690555b506001919050565b6000546001600160a01b0316331461131e57600080fd5b600c5460ff1661136057600c8054600160ff199182168117909255600080546001600160a01b03168152600d602052604090208054909116909117905561136b565b600c805460ff191690555b565b6000546001600160a01b031681565b600254600160b81b900460c01b81565b6000610c3c33848461245e565b600a6020526000908152604090205460ff1681565b600c5460ff1681565b600154600160a01b900460ff161561140f576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821630141561142557600080fd5b6001600160a01b03821661146e576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b6001600160a01b0382166000908152600760209081526040808320338452909152902060020154600e546114a990429063ffffffff61240116565b11156114d7576001600160a01b03821660009081526007602090815260408083203384529091528120600301555b6001600160a01b03821660009081526007602090815260408083203384529091529020600381015460019091015482916115449161151491612aec565b6001600160a01b03851660009081526007602090815260408083203384529091529020549063ffffffff61240116565b10156115815760405162461bcd60e51b8152600401808060200182810382526027815260200180612ce46027913960400191505060405180910390fd5b6001600160a01b03821660009081526007602090815260408083203384529091529020546115b5908263ffffffff61240116565b6001600160a01b03831660008181526007602090815260408083203380855290835281842095909555805163a9059cbb60e01b815260048101959095526024850186905251929363a9059cbb9360448083019491928390030190829087803b15801561162057600080fd5b505af1158015611634573d6000803e3d6000fd5b505050506040513d602081101561164a57600080fd5b50506001600160a01b03821660008181526007602090815260408083203380855290835292819020548151948552918401929092528282018490526060830152517f544b39701afd1119e68c6e95a6107ec843364e9fbaae5e99637a368cc82adfc89181900360800190a15050565b60045481565b600e5481565b6000546001600160a01b031633146116dc57600080fd5b600154600160a01b900460ff16611705576001805460ff60a01b1916600160a01b17905561136b565b6001805460ff60a01b19169055565b6001546001600160a01b031681565b600d6020526000908152604090205460ff1681565b600960209081526000928352604080842090915290825290205481565b600080546001600160a01b0316331461176d57600080fd5b50600e55600190565b60065481565b6000546001600160a01b0316331461179357600080fd5b6001600160a01b0382166000818152600a6020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b600154600090600160a01b900460ff1615611852576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821661189b576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b6001600160a01b03821630146118f8576040805162461bcd60e51b815260206004820152601760248201527f4f6e6c79207069737369626c6520666f722045584d5220000000000000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600760209081526040808320338452909152902060020154600e5461193390429063ffffffff61240116565b11611985576040805162461bcd60e51b815260206004820152601760248201527f7761697420706572696f64206973206e6f74206f766572000000000000000000604482015290519081900360640190fd5b6001600160a01b03821660009081526007602090815260408083203384528252808320600301546008909252909120546119c5908263ffffffff612aec16565b3360008181526008602081815260408084208690556001600160a01b03891684526007825280842094845293815292909120600101549152611a0d919063ffffffff612aec16565b6001600160a01b038416600081815260076020908152604080832033845282528083209485556003909401919091558251918252810183905281517fb9a4f2c33f701d04d6dbac8469f1b4062bed33d76f1bf203fb2d39ea77703a77929181900390910190a150600192915050565b600080546001600160a01b03163314611a9457600080fd5b506001600160a01b03919091166000908152600b6020526040902060040155600190565b600080546001600160a01b03163314611ad057600080fd5b506001600160a01b03919091166000908152600b6020526040902060020155600190565b600080546001600160a01b03163314611b0c57600080fd5b50600655600190565b600154600090600160a01b900460ff1615611b70576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b038316611bb9576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b3380611bfa576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b6001600160a01b038085166000908152600760209081526040808320938516835292905220600101548311801590611c325750600083115b611c6d5760405162461bcd60e51b8152600401808060200182810382526022815260200180612d4c6022913960400191505060405180910390fd5b6001600160a01b03808516600090815260076020908152604080832093851683529290529081206001015490611ca486848461233d565b9050611caf81612ba6565b611cf1576040805162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d1a5b99c819985a5b195960921b604482015290519081900360640190fd5b3060009081526007602090815260408083206001600160a01b0387168452909152902060030154611d28908263ffffffff612aec16565b3060009081526007602081815260408084206001600160a01b0389811680875291845282862060030196909655948b168452918152818320938352929092522060010154611d7c908663ffffffff61240116565b6001600160a01b03808816600081815260076020908152604080832094891683529390529190912060010191909155301415611e15576001600160a01b03808716600090815260076020908152604080832093871683529290522060030154611deb908663ffffffff612aec16565b6001600160a01b038088166000908152600760209081526040808320938816835292905220600301555b6001600160a01b038087166000818152600760209081526040808320948816835293815290839020426002909101558251918252810187905280820183905290517f05ed4f81bc443fc929332d09ad813fcbd31f52653b5e27569abd927f851836d39181900360600190a150600195945050505050565b600080546001600160a01b03163314611ea457600080fd5b506001600160a01b03919091166000908152600b6020526040902060030155600190565b6000546001600160a01b03163314611edf57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600154600090600160a01b900460ff1615611f5c576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b0383166000908152600b602052604090206005015460ff16611fcc576040805162461bcd60e51b815260206004820181905260248201527f746f6b656e2074797065206e6f7420616c6c6f77656420746f20667265657a65604482015290519081900360640190fd5b6001600160a01b038316612015576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b3380612056576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b6001600160a01b03848116600090815260076020908152604080832093851683529290522060038101546001909101546120c6916120949190612aec565b6001600160a01b038087166000908152600760209081526040808320938716835292905220549063ffffffff61240116565b83111580156120f057506001600160a01b0384166000908152600b60205260409020600201548310155b61212b5760405162461bcd60e51b8152600401808060200182810382526022815260200180612d4c6022913960400191505060405180910390fd5b6001600160a01b0380851660009081526007602090815260408083209385168352929052908120600101549081156122145761216886848461233d565b905061217381612ba6565b6121b5576040805162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d1a5b99c819985a5b195960921b604482015290519081900360640190fd5b3060009081526007602090815260408083206001600160a01b03871684529091529020600301546121ec908263ffffffff612aec16565b3060009081526007602090815260408083206001600160a01b03881684529091529020600301555b6001600160a01b0380871660009081526007602090815260408083209387168352929052206001015461224d908663ffffffff612aec16565b6001600160a01b038088166000818152600760209081526040808320948916835293905291909120600101919091553014156122c6576001600160a01b0383166000908152600860205260409020546122ac908663ffffffff61240116565b6001600160a01b0384166000908152600860205260409020555b6001600160a01b038087166000818152600760209081526040808320948816835293815290839020426002909101558251918252810187905280820183905290517f72cb02c58250b8f066d50b43c9a45a6d81b4ac7435f56ae25ed9f7e0e2f8ecfc9181900360600190a150600195945050505050565b6001600160a01b0383166000908152600b60205260408120600301548190612366908490612bdd565b6001600160a01b0386166000908152600b602052604081206004015491925090612391908390612bdd565b6001600160a01b038088166000908152600760209081526040808320938a168352929052908120600201549192504291909103906201518082106123e5576123e2826201518063ffffffff612c1a16565b90505b6123f5818463ffffffff612b4d16565b98975050505050505050565b600082821115612458576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600154600160a01b900460ff16156124b0576040805162461bcd60e51b815260206004820152601060248201526f7361666547756172642041637469766560801b604482015290519081900360640190fd5b6001600160a01b0382166124fd576040805162461bcd60e51b815260206004820152600f60248201526e0746f2069732061646472657373203608c1b604482015290519081900360640190fd5b6001600160a01b03831660009081526008602052604090205481111561255f576040805162461bcd60e51b81526020600482015260126024820152716e6f2062616c616e636520696e2066726f6d60701b604482015290519081900360640190fd5b6001600160a01b038216600090815260086020526040902054612588818363ffffffff612aec16565b10156125ce576040805162461bcd60e51b815260206004820152601060248201526f6f766572666c6f772062616c616e636560801b604482015290519081900360640190fd5b6001600160a01b0383166000908152600a602052604090205460ff1615612632576040805162461bcd60e51b8152602060048201526013602482015272333937b69030b1b1b7bab73a10333937bd32b760691b604482015290519081900360640190fd5b6001600160a01b0382166000908152600a602052604090205460ff1615612694576040805162461bcd60e51b81526020600482015260116024820152703a379030b1b1b7bab73a10333937bd32b760791b604482015290519081900360640190fd5b6001600160a01b0383166000908152600860205260409020546126bd908263ffffffff61240116565b6001600160a01b038416600081815260086020908152604080832094909455308252600781528382209282529190915220546126ff908263ffffffff61240116565b3060009081526007602090815260408083206001600160a01b038881168552908352818420949094559285168252600890522054612743908263ffffffff612aec16565b6001600160a01b03831660008181526008602090815260408083209490945530825260078152838220928252919091522054612785908263ffffffff612aec16565b3060009081526007602090815260408083206001600160a01b038781168552925282209290925580549091163314806127bd57503330145b61281b576127cd82600654612bdd565b90506127d9838261286c565b61281b576040805162461bcd60e51b815260206004820152600e60248201526d189d5c9b9a5b99c819985a5b195960921b604482015290519081900360640190fd5b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b600154600090600160a01b900460ff16156128c1576040805162461bcd60e51b815260206004820152601060248201526f7361666547756172642041637469766560801b604482015290519081900360640190fd5b6001600160a01b0383166128d457600080fd5b6001600160a01b0383166000908152600860205260409020548211156128f957600080fd5b6001600160a01b0383166000908152600a602052604090205460ff161561295b576040805162461bcd60e51b81526020600482015260116024820152703a379030b1b1b7bab73a10333937bd32b760791b604482015290519081900360640190fd5b6001600160a01b038316600090815260086020526040902054612984908363ffffffff61240116565b6001600160a01b038416600081815260086020908152604080832094909455308252600781528382209282529190915220546129c6908363ffffffff61240116565b3060009081526007602090815260408083206001600160a01b038816845282528220929092558052600890527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c754612a24908363ffffffff612aec16565b7f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c755306000908152600760209081526040808320838052909152902054612a71908363ffffffff612aec16565b306000908152600760209081526040808320838052909152902055600354612a9f908363ffffffff61240116565b6003556040805183815290516000916001600160a01b038616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b600082820183811015612b46576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082612b5c57506000610a7c565b82820282848281612b6957fe5b0414612b465760405162461bcd60e51b8152600401808060200182810382526021815260200180612d2b6021913960400191505060405180910390fd5b600354600090612bbc908363ffffffff612aec16565b600355600454612bd2908363ffffffff612aec16565b600455506001919050565b600061271080831115612bef57600080fd5b6000612c1182612c05878763ffffffff612b4d16565b9063ffffffff612c1a16565b95945050505050565b6000808211612c70576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481612c7b57fe5b04949350505050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091529056fe7472616e736665722066726f6d206164646572737328302920697320696e76616c6964526571756972656420616d6f756e74206973206e6f74206672656520746f2077697468647261774164647265737328302920666f756e642c2063616e277420636f6e74696e7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776c657373207468616e207265717569726564206f72206c6573732062616c616e6365a265627a7a723158203a8fa2f8c6d095c09255a7b004f1edadd44c596c8dfc4f2b1a3792c02d1db46e64736f6c634300050c0032

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061028a5760003560e01c80638da5cb5b1161015c578063dd62ed3e116100ce578063ee3f39c211610087578063ee3f39c214610936578063eee3ea4714610962578063efea921f1461097f578063f04fd98c146109ab578063f2fde38b146109d7578063ff4496c0146109fd5761028a565b8063dd62ed3e14610863578063e56ccc3b14610891578063e64c3e92146108ae578063e724529c146108b6578063eaf5e7ce146108e4578063edd9a46b1461090a5761028a565b8063be50af2e11610120578063be50af2e146107f1578063c01830a11461081d578063c3e3f8fd14610825578063d085f6ea1461082d578063d4ee1d9014610835578063d936547e1461083d5761028a565b80638da5cb5b1461074e57806395d89b4114610772578063a9059cbb14610797578063b414d4b6146107c3578063bd694af2146107e95761028a565b8063508493bc1161020057806379279fd1116101b957806379279fd1146106b857806379ba5097146106c057806379c65068146106c857806379cc6790146106f45780637c022bb4146107205780637ec69c50146107465761028a565b8063508493bc1461049257806357877d99146104e65780635954c8c5146105465780635d22a3521461054e5780635ee387d11461056b57806370a08231146106925761028a565b806323784ea71161025257806323784ea71461035757806323b872dd146103cd578063313ce5671461040357806342966c6814610421578063443f41d51461043e5780634a4c560d1461046c5761028a565b80630480e58b1461028f57806306fdde03146102a9578063095ea7b3146102d05780630f2e92d31461031057806318160ddd1461034f575b600080fd5b610297610a29565b60408051918252519081900360200190f35b6102b1610a2f565b6040805168ffffffffffffffffff199092168252519081900360200190f35b6102fc600480360360408110156102e657600080fd5b506001600160a01b038135169060200135610a38565b604080519115158252519081900360200190f35b6103366004803603602081101561032657600080fd5b50356001600160a01b0316610a82565b6040805192835260208301919091528051918290030190f35b610297610ac5565b61037d6004803603602081101561036d57600080fd5b50356001600160a01b0316610acb565b6040805168ffffffffffffffffff1990981688526001600160c01b03199096166020880152868601949094526060860192909252608085015260a0840152151560c0830152519081900360e00190f35b6102fc600480360360608110156103e357600080fd5b506001600160a01b03813581169160208101359091169060400135610b0e565b61040b610c0a565b6040805160ff9092168252519081900360200190f35b6102fc6004803603602081101561043757600080fd5b5035610c1a565b61046a6004803603604081101561045457600080fd5b506001600160a01b038135169060200135610c45565b005b61046a6004803603602081101561048257600080fd5b50356001600160a01b0316610e07565b6104c0600480360360408110156104a857600080fd5b506001600160a01b0381358116916020013516610e69565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6102fc600480360360e08110156104fc57600080fd5b506001600160a01b038135169068ffffffffffffffffff19602082013516906001600160c01b03196040820135169060608101359060808101359060a08101359060c00135610e9b565b61046a610f8e565b61046a6004803603602081101561056457600080fd5b5035610fe5565b6102fc6004803603604081101561058157600080fd5b81019060208101813564010000000081111561059c57600080fd5b8201836020820111156105ae57600080fd5b803590602001918460208302840111640100000000831117156105d057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561062057600080fd5b82018360208201111561063257600080fd5b8035906020019184602083028401116401000000008311171561065457600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061101c945050505050565b610297600480360360208110156106a857600080fd5b50356001600160a01b03166110a2565b6102fc6110b4565b61046a6110c4565b6102fc600480360360408110156106de57600080fd5b506001600160a01b03813516906020013561113f565b6102fc6004803603604081101561070a57600080fd5b506001600160a01b038135169060200135611253565b6102fc6004803603602081101561073657600080fd5b50356001600160a01b0316611275565b61046a611307565b61075661136d565b604080516001600160a01b039092168252519081900360200190f35b61077a61137c565b604080516001600160c01b03199092168252519081900360200190f35b6102fc600480360360408110156107ad57600080fd5b506001600160a01b03813516906020013561138c565b6102fc600480360360208110156107d957600080fd5b50356001600160a01b0316611399565b6102fc6113ae565b61046a6004803603604081101561080757600080fd5b506001600160a01b0381351690602001356113b7565b6102976116b9565b6102976116bf565b61046a6116c5565b610756611714565b6102fc6004803603602081101561085357600080fd5b50356001600160a01b0316611723565b6102976004803603604081101561087957600080fd5b506001600160a01b0381358116916020013516611738565b6102fc600480360360208110156108a757600080fd5b5035611755565b610297611776565b61046a600480360360408110156108cc57600080fd5b506001600160a01b038135169060200135151561177c565b6102fc600480360360208110156108fa57600080fd5b50356001600160a01b03166117f7565b6102fc6004803603604081101561092057600080fd5b506001600160a01b038135169060200135611a7c565b6102fc6004803603604081101561094c57600080fd5b506001600160a01b038135169060200135611ab8565b6102fc6004803603602081101561097857600080fd5b5035611af4565b6102fc6004803603604081101561099557600080fd5b506001600160a01b038135169060200135611b15565b6102fc600480360360408110156109c157600080fd5b506001600160a01b038135169060200135611e8c565b61046a600480360360208110156109ed57600080fd5b50356001600160a01b0316611ec8565b6102fc60048036036040811015610a1357600080fd5b506001600160a01b038135169060200135611f01565b60055481565b60025460481b81565b600154600090600160a01b900460ff1615610a5257600080fd5b503360009081526009602090815260408083206001600160a01b0386168452909152902081905560015b92915050565b6001600160a01b038116600090815260076020908152604080832033808552925282206001015482919082610ab886848461233d565b9194509092505050915091565b60035481565b600b60205260009081526040902080546001820154600283015460038401546004850154600590950154604885901b95600160b81b90950460c01b949060ff1687565b600154600090600160a01b900460ff1615610b2857600080fd5b6001600160a01b038416610b6d5760405162461bcd60e51b8152600401808060200182810382526023815260200180612cc16023913960400191505060405180910390fd5b6001600160a01b0384166000908152600960209081526040808320338452909152902054821115610b9d57600080fd5b6001600160a01b0384166000908152600960209081526040808320338452909152902054610bd1908363ffffffff61240116565b6001600160a01b0385166000908152600960209081526040808320338452909152902055610c0084848461245e565b5060019392505050565b600254600160f81b900460ff1681565b600080546001600160a01b03163314610c3257600080fd5b610c3c338361286c565b50600192915050565b6001600160a01b038216610c8e576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b604080516323b872dd60e01b81523360048201523060248201526044810183905290516001600160a01b038416916323b872dd9160648083019260209291908290030181600087803b158015610ce357600080fd5b505af1158015610cf7573d6000803e3d6000fd5b505050506040513d6020811015610d0d57600080fd5b5051610d60576040805162461bcd60e51b815260206004820181905260248201527f455243323020277472616e7366657246726f6d272063616c6c206661696c6564604482015290519081900360640190fd5b6001600160a01b0382166000908152600760209081526040808320338452909152902054610d94908263ffffffff612aec16565b6001600160a01b03831660008181526007602090815260408083203380855290835292819020859055805193845290830191909152818101849052606082019290925290517fe57520e183743e5e5fb8e2304562449ccfe980ba4144b066aff77bcd98b678c19181900360800190a15050565b6000546001600160a01b03163314610e1e57600080fd5b600c5460ff161515600114610e3257600080fd5b6001600160a01b038116610e4557600080fd5b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b600760209081526000928352604080842090915290825290208054600182015460028301546003909301549192909184565b600080546001600160a01b03163314610eb357600080fd5b610ebb612c84565b68ffffffffffffffffff199097168752506001600160c01b031990941660208087019182526040808801958652606088019485526080880193845260a08801968752600160c0808a018281526001600160a01b03909b166000908152600b9094529190922097518854935190911c600160b81b0267ffffffffffffffff60b81b1960489290921c6001600160b81b03199094169390931716919091178655925185840155905160028501555160038401559051600483015591516005909101805491151560ff1990921691909117905590565b6000546001600160a01b03163314610fa557600080fd5b600080546040513031926001600160a01b03909216916108fc841502918491818181858888f19350505050158015610fe1573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610ffc57600080fd5b600061100f82606463ffffffff612b4d16565b9050610fe130338361245e565b600080546001600160a01b0316331461103457600080fd5b8251609681111561104457600080fd5b60005b8181101561109757600054855161108f916001600160a01b03169087908490811061106e57fe5b602002602001015186848151811061108257fe5b602002602001015161245e565b600101611047565b506001949350505050565b60086020526000908152604090205481565b600154600160a01b900460ff1681565b6001546001600160a01b031633146110db57600080fd5b600154600080546040516001600160a01b0393841693909116917f7b9f4dbf19021732cc1236215fb8368569be3a9c57a729f6c306471afc35505191a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600080546001600160a01b0316331461115757600080fd5b6001600160a01b038316600090815260086020526040902054611180908363ffffffff612aec16565b6001600160a01b038416600081815260086020908152604080832094909455308252600781528382209282529190915220546111c2908363ffffffff612aec16565b3060009081526007602090815260408083206001600160a01b03881684529091529020556003546111f9908363ffffffff612aec16565b60035560045461120f908363ffffffff612aec16565b60045560408051838152905130916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b600080546001600160a01b0316331461126b57600080fd5b610c00838361286c565b600080546001600160a01b0316331461128d57600080fd5b6001600160a01b0382166000908152600b602052604090206005015460ff166112db576001600160a01b0382166000908152600b60205260409020600501805460ff191660011790556112ff565b6001600160a01b0382166000908152600b60205260409020600501805460ff191690555b506001919050565b6000546001600160a01b0316331461131e57600080fd5b600c5460ff1661136057600c8054600160ff199182168117909255600080546001600160a01b03168152600d602052604090208054909116909117905561136b565b600c805460ff191690555b565b6000546001600160a01b031681565b600254600160b81b900460c01b81565b6000610c3c33848461245e565b600a6020526000908152604090205460ff1681565b600c5460ff1681565b600154600160a01b900460ff161561140f576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821630141561142557600080fd5b6001600160a01b03821661146e576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b6001600160a01b0382166000908152600760209081526040808320338452909152902060020154600e546114a990429063ffffffff61240116565b11156114d7576001600160a01b03821660009081526007602090815260408083203384529091528120600301555b6001600160a01b03821660009081526007602090815260408083203384529091529020600381015460019091015482916115449161151491612aec565b6001600160a01b03851660009081526007602090815260408083203384529091529020549063ffffffff61240116565b10156115815760405162461bcd60e51b8152600401808060200182810382526027815260200180612ce46027913960400191505060405180910390fd5b6001600160a01b03821660009081526007602090815260408083203384529091529020546115b5908263ffffffff61240116565b6001600160a01b03831660008181526007602090815260408083203380855290835281842095909555805163a9059cbb60e01b815260048101959095526024850186905251929363a9059cbb9360448083019491928390030190829087803b15801561162057600080fd5b505af1158015611634573d6000803e3d6000fd5b505050506040513d602081101561164a57600080fd5b50506001600160a01b03821660008181526007602090815260408083203380855290835292819020548151948552918401929092528282018490526060830152517f544b39701afd1119e68c6e95a6107ec843364e9fbaae5e99637a368cc82adfc89181900360800190a15050565b60045481565b600e5481565b6000546001600160a01b031633146116dc57600080fd5b600154600160a01b900460ff16611705576001805460ff60a01b1916600160a01b17905561136b565b6001805460ff60a01b19169055565b6001546001600160a01b031681565b600d6020526000908152604090205460ff1681565b600960209081526000928352604080842090915290825290205481565b600080546001600160a01b0316331461176d57600080fd5b50600e55600190565b60065481565b6000546001600160a01b0316331461179357600080fd5b6001600160a01b0382166000818152600a6020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b600154600090600160a01b900460ff1615611852576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821661189b576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b6001600160a01b03821630146118f8576040805162461bcd60e51b815260206004820152601760248201527f4f6e6c79207069737369626c6520666f722045584d5220000000000000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600760209081526040808320338452909152902060020154600e5461193390429063ffffffff61240116565b11611985576040805162461bcd60e51b815260206004820152601760248201527f7761697420706572696f64206973206e6f74206f766572000000000000000000604482015290519081900360640190fd5b6001600160a01b03821660009081526007602090815260408083203384528252808320600301546008909252909120546119c5908263ffffffff612aec16565b3360008181526008602081815260408084208690556001600160a01b03891684526007825280842094845293815292909120600101549152611a0d919063ffffffff612aec16565b6001600160a01b038416600081815260076020908152604080832033845282528083209485556003909401919091558251918252810183905281517fb9a4f2c33f701d04d6dbac8469f1b4062bed33d76f1bf203fb2d39ea77703a77929181900390910190a150600192915050565b600080546001600160a01b03163314611a9457600080fd5b506001600160a01b03919091166000908152600b6020526040902060040155600190565b600080546001600160a01b03163314611ad057600080fd5b506001600160a01b03919091166000908152600b6020526040902060020155600190565b600080546001600160a01b03163314611b0c57600080fd5b50600655600190565b600154600090600160a01b900460ff1615611b70576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b038316611bb9576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b3380611bfa576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b6001600160a01b038085166000908152600760209081526040808320938516835292905220600101548311801590611c325750600083115b611c6d5760405162461bcd60e51b8152600401808060200182810382526022815260200180612d4c6022913960400191505060405180910390fd5b6001600160a01b03808516600090815260076020908152604080832093851683529290529081206001015490611ca486848461233d565b9050611caf81612ba6565b611cf1576040805162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d1a5b99c819985a5b195960921b604482015290519081900360640190fd5b3060009081526007602090815260408083206001600160a01b0387168452909152902060030154611d28908263ffffffff612aec16565b3060009081526007602081815260408084206001600160a01b0389811680875291845282862060030196909655948b168452918152818320938352929092522060010154611d7c908663ffffffff61240116565b6001600160a01b03808816600081815260076020908152604080832094891683529390529190912060010191909155301415611e15576001600160a01b03808716600090815260076020908152604080832093871683529290522060030154611deb908663ffffffff612aec16565b6001600160a01b038088166000908152600760209081526040808320938816835292905220600301555b6001600160a01b038087166000818152600760209081526040808320948816835293815290839020426002909101558251918252810187905280820183905290517f05ed4f81bc443fc929332d09ad813fcbd31f52653b5e27569abd927f851836d39181900360600190a150600195945050505050565b600080546001600160a01b03163314611ea457600080fd5b506001600160a01b03919091166000908152600b6020526040902060030155600190565b6000546001600160a01b03163314611edf57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600154600090600160a01b900460ff1615611f5c576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b0383166000908152600b602052604090206005015460ff16611fcc576040805162461bcd60e51b815260206004820181905260248201527f746f6b656e2074797065206e6f7420616c6c6f77656420746f20667265657a65604482015290519081900360640190fd5b6001600160a01b038316612015576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b3380612056576040805162461bcd60e51b81526020600482018190526024820152600080516020612d0b833981519152604482015290519081900360640190fd5b6001600160a01b03848116600090815260076020908152604080832093851683529290522060038101546001909101546120c6916120949190612aec565b6001600160a01b038087166000908152600760209081526040808320938716835292905220549063ffffffff61240116565b83111580156120f057506001600160a01b0384166000908152600b60205260409020600201548310155b61212b5760405162461bcd60e51b8152600401808060200182810382526022815260200180612d4c6022913960400191505060405180910390fd5b6001600160a01b0380851660009081526007602090815260408083209385168352929052908120600101549081156122145761216886848461233d565b905061217381612ba6565b6121b5576040805162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d1a5b99c819985a5b195960921b604482015290519081900360640190fd5b3060009081526007602090815260408083206001600160a01b03871684529091529020600301546121ec908263ffffffff612aec16565b3060009081526007602090815260408083206001600160a01b03881684529091529020600301555b6001600160a01b0380871660009081526007602090815260408083209387168352929052206001015461224d908663ffffffff612aec16565b6001600160a01b038088166000818152600760209081526040808320948916835293905291909120600101919091553014156122c6576001600160a01b0383166000908152600860205260409020546122ac908663ffffffff61240116565b6001600160a01b0384166000908152600860205260409020555b6001600160a01b038087166000818152600760209081526040808320948816835293815290839020426002909101558251918252810187905280820183905290517f72cb02c58250b8f066d50b43c9a45a6d81b4ac7435f56ae25ed9f7e0e2f8ecfc9181900360600190a150600195945050505050565b6001600160a01b0383166000908152600b60205260408120600301548190612366908490612bdd565b6001600160a01b0386166000908152600b602052604081206004015491925090612391908390612bdd565b6001600160a01b038088166000908152600760209081526040808320938a168352929052908120600201549192504291909103906201518082106123e5576123e2826201518063ffffffff612c1a16565b90505b6123f5818463ffffffff612b4d16565b98975050505050505050565b600082821115612458576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600154600160a01b900460ff16156124b0576040805162461bcd60e51b815260206004820152601060248201526f7361666547756172642041637469766560801b604482015290519081900360640190fd5b6001600160a01b0382166124fd576040805162461bcd60e51b815260206004820152600f60248201526e0746f2069732061646472657373203608c1b604482015290519081900360640190fd5b6001600160a01b03831660009081526008602052604090205481111561255f576040805162461bcd60e51b81526020600482015260126024820152716e6f2062616c616e636520696e2066726f6d60701b604482015290519081900360640190fd5b6001600160a01b038216600090815260086020526040902054612588818363ffffffff612aec16565b10156125ce576040805162461bcd60e51b815260206004820152601060248201526f6f766572666c6f772062616c616e636560801b604482015290519081900360640190fd5b6001600160a01b0383166000908152600a602052604090205460ff1615612632576040805162461bcd60e51b8152602060048201526013602482015272333937b69030b1b1b7bab73a10333937bd32b760691b604482015290519081900360640190fd5b6001600160a01b0382166000908152600a602052604090205460ff1615612694576040805162461bcd60e51b81526020600482015260116024820152703a379030b1b1b7bab73a10333937bd32b760791b604482015290519081900360640190fd5b6001600160a01b0383166000908152600860205260409020546126bd908263ffffffff61240116565b6001600160a01b038416600081815260086020908152604080832094909455308252600781528382209282529190915220546126ff908263ffffffff61240116565b3060009081526007602090815260408083206001600160a01b038881168552908352818420949094559285168252600890522054612743908263ffffffff612aec16565b6001600160a01b03831660008181526008602090815260408083209490945530825260078152838220928252919091522054612785908263ffffffff612aec16565b3060009081526007602090815260408083206001600160a01b038781168552925282209290925580549091163314806127bd57503330145b61281b576127cd82600654612bdd565b90506127d9838261286c565b61281b576040805162461bcd60e51b815260206004820152600e60248201526d189d5c9b9a5b99c819985a5b195960921b604482015290519081900360640190fd5b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b600154600090600160a01b900460ff16156128c1576040805162461bcd60e51b815260206004820152601060248201526f7361666547756172642041637469766560801b604482015290519081900360640190fd5b6001600160a01b0383166128d457600080fd5b6001600160a01b0383166000908152600860205260409020548211156128f957600080fd5b6001600160a01b0383166000908152600a602052604090205460ff161561295b576040805162461bcd60e51b81526020600482015260116024820152703a379030b1b1b7bab73a10333937bd32b760791b604482015290519081900360640190fd5b6001600160a01b038316600090815260086020526040902054612984908363ffffffff61240116565b6001600160a01b038416600081815260086020908152604080832094909455308252600781528382209282529190915220546129c6908363ffffffff61240116565b3060009081526007602090815260408083206001600160a01b038816845282528220929092558052600890527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c754612a24908363ffffffff612aec16565b7f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c755306000908152600760209081526040808320838052909152902054612a71908363ffffffff612aec16565b306000908152600760209081526040808320838052909152902055600354612a9f908363ffffffff61240116565b6003556040805183815290516000916001600160a01b038616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b600082820183811015612b46576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082612b5c57506000610a7c565b82820282848281612b6957fe5b0414612b465760405162461bcd60e51b8152600401808060200182810382526021815260200180612d2b6021913960400191505060405180910390fd5b600354600090612bbc908363ffffffff612aec16565b600355600454612bd2908363ffffffff612aec16565b600455506001919050565b600061271080831115612bef57600080fd5b6000612c1182612c05878763ffffffff612b4d16565b9063ffffffff612c1a16565b95945050505050565b6000808211612c70576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481612c7b57fe5b04949350505050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091529056fe7472616e736665722066726f6d206164646572737328302920697320696e76616c6964526571756972656420616d6f756e74206973206e6f74206672656520746f2077697468647261774164647265737328302920666f756e642c2063616e277420636f6e74696e7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776c657373207468616e207265717569726564206f72206c6573732062616c616e6365a265627a7a723158203a8fa2f8c6d095c09255a7b004f1edadd44c596c8dfc4f2b1a3792c02d1db46e64736f6c634300050c0032

Deployed Bytecode Sourcemap

10143:9844:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10143:9844:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2945:28;;;:::i;:::-;;;;;;;;;;;;;;;;2787:19;;;:::i;:::-;;;;-1:-1:-1;;2787:19:0;;;;;;;;;;;;;;8353:201;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8353:201:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;19650:332;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19650:332:0;-1:-1:-1;;;;;19650:332:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2869:26;;;:::i;4409:56::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4409:56:0;-1:-1:-1;;;;;4409:56:0;;:::i;:::-;;;;-1:-1:-1;;4409:56:0;;;;;-1:-1:-1;;;;;;4409:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7895:436;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7895:436:0;;;;;;;;;;;;;;;;;:::i;2840:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9142:143;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9142:143:0;;:::i;13975:470::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13975:470:0;;;;;;;;:::i;:::-;;10650:211;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10650:211:0;-1:-1:-1;;;;;10650:211:0;;:::i;3206:67::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3206:67:0;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12363:614;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;12363:614:0;;;;-1:-1:-1;;12363:614:0;;;;;;-1:-1:-1;;;;;;12363:614:0;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11270:122::-;;;:::i;11050:188::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11050:188:0;;:::i;11417:491::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11417:491:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;11417:491:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11417:491:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;11417:491:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;11417:491:0;;;;;;;;-1:-1:-1;11417:491:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;11417:491:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11417:491:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;11417:491:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;11417:491:0;;-1:-1:-1;11417:491:0;;-1:-1:-1;;;;;11417:491:0:i;3282:45::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3282:45:0;-1:-1:-1;;;;;3282:45:0;;:::i;701:21::-;;;:::i;1203:204::-;;;:::i;8562:570::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8562:570:0;;;;;;;;:::i;9307:157::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9307:157:0;;;;;;;;:::i;12985:365::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12985:365:0;-1:-1:-1;;;;;12985:365:0;;:::i;10351:281::-;;;:::i;624:28::-;;;:::i;:::-;;;;-1:-1:-1;;;;;624:28:0;;;;;;;;;;;;;;2813:20;;;:::i;:::-;;;;-1:-1:-1;;;;;;2813:20:0;;;;;;;;;;;;;;7730:153;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7730:153:0;;;;;;;;:::i;3418:46::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3418:46:0;-1:-1:-1;;;;;3418:46:0;;:::i;10235:38::-;;;:::i;14459:847::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14459:847:0;;;;;;;;:::i;2902:36::-;;;:::i;11922:::-;;;:::i;1415:221::-;;;:::i;661:31::-;;;:::i;10284:44::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10284:44:0;-1:-1:-1;;;;;10284:44:0;;:::i;3334:66::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3334:66:0;;;;;;;;;;:::i;12190:165::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12190:165:0;;:::i;2982:29::-;;;:::i;10877:151::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10877:151:0;;;;;;;;;;:::i;15434:739::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15434:739:0;-1:-1:-1;;;;;15434:739:0;;:::i;13758:204::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13758:204:0;;;;;;;;:::i;13358:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13358:204:0;;;;;;;;:::i;3978:154::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3978:154:0;;:::i;18435:1207::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18435:1207:0;;;;;;;;:::i;13570:180::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13570:180:0;;;;;;;;:::i;1077:116::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1077:116:0;-1:-1:-1;;;;;1077:116:0;;:::i;16260:1471::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16260:1471:0;;;;;;;;:::i;2945:28::-;;;;:::o;2787:19::-;;;;;;:::o;8353:201::-;8463:9;;8429:12;;-1:-1:-1;;;8463:9:0;;;;8462:10;8454:19;;;;;;-1:-1:-1;8494:10:0;8484:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;8484:31:0;;;;;;;;;:40;;;8542:4;8353:201;;;;;:::o;19650:332::-;-1:-1:-1;;;;;19822:13:0;;19707:17;19822:13;;;:6;:13;;;;;;;;19782:10;19822:26;;;;;;;:38;;;19707:17;;19782:10;19707:17;19890:41;19829:5;19782:10;19822:38;19890:10;:41::i;:::-;19950:11;;-1:-1:-1;19871:60:0;;-1:-1:-1;;;19650:332:0;;;:::o;2869:26::-;;;;:::o;4409:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4409:56:0;;;;;;;;;;:::o;7895:436::-;8011:9;;7977:12;;-1:-1:-1;;;8011:9:0;;;;8010:10;8002:19;;;;;;-1:-1:-1;;;;;8040:19:0;;8032:66;;;;-1:-1:-1;;;8032:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8127:16:0;;;;;;:9;:16;;;;;;;;8144:10;8127:28;;;;;;;;8117:38;;;8109:47;;;;;;-1:-1:-1;;;;;8221:16:0;;;;;;:9;:16;;;;;;;;8238:10;8221:28;;;;;;;;:40;;8254:6;8221:40;:32;:40;:::i;:::-;-1:-1:-1;;;;;8190:16:0;;;;;;:9;:16;;;;;;;;8207:10;8190:28;;;;;;;:71;8272:29;8200:5;8289:3;8294:6;8272:9;:29::i;:::-;-1:-1:-1;8319:4:0;7895:436;;;;;:::o;2840:21::-;;;-1:-1:-1;;;2840:21:0;;;;;:::o;9142:143::-;9198:12;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;9223:32;9236:10;9248:6;9223:12;:32::i;:::-;-1:-1:-1;9273:4:0;;9142:143;-1:-1:-1;;9142:143:0:o;13975:470::-;-1:-1:-1;;;;;14067:17:0;;14059:61;;;;;-1:-1:-1;;;14059:61:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;14059:61:0;;;;;;;;;;;;;;;14139:69;;;-1:-1:-1;;;14139:69:0;;14174:10;14139:69;;;;14194:4;14139:69;;;;;;;;;;;;-1:-1:-1;;;;;14139:34:0;;;;;:69;;;;;;;;;;;;;;-1:-1:-1;14139:34:0;:69;;;5:2:-1;;;;30:1;27;20:12;5:2;14139:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14139:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14139:69:0;14131:113;;;;;-1:-1:-1;;;14131:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14294:13:0;;;;;;:6;:13;;;;;;;;14308:10;14294:25;;;;;;;:36;:48;;14335:6;14294:48;:40;:48;:::i;:::-;-1:-1:-1;;;;;14255:13:0;;;;;;:6;:13;;;;;;;;14269:10;14255:25;;;;;;;;;;:87;;;14358:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13975:470;;:::o;10650:211::-;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;10733:18;;;;:26;;:18;:26;10725:35;;;;;;-1:-1:-1;;;;;10783:25:0;;10775:34;;;;;;-1:-1:-1;;;;;10824:24:0;;;;;:11;:24;;;;;:31;;-1:-1:-1;;10824:31:0;10851:4;10824:31;;;10650:211::o;3206:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12363:614::-;12556:4;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;12578:25;;:::i;:::-;-1:-1:-1;;12616:25:0;;;;;-1:-1:-1;;;;;;;12652:29:0;;;:16;;;;:29;;;12692:17;;;;:31;;;12734:21;;;:39;;;12784:15;;;:27;;;12828:21;;;:39;;;12902:4;12881:20;;;;:25;;;-1:-1:-1;;;;;12919:21:0;;;12616:14;12919:21;;;:14;:21;;;;;;;:28;;;;;;;;;-1:-1:-1;;;12919:28:0;-1:-1:-1;;;;12919:28:0;;;;;-1:-1:-1;;;;;;12919:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12919:28:0;;;;;;;;;12902:4;12363:614::o;11270:122::-;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;11322:14;11364:5;;:22;;11345:4;11337:21;;-1:-1:-1;;;;;11364:5:0;;;;:22;;;;;11337:21;;11364:22;11322:14;11364:22;11337:21;11364:5;:22;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11364:22:0;1058:1;11270:122::o;11050:188::-;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;11124:19;11146:16;:7;11158:3;11146:16;:11;:16;:::i;:::-;11124:38;;11177:49;11195:4;11202:10;11214:11;11177:9;:49::i;11417:491::-;11514:4;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;11558:17;;11616:3;11598:21;;;11590:30;;;;;;11639:6;11635:236;11655:14;11651:1;:18;11635:236;;;11818:5;;11825:13;;11808:47;;-1:-1:-1;;;;;11818:5:0;;11825:10;;11836:1;;11825:13;;;;;;;;;;;;11840:11;11852:1;11840:14;;;;;;;;;;;;;;11808:9;:47::i;:::-;11671:3;;11635:236;;;-1:-1:-1;11892:4:0;;11417:491;-1:-1:-1;;;;11417:491:0:o;3282:45::-;;;;;;;;;;;;;:::o;701:21::-;;;-1:-1:-1;;;701:21:0;;;;;:::o;1203:204::-;1276:8;;-1:-1:-1;;;;;1276:8:0;1262:10;:22;1254:31;;;;;;1331:8;;;1324:5;;1301:39;;-1:-1:-1;;;;;1331:8:0;;;;1324:5;;;;1301:39;;;1359:8;;;;1351:16;;-1:-1:-1;;;;;;1351:16:0;;;-1:-1:-1;;;;;1359:8:0;;1351:16;;;;1378:21;;;1203:204::o;8562:570::-;8646:12;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;-1:-1:-1;;;;;8686:17:0;;;;;;:9;:17;;;;;;:35;;8708:12;8686:35;:21;:35;:::i;:::-;-1:-1:-1;;;;;8666:17:0;;;;;;:9;:17;;;;;;;;:55;;;;8794:4;8779:21;;:6;:21;;;;;:29;;;;;;;;:40;:58;;8824:12;8779:58;:44;:58;:::i;:::-;8751:4;8736:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;8736:29:0;;;;;;;;;:101;8932:11;;:29;;8948:12;8932:29;:15;:29;:::i;:::-;8918:11;:43;9000:21;;:39;;9026:12;9000:39;:25;:39;:::i;:::-;8976:21;:63;9051:49;;;;;;;;9080:4;;9068:1;;9051:49;;;;;;;;;-1:-1:-1;9122:4:0;8562:570;;;;:::o;9307:157::-;9382:12;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;9407:27;9420:5;9427:6;9407:12;:27::i;12985:365::-;13061:4;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;-1:-1:-1;;;;;13087:21:0;;;;;;:14;:21;;;;;:37;;;;;13083:232;;-1:-1:-1;;;;;13159:21:0;;;;;;:14;:21;;;;;:37;;:44;;-1:-1:-1;;13159:44:0;13199:4;13159:44;;;13083:232;;;-1:-1:-1;;;;;13254:21:0;;13294:5;13254:21;;;:14;:21;;;;;:37;;:45;;-1:-1:-1;;13254:45:0;;;13083:232;-1:-1:-1;13333:4:0;12985:365;;;:::o;10351:281::-;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;10422:18;;;;10418:209;;10460:18;:25;;10481:4;-1:-1:-1;;10460:25:0;;;;;;;;-1:-1:-1;10516:5:0;;-1:-1:-1;;;;;10516:5:0;10504:18;;:11;:18;;;;;:24;;;;;;;;;;10418:209;;;10581:18;:26;;-1:-1:-1;;10581:26:0;;;10418:209;10351:281::o;624:28::-;;;-1:-1:-1;;;;;624:28:0;;:::o;2813:20::-;;;-1:-1:-1;;;2813:20:0;;;;;:::o;7730:153::-;7793:12;7819:34;7829:10;7841:3;7846:6;7819:9;:34::i;3418:46::-;;;;;;;;;;;;;;;:::o;10235:38::-;;;;;;:::o;14459:847::-;14542:9;;-1:-1:-1;;;14542:9:0;;;;14541:10;14533:44;;;;;-1:-1:-1;;;14533:44:0;;;;;;;;;;;;-1:-1:-1;;;14533:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;14596:22:0;;14613:4;14596:22;;14588:31;;;;;;-1:-1:-1;;;;;14638:17:0;;14630:61;;;;;-1:-1:-1;;;14630:61:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;14630:61:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;14732:13:0;;;;;;:6;:13;;;;;;;;14746:10;14732:25;;;;;;;:36;;;14713:15;;14705:24;;:3;;:24;:7;:24;:::i;:::-;:63;14702:143;;;-1:-1:-1;;;;;14793:13:0;;14831:1;14793:13;;;:6;:13;;;;;;;;14807:10;14793:25;;;;;;;:35;;:39;14702:143;-1:-1:-1;;;;;14946:13:0;;;;;;:6;:13;;;;;;;;14960:10;14946:25;;;;;;;:35;;;;14904:37;;;;;14987:6;;14863:120;;14904:78;;:41;:78::i;:::-;-1:-1:-1;;;;;14863:13:0;;;;;;:6;:13;;;;;;;;14877:10;14863:25;;;;;;;:36;;:120;:40;:120;:::i;:::-;:130;;14855:181;;;;-1:-1:-1;;;14855:181:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15093:13:0;;;;;;:6;:13;;;;;;;;15107:10;15093:25;;;;;;;:36;:48;;15134:6;15093:48;:40;:48;:::i;:::-;-1:-1:-1;;;;;15054:13:0;;;;;;:6;:13;;;;;;;;15068:10;15054:25;;;;;;;;;:87;;;;15152:50;;-1:-1:-1;;;15152:50:0;;;;;;;;;;;;;;;;15054:13;;15152:30;;:50;;;;;;;;;;;;;;15054:13;15152:50;;;5:2:-1;;;;30:1;27;20:12;5:2;15152:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15152:50:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;15261:13:0;;;;;;:6;15152:50;15261:13;;;;;;;15241:10;15261:25;;;;;;;;;;:36;15218:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14459:847;;:::o;2902:36::-;;;;:::o;11922:::-;;;;:::o;1415:221::-;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;1485:9;;-1:-1:-1;;;1485:9:0;;;;1481:148;;1541:4;1529:16;;-1:-1:-1;;;;1529:16:0;-1:-1:-1;;;1529:16:0;;;1481:148;;;1596:9;:17;;-1:-1:-1;;;;1596:17:0;;;1415:221::o;661:31::-;;;-1:-1:-1;;;;;661:31:0;;:::o;10284:44::-;;;;;;;;;;;;;;;:::o;3334:66::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;12190:165::-;12271:4;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;-1:-1:-1;12293:15:0;:32;12343:4;;12190:165::o;2982:29::-;;;;:::o;10877:151::-;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;-1:-1:-1;;;;;10953:21:0;;;;;;:13;:21;;;;;;;;;:30;;-1:-1:-1;;10953:30:0;;;;;;;;;;10995:27;;;;;;;;;;;;;;;;;;;;;10877:151;;:::o;15434:739::-;15519:9;;15488:4;;-1:-1:-1;;;15519:9:0;;;;15518:10;15510:44;;;;;-1:-1:-1;;;15510:44:0;;;;;;;;;;;;-1:-1:-1;;;15510:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;15573:17:0;;15565:61;;;;;-1:-1:-1;;;15565:61:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15565:61:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;15645:22:0;;15662:4;15645:22;15637:57;;;;;-1:-1:-1;;;15637:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15740:13:0;;;;;;:6;:13;;;;;;;;15754:10;15740:25;;;;;;;:36;;;15721:15;;15713:24;;:3;;:24;:7;:24;:::i;:::-;:63;15705:98;;;;;-1:-1:-1;;;15705:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15828:13:0;;15814:11;15828:13;;;:6;:13;;;;;;;;15842:10;15828:25;;;;;;;:35;;;15898:9;:21;;;;;;;:33;;15828:35;15898:33;:25;:33;:::i;:::-;15884:10;15874:21;;;;:9;:21;;;;;;;;:57;;;-1:-1:-1;;;;;16007:13:0;;;;:6;:13;;;;;:25;;;;;;;;;;:37;;;15981:21;;:65;;15874:57;15981:65;:25;:65;:::i;:::-;-1:-1:-1;;;;;15942:13:0;;;;;;:6;:13;;;;;;;;15956:10;15942:25;;;;;;;:104;;;16057:35;;;;:39;;;;16113:30;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16161:4:0;;15434:739;-1:-1:-1;;15434:739:0:o;13758:204::-;13852:4;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;-1:-1:-1;;;;;;13874:21:0;;;;;;;;:14;:21;;;;;:38;;:58;13950:4;;13758:204::o;13358:::-;13452:4;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;-1:-1:-1;;;;;;13474:21:0;;;;;;;;:14;:21;;;;;:38;;:58;13550:4;;13358:204::o;3978:154::-;4046:12;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;-1:-1:-1;4076:11:0;:26;4120:4;;3978:154::o;18435:1207::-;18538:9;;18507:4;;-1:-1:-1;;;18538:9:0;;;;18537:10;18529:44;;;;;-1:-1:-1;;;18529:44:0;;;;;;;;;;;;-1:-1:-1;;;18529:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18592:17:0;;18584:61;;;;;-1:-1:-1;;;18584:61:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;18584:61:0;;;;;;;;;;;;;;;18678:10;18707:24;18699:68;;;;;-1:-1:-1;;;18699:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;18699:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18797:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;:38;;;18786:49;;;;;:63;;;18848:1;18839:6;:10;18786:63;18778:110;;;;-1:-1:-1;;;18778:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18928:13:0;;;18909:16;18928:13;;;:6;:13;;;;;;;;:26;;;;;;;;;;;:38;;;;18996:41;18935:5;18942:11;18928:38;18996:10;:41::i;:::-;18977:60;;19056:25;19069:11;19056:12;:25::i;:::-;19048:51;;;;;-1:-1:-1;;;19048:51:0;;;;;;;;;;;;-1:-1:-1;;;19048:51:0;;;;;;;;;;;;;;;19172:4;19157:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;19157:34:0;;;;;;;;;:44;;;:61;;19206:11;19157:61;:48;:61;:::i;:::-;19125:4;19110:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;19110:34:0;;;;;;;;;;;;:44;;:108;;;;19287:13;;;;;;;;;;;:26;;;;;;;;:38;;;:50;;19330:6;19287:50;:42;:50;:::i;:::-;-1:-1:-1;;;;;19246:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;;;;:38;;:91;;;;19367:4;19352:20;19348:149;;;-1:-1:-1;;;;;19437:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;:36;;;:48;;19478:6;19437:48;:40;:48;:::i;:::-;-1:-1:-1;;;;;19398:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;:36;;:87;19348:149;-1:-1:-1;;;;;19509:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;;;;19549:3;19509:37;;;;:43;19568:44;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19630:4:0;;18435:1207;-1:-1:-1;;;;;18435:1207:0:o;13570:180::-;13652:4;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;-1:-1:-1;;;;;;13674:21:0;;;;;;;;:14;:21;;;;;:32;;:46;13738:4;;13570:180::o;1077:116::-;1041:5;;-1:-1:-1;;;;;1041:5:0;1027:10;:19;1019:28;;;;;;1165:8;:20;;-1:-1:-1;;;;;;1165:20:0;-1:-1:-1;;;;;1165:20:0;;;;;;;;;;1077:116::o;16260:1471::-;16365:9;;16334:4;;-1:-1:-1;;;16365:9:0;;;;16364:10;16356:44;;;;;-1:-1:-1;;;16356:44:0;;;;;;;;;;;;-1:-1:-1;;;16356:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16419:21:0;;;;;;:14;:21;;;;;:37;;;;;16411:81;;;;;-1:-1:-1;;;16411:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16511:17:0;;16503:61;;;;;-1:-1:-1;;;16503:61:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16503:61:0;;;;;;;;;;;;;;;16597:10;16626:24;16618:68;;;;;-1:-1:-1;;;16618:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16618:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16803:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;:36;;;;16760:38;;;;;16718:123;;16760:80;;:38;:42;:80::i;:::-;-1:-1:-1;;;;;16718:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;:37;;:123;:41;:123;:::i;:::-;16707:6;:134;;:186;;;;-1:-1:-1;;;;;;16855:21:0;;;;;;:14;:21;;;;;:38;;;16845:48;;;16707:186;16699:233;;;;-1:-1:-1;;;16699:233:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16972:13:0;;;16953:16;16972:13;;;:6;:13;;;;;;;;:26;;;;;;;;;;;:38;;;;17052:15;;17048:301;;17107:41;17118:5;17124:11;17136;17107:10;:41::i;:::-;17093:55;;17171:25;17184:11;17171:12;:25::i;:::-;17163:51;;;;;-1:-1:-1;;;17163:51:0;;;;;;;;;;;;-1:-1:-1;;;17163:51:0;;;;;;;;;;;;;;;17291:4;17276:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;17276:34:0;;;;;;;;;:44;;;:61;;17325:11;17276:61;:48;:61;:::i;:::-;17244:4;17229:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;17229:34:0;;;;;;;;;:44;;:108;17048:301;-1:-1:-1;;;;;17402:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;:38;;;:50;;17445:6;17402:50;:42;:50;:::i;:::-;-1:-1:-1;;;;;17361:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;;;;:38;;:91;;;;17482:4;17467:20;17463:121;;;-1:-1:-1;;;;;17538:22:0;;;;;;:9;:22;;;;;;:34;;17565:6;17538:34;:26;:34;:::i;:::-;-1:-1:-1;;;;;17513:22:0;;;;;;:9;:22;;;;;:59;17463:121;-1:-1:-1;;;;;17594:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;;;;17634:3;17594:37;;;;:43;17655:46;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17719:4:0;;16260:1471;-1:-1:-1;;;;;16260:1471:0:o;17739:609::-;-1:-1:-1;;;;;17896:21:0;;17821:7;17896:21;;;:14;:21;;;;;:32;;;17821:7;;17869:60;;17889:6;;17869:19;:60::i;:::-;-1:-1:-1;;;;;17998:21:0;;17940:19;17998:21;;;:14;:21;;;;;:38;;;17846:83;;-1:-1:-1;17940:19:0;17962:75;;17846:83;;17962:19;:75::i;:::-;-1:-1:-1;;;;;18076:13:0;;;18048:18;18076:13;;;:6;:13;;;;;;;;:19;;;;;;;;;;;:30;;;17940:97;;-1:-1:-1;18070:3:0;:36;;;;;18167:5;18150:22;;18146:147;;18256:24;:13;18274:5;18256:24;:17;:24;:::i;:::-;18243:37;;18146:147;18310:30;:10;18325:14;18310:30;:14;:30;:::i;:::-;18303:37;17739:609;-1:-1:-1;;;;;;;;17739:609:0:o;1868:184::-;1926:7;1959:1;1954;:6;;1946:49;;;;;-1:-1:-1;;;1946:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2018:5:0;;;1868:184::o;5300:1202::-;5393:9;;-1:-1:-1;;;5393:9:0;;;;5392:10;5384:38;;;;;-1:-1:-1;;;5384:38:0;;;;;;;;;;;;-1:-1:-1;;;5384:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5437:17:0;;5428:45;;;;;-1:-1:-1;;;5428:45:0;;;;;;;;;;;;-1:-1:-1;;;5428:45:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5519:16:0;;;;;;:9;:16;;;;;;:26;-1:-1:-1;5519:26:0;5510:58;;;;;-1:-1:-1;;;5510:58:0;;;;;;;;;;;;-1:-1:-1;;;5510:58:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5628:14:0;;;;;;:9;:14;;;;;;5598:26;5628:14;5617:6;5598:26;:18;:26;:::i;:::-;:44;;5589:73;;;;;-1:-1:-1;;;5589:73:0;;;;;;;;;;;;-1:-1:-1;;;5589:73:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5678:20:0;;;;;;:13;:20;;;;;;;;5677:21;5669:52;;;;;-1:-1:-1;;;5669:52:0;;;;;;;;;;;;-1:-1:-1;;;5669:52:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5757:18:0;;;;;;:13;:18;;;;;;;;5756:19;5748:48;;;;;-1:-1:-1;;;5748:48:0;;;;;;;;;;;;-1:-1:-1;;;5748:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5844:16:0;;;;;;:9;:16;;;;;;:28;;5865:6;5844:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;5825:16:0;;;;;;:9;:16;;;;;;;;:47;;;;5948:4;5933:21;;:6;:21;;;;;:28;;;;;;;;:39;:51;;5977:6;5933:51;:43;:51;:::i;:::-;5906:4;5891:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;5891:28:0;;;;;;;;;;;:93;;;;6008:14;;;;;:9;:14;;;;:26;;6027:6;6008:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;5991:14:0;;;;;;:9;:14;;;;;;;;:43;;;;6112:4;6097:21;;:6;:21;;;;;:26;;;;;;;;:37;:49;;6139:6;6097:49;:41;:49;:::i;:::-;6072:4;6057:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;6057:26:0;;;;;;;;;:89;;;;6221:5;;6057:21;;6221:5;6207:10;:19;;:50;;-1:-1:-1;6230:10:0;6252:4;6230:27;6207:50;6202:237;;6307:39;6327:6;6334:11;;6307:19;:39::i;:::-;6295:51;;6374:28;6387:3;6392:9;6374:12;:28::i;:::-;6366:54;;;;;-1:-1:-1;;;6366:54:0;;;;;;;;;;;;-1:-1:-1;;;6366:54:0;;;;;;;;;;;;;;;6465:3;-1:-1:-1;;;;;6449:27:0;6458:5;-1:-1:-1;;;;;6449:27:0;;6469:6;6449:27;;;;;;;;;;;;;;;;;;5300:1202;;;;:::o;6515:940::-;6640:9;;6590:12;;-1:-1:-1;;;6640:9:0;;;;6639:10;6631:38;;;;;-1:-1:-1;;;6631:38:0;;;;;;;;;;;;-1:-1:-1;;;6631:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6692:23:0;;6684:32;;;;;;-1:-1:-1;;;;;6739:20:0;;;;;;:9;:20;;;;;;:34;-1:-1:-1;6739:34:0;6731:43;;;;;;-1:-1:-1;;;;;6792:24:0;;;;;;:13;:24;;;;;;;;6791:25;6783:54;;;;;-1:-1:-1;;;6783:54:0;;;;;;;;;;;;-1:-1:-1;;;6783:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6889:20:0;;;;;;:9;:20;;;;;;:36;;6914:10;6889:36;:24;:36;:::i;:::-;-1:-1:-1;;;;;6866:20:0;;;;;;:9;:20;;;;;;;;:59;;;;7005:4;6990:21;;:6;:21;;;;;:32;;;;;;;;:43;:59;;7038:10;6990:59;:47;:59;:::i;:::-;6959:4;6944:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;6944:32:0;;;;;;;;:105;;;;7080:21;;:9;:21;;;;:37;;7106:10;7080:37;:25;:37;:::i;:::-;7056:21;:61;7202:4;7056:21;7187;;;:6;7056:21;7187;;;7056;7187;;;:33;;;;;;;;:44;:60;;7236:10;7187:60;:48;:60;:::i;:::-;7155:4;7140:21;;;;:6;:21;;;;;;;;:33;;;;;;;;:107;7288:11;;:27;;7304:10;7288:27;:15;:27;:::i;:::-;7274:11;:41;7338:42;;;;;;;;7366:1;;-1:-1:-1;;;;;7338:42:0;;;;;;;;;;;;-1:-1:-1;7427:4:0;6515:940;;;;:::o;1674:181::-;1732:7;1764:5;;;1788:6;;;;1780:46;;;;;-1:-1:-1;;;1780:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1846:1;1674:181;-1:-1:-1;;;1674:181:0:o;2066:256::-;2124:7;2154:6;2150:47;;-1:-1:-1;2184:1:0;2177:8;;2150:47;2221:5;;;2225:1;2221;:5;:1;2245:5;;;;;:10;2237:56;;;;-1:-1:-1;;;2237:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7461:261;7583:11;;7524:12;;7583:29;;7599:12;7583:29;:15;:29;:::i;:::-;7569:11;:43;7651:21;;:39;;7677:12;7651:39;:25;:39;:::i;:::-;7627:21;:63;-1:-1:-1;7712:4:0;7461:261;;;:::o;3703:264::-;3794:7;3837:5;3861:19;;;;3853:28;;;;;;3892:9;3904:36;3933:6;3904:24;:9;3918;3904:24;:13;:24;:::i;:::-;:28;:36;:28;:36;:::i;:::-;3892:48;3703:264;-1:-1:-1;;;;;3703:264:0:o;2335:198::-;2393:7;2434:1;2430;:5;2422:44;;;;;-1:-1:-1;;;2422:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2477:9;2493:1;2489;:5;;;;;;;2335:198;-1:-1:-1;;;;2335:198:0:o;10143:9844::-;;;;;;;;;-1:-1:-1;10143:9844:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://3a8fa2f8c6d095c09255a7b004f1edadd44c596c8dfc4f2b1a3792c02d1db46e
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.