Contract 0xBB068d536A1151Ed1a5aDe9b0DA8F3252DFd2f81 1

 
 
Txn Hash
Method
Block
From
To
Value
0xf2dc1feef275b905951ccc19bd249df818a1e8c8c316ff6b23f0124e35e38379Set NPA121136792021-03-26 8:56:33548 days 8 hrs ago0xb31ab3faf5213f18fad541d39bd19958122454d2 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.00495913110.00000145
0x2e71e2289f4ea1189f247e9b4ba21852b16fd11ff385422339390dad50e7dd08Redeem One121136702021-03-26 8:54:13548 days 8 hrs ago0x18cb1714729e9bf9d2373c990a6316cb52bba1f7 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.01553711113.1
0x6748900f54abc9eeed8d17cbb2ff9ab09f9900dfbe18c1c2dcca203f048f1e52Issue121136312021-03-26 8:47:29548 days 8 hrs ago0x18cb1714729e9bf9d2373c990a6316cb52bba1f7 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.01172798110.00000145
0x5b7c469a0e660bc95c26e2689ad81cc9c03757ecb197825dc9788ba2b31c555bSet NPA121116892021-03-26 1:38:31548 days 15 hrs ago0xb31ab3faf5213f18fad541d39bd19958122454d2 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0018688124
0xfdfae958a43e02321258ed18571d1d0a384edb4aa5993a4f24ff1f5531c9a501Set NPA121114922021-03-26 0:50:39548 days 16 hrs ago0xb31ab3faf5213f18fad541d39bd19958122454d2 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.00577062128
0xf7332a14210f21d98189940e48a236b4ee9b28815852dae92e68a7b7684f00deSet NPA118988022021-02-21 6:57:57581 days 10 hrs ago0xb31ab3faf5213f18fad541d39bd19958122454d2 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.00167288111
0x87d6d5b9f6c5e31502df25ab441bd885bd4f749e5dbbfa1489c8edb59a0a131eSet NPA118985322021-02-21 5:56:55581 days 11 hrs ago0xb31ab3faf5213f18fad541d39bd19958122454d2 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.00500421111
0xe588b8d10f7284b535588a6d055257974834bd7dcd2fab21af0e1b79a32797aaRedeem One114393782020-12-12 17:06:09652 days ago0x7cb49344526836518671db1db7f738aa0a855006 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0032208930
0x955e44aa342bf7c9c92daba9e74dc960a0ebb0d756d73b8a2eb2f80e95e48977Redeem One111166362020-10-24 3:34:37701 days 13 hrs ago0x7cb49344526836518671db1db7f738aa0a855006 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0021720820.00000145
0x61f2159222c4222fd3d7f1fc722ffa73c9fe3fae66711b4df59dc5870df56b68Redeem One108326192020-09-10 7:26:09745 days 9 hrs ago0x918fa8a0ace712301596a0533b61db31698875f3 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.02300198188
0x32911606425b5ac35ed880d28508fbca341a3e737f73832e5c53a4f66de36e7cRedeem One107699202020-08-31 16:59:33755 days 7 mins ago0x28721de39e751a5f870cbc8c9cd2e1c35a7fe167 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.03705022302.78946312
0x6ab5f99bbc549e4c7afe11fb0c52f0842f1ac380ee8fd83da8d66ae2a628c573Redeem One107699032020-08-31 16:55:45755 days 10 mins ago0x28721de39e751a5f870cbc8c9cd2e1c35a7fe167 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.02504991303
0x05f8389573060b3f083131c18bea8319fc6dc43be2713bd30623a415a59b56f6Redeem One105784332020-08-02 5:20:00784 days 11 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.01332679122.00000145
0xed7ece1947b4fc82ecc74938bb09aba26f53528e121c253a2353bd6d268409fcIssue105763092020-08-01 21:22:37784 days 19 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0065838954
0xe7b363b83d52779b3ff6521c7ebdc26f616908e588eef6c2e14d119036b849b2Redeem One105757832020-08-01 19:21:38784 days 21 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0053943252
0x863e9cda42b98b4fce6078d4935bc33efa4c40f5470d697c827b9d69a55613a6Issue105757782020-08-01 19:20:44784 days 21 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0064144252.61
0xa54d1b97e4306cd481485fcc4e28940b6c436a8e8ff62905500f775e643293b9Redeem One105757532020-08-01 19:16:17784 days 21 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0054980653.00000145
0xeac795d4aa072580b490ab306aa82cadb4b5cf7c0940dcdecd9150f856fdaa81Issue105757502020-08-01 19:15:23784 days 21 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0064619753.00000145
0x86774f0660305e923ab9622deda59d4d50cbe5730d2fe6b83cb7728bb1e1d857Redeem One105757362020-08-01 19:11:24784 days 21 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0054980653.00000145
0xf6adf9aaadb79ec654cac693ef62fb81672486564d95a59863f1f2d126182d07Issue105757332020-08-01 19:09:36784 days 21 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0064619753.00000145
0x6e3703c923c3d8ddf6b7a2bd746b034610064cf5dbc877e1a5e8c07ca74cd2c6Redeem One105757182020-08-01 19:06:50784 days 21 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0048805355
0x3cb085567e0d4ddce5cccfb50723ee3a8f17e08b37676a29fc95048fbecdcb9dIssue105757032020-08-01 19:02:30784 days 22 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0053651844
0x065cc8565bab1a64ffa841f1a0226bff4ff3fcc88d1e27833854dbaa3807a2a2Redeem One105756832020-08-01 18:58:13784 days 22 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0039931645
0x325d92c6402f53f3967c92d6ab3fc6d9fd33b404793206640b5b58bade28eafaIssue105756812020-08-01 18:57:38784 days 22 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0055963145.9
0x4fc3c60ad8fe02d607e7b1dca922cf1ae6ec90663930e3c100314e52e6771262Redeem One105756462020-08-01 18:49:55784 days 22 hrs ago0xb8e17edcd44e3cc08abd1bf678c4c75a14d3e001 IN  0xbb068d536a1151ed1a5ade9b0da8f3252dfd2f810 Ether0.0048185846.45
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UNDTISSUE

Compiler Version
v0.5.5+commit.47a71e8f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-09-11
*/

pragma solidity ^0.5.5;							
/*Math operations with safety checks */
contract SafeMath { 
  function safeMul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;  
    }
  function safeDiv(uint256 a, uint256 b) internal pure returns (uint256) {	
    return a/b;  
    }
  function safeSub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;  
    }
  function safeAdd(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c>=a && c>=b);
    return c;  
    }  
  function safePower(uint a, uint b) internal pure returns (uint256) {
      uint256 c = a**b;
      return c;  
    }
}
contract Token {
  function totalSupply() public view returns (uint256 supply) {}
  function balanceOf(address _owner) public view returns (uint256 balance) {}
  function transfer(address _to, uint256 _value) public returns (bool success) {}
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {}
  function approve(address _spender, uint256 _value) public returns (bool success) {}
  function allowance(address _owner, address _spender) public view returns (uint256 remaining) {}
  function burn(uint256 _value) public returns (bool success){}
  function mintToken(address _target, uint256 _mintedAmount) public returns (bool success) {}
  mapping (address => uint256) public newPrice;
  address public issueContract;
}

contract TokenUSDT {
  function transferFrom(address _from, address _to, uint256 _value) public  {}
  function transfer(address _to, uint256 _value) public  {}
}

interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes calldata _extraData) external; }

contract UNDTISSUE is SafeMath{
    address payable public owner;
    address public tokenAddress;
    uint8   public decimals;
    uint256 public totalSupply;
    address public manager;/*Executive manager*/    
    uint256 public tokenNumber;/*Number of assets*/    
    uint256 public fee;/*redeem fee ratio*/
    address public managerToken;    
    uint16  public upAmountRate;/*The total amount of control coefficient, the standard is 100, this parameter is divided by 100 to get the actual upper limit of the total amount of assets issued*/
    bool    public pauseIssue;
    bool    public pauseRedeem;
    uint256 public blockPerDay;
    uint256 public issueDiv;
    mapping (address => uint8) public tokenDecimals;    
    mapping (address => bool) public isNPA;/*Whether to dispose of bad assets, directly replace non-performing assets of this kind*/    
    mapping (uint => address) public tokenPool;/*Asset list*/  
    mapping (address => uint256) public tokenSupply;/*Token asset stock*/    
    mapping (address => uint256) public upAmount;/*The total amount of this token exchange*/ 
    mapping (address => bool) public isTransferFrom;/*Whether to dispose of bad assets, directly replace non-performing assets of this kind*/  
    mapping (address => mapping (address => uint)) public tokens;//mapping of token addresses to mapping of account balances (token=0 means Ether)
    mapping (uint256 => mapping (address => uint256)) public totalRedeemOne;
    mapping (uint256 => mapping (address => uint256)) public totalIssue;
    event Withdraw(address token, address user, uint amount, uint balance);
    event SetManagerToken(address add);
    event SetPauseIssue(bool pause);
    event SetPauseRedeem(bool pause);
    event SetNPA(address token,bool isNPA);
    event SetAssetsUpperLimit(address token,uint256 value);
    event SetManager(address add);
    event ChangeOwner(address add);
    event SetFee(uint256 value);

    /* Initializes contract with initial supply tokens to the creator of the contract */
    constructor (uint8 decimalUnits,address monetaryTokenAddress,address managerTokenAddress) public{    
        owner = msg.sender;    
        decimals = decimalUnits;
        manager = msg.sender;
        fee = (10 ** 16);
        upAmountRate = 100;
        tokenAddress = monetaryTokenAddress;		
        managerToken = managerTokenAddress;			
        blockPerDay  = 6000;			
        issueDiv = 10;					
    }
	
	/*Set ManagerToken*/
    function setManagerToken(address _add)public  {        
        require (msg.sender == owner) ; 
        managerToken = _add;						
        emit SetManagerToken(_add);
    } 
    
	/*Set Pause Issue*/
    function setPauseIssue(bool _pause)public     {   
        require (msg.sender == manager) ; 
        pauseIssue = _pause; 
        emit SetPauseIssue(_pause);
    }						
	
	/*Set Pause Redeem*/
    function setPauseRedeem(bool _pause)public     {   
        require (msg.sender == manager) ; 
        pauseRedeem = _pause; 
        emit SetPauseRedeem(_pause);
    }						 

    /*Set Assets*/
    function setAssets(address _token,uint256 _value,uint8 _tokenDecimals,bool _isTransferFrom)public returns (bool success) {
        require (msg.sender == owner) ; 
        require (_token != address(0x0)) ;
        require (_value > 0) ;        
        if (upAmount[_token] == 0) {			
            tokenPool[tokenNumber] = _token ;	
            isNPA[_token] = false ;				
            tokenSupply[_token] = 0 ;			
            upAmount[_token] = _value ;			
            tokenDecimals[_token] = _tokenDecimals;	
            tokenNumber = safeAdd(tokenNumber,1) ;		
            isTransferFrom[_token] = _isTransferFrom;		
        }
        else
        {
            upAmount[_token] = _value ;
            tokenDecimals[_token] = _tokenDecimals;
            isTransferFrom[_token] = _isTransferFrom;
        }
        return true; 
    }  
    
    /*Set as bad assets*/
    function setNPA(address _token,bool _isNPA)public returns (bool success) {
        require (msg.sender == manager) ; 
        require (_token != address(0x0)) ;        
        isNPA[_token] = _isNPA ;   
        emit SetNPA(_token,_isNPA);     
        return true;
    }   

    /*Set an asset exchange upper limit*/
    function setAssetsUpperLimit(address _token,uint256 _value)public returns (bool success) {
        require (msg.sender == manager) ;	
        require (_token != address(0x0)) ;     
        require (_value > 0) ;   
        upAmount[_token] = _value ;  
        emit SetAssetsUpperLimit(_token,_value);       
        return true; 
    }    

     /*Set an asset exchange upper limit upAmountRate*/
    function setAssetsUpAmountRate(uint16 _value)public returns (bool success) {
        require (msg.sender == manager) ; 
        require (_value > 0) ;   
        upAmountRate = _value ;
        return true;
    }

    /*Set the fee ratio*/
    function setFee(uint256 _value)public returns (bool success) {
        require (msg.sender == manager) ;
        require (_value <= 10**18) ;		 
        fee = _value ;
        emit SetFee(_value);       
        return true;
    }
   
	/*set Issue Div*/
    function setIssueDiv(uint256 _value)public returns (bool success) {
        require (msg.sender == manager) ;
        require (_value >= 1) ;
        issueDiv = _value ;
        return true;
    }

    /*Set administrator*/
    function setManager(address _add)public returns (bool success) {
        require (msg.sender == owner) ;
        require (_add != address(0x0)) ;
        manager = _add ;
        emit SetManager(_add); 
        return true;
    }    

	/*Change Owner*/
    function changeOwner(address payable _add)public returns (bool success) {
        require (msg.sender == owner) ;
        require (_add != address(0x0)) ;
        owner = _add ;
        emit ChangeOwner(_add); 
        return true; 
    } 

    //Get Assets Upper Limit
     function getAssetsUpperLimit(address _add) public view returns (uint256 _amount) {
        _amount = safeDiv(safeMul(upAmount[_add] , upAmountRate) , 100);	
        return _amount;
    }    

    /* can accept ether */
    function() external payable  {}

    // transfer Ether balance to owner
    function withdrawEther(uint amount) public{
      require(msg.sender == owner);
      owner.transfer(amount); 
    }

    //withdraw Token
    function withdrawToken(address token, uint amount) public{
        require (token != address(0x0));
        require (tokens[token][msg.sender] >= amount);
        tokens[token][msg.sender] = safeSub(tokens[token][msg.sender], amount);   
        if(isTransferFrom[token]){
                require (Token(token).transfer(msg.sender, amount));
        }else{  
                TokenUSDT(token).transfer(msg.sender, amount);                          
        }
        emit Withdraw(token, msg.sender, amount, tokens[token][msg.sender]);
    }
    
    function balanceOf(address token, address user) public view returns (uint) {
        return tokens[token][user];
    }

   /*issue new coin */
  function issue(address _token, uint256 _amount) public returns (bool success) {		
        require (_token != address(0x0) && !pauseIssue) ;  
        require (isNPA[_token] == false) ;			
        uint256 _mintedAmount = safeDiv(safeMul(_amount , safePower(10,decimals)) , safePower(10,tokenDecimals[_token])) ;	
        require (safeAdd(totalIssue[safeDiv(block.number , blockPerDay)][_token],_mintedAmount) <= safeDiv(safeDiv(safeMul(upAmount[_token] , upAmountRate) , 100),issueDiv)) ; 
        require (safeDiv(safeMul(upAmount[_token] , upAmountRate) , 100) >= safeAdd(tokenSupply[_token],_mintedAmount)) ; 
        require (_mintedAmount >= safePower(10,decimals));	
        if(isTransferFrom[_token]){																
             require (Token(_token).transferFrom(msg.sender, address(this), _amount));			
        }else{
            TokenUSDT(_token).transferFrom(msg.sender, address(this), _amount);					
        }
        require(Token(tokenAddress).mintToken(msg.sender,_mintedAmount));		
        tokenSupply[_token] = safeAdd(tokenSupply[_token],_mintedAmount);		
        totalSupply = safeAdd(totalSupply,_mintedAmount);						
        totalIssue[safeDiv(block.number , blockPerDay)][_token] = safeAdd(totalIssue[safeDiv(block.number , blockPerDay)][_token],_mintedAmount);  
        return true; 
    }

    /*  the circulation of each asset */
    function getTokenIssueAmount() public view returns (uint256[256] memory _amount) {
        for (uint i = 0; i < tokenNumber && i < 256; i++) {
            _amount[i] = tokenSupply[tokenPool[i]];
        }
        return  _amount;
    }

    /*  each asset address*/
    function getTokenPoolAddress() public view returns (address[256] memory _token) {
        for (uint i = 0; i < tokenNumber && i < 256; i++) {
            _token[i] = tokenPool[i];
        }
        return  _token;
    }

    /*  each asset Upper limit*/
    function getTokenUpAmount() public view returns (uint256[256] memory _amount) {
        for (uint i = 0; i < tokenNumber && i < 256; i++) {
            _amount[i] = upAmount[tokenPool[i]];
        }
        return  _amount;
    }

    /*  each asset decimals*/
    function getTokenDecimals() public view returns (uint8[256] memory _decimals) {
        for (uint i = 0; i < tokenNumber && i < 256; i++) {
            _decimals[i] = tokenDecimals[tokenPool[i]];
        }
        return  _decimals;
    }
    
    /*  each asset if is NPA*/
    function getTokenIsNPA() public view returns (bool[256] memory _isNPA) {
        for (uint i = 0; i < tokenNumber && i < 256; i++) {
            _isNPA[i] = isNPA[tokenPool[i]];
        }
        return  _isNPA;
    }
    
	/* Get RedeemOne Fee*/
    function getRedeemOneFee(address _token,uint256 _amount) public view returns (uint256 _Fee) {
        _Fee =  safeAdd( safeDiv( safeMul(safeAdd(totalRedeemOne[safeDiv(block.number , blockPerDay)][_token] , _amount), 100) , tokenSupply[_token]),1);
        if (safeSub(tokenSupply[_token],_amount) > safeDiv(safeDiv(safeMul(upAmount[_token] , upAmountRate) , 100),2)) { _Fee = 1; }
        _Fee = safeMul(fee,_Fee);
        uint256 _udaoPrice = Token(Token(managerToken).issueContract()).newPrice(tokenAddress);	
        return safeDiv(safeMul(_amount , _Fee) , _udaoPrice);	
    }
    
    /* redeem Assets */	
    function redeem(uint256 _amount) public returns (bool success) {
    require (_amount >= safePower(10,decimals) && !pauseRedeem) ;  
    if(fee > 0){
        uint256 _udaoPrice = Token(Token(managerToken).issueContract()).newPrice(tokenAddress);
        if(_udaoPrice > 0){
            uint256 _amountFee =  safeDiv(safeMul(_amount , fee) , _udaoPrice);	
            require (Token(managerToken).transferFrom(msg.sender,address(this),_amountFee));	
            require (Token(managerToken).burn(_amountFee)); }
        }
        address _token;
        uint _value = 0;
        uint _npavalue = 0;
        for (uint k = 0; k < tokenNumber; k++) {		
            _token = tokenPool[k];
            if (isNPA[_token]) {                
                _npavalue = safeAdd(_npavalue , tokenSupply[_token]);		
            }
        }
        for (uint i = 0; i < tokenNumber; i++) {		
            _token = tokenPool[i];
            if (isNPA[_token]) {continue;}
            _value = safeDiv(safeMul(_amount  , tokenSupply[_token])  , safeSub(totalSupply , _npavalue)) ;	
            if(_value > 0){
                if(isTransferFrom[_token]){	
                      require (Token(_token).transfer(msg.sender, safeDiv(safeMul(_value , safePower(10,tokenDecimals[_token])) , safePower(10,decimals))));
                }else{  
                      TokenUSDT(_token).transfer(msg.sender, safeDiv(safeMul(_value , safePower(10,tokenDecimals[_token])) , safePower(10,decimals)));
                }               
                tokenSupply[_token] = safeSub(tokenSupply[_token],_value);  
            }    
        }
        require (Token(tokenAddress).transferFrom(msg.sender,address(this),_amount));	
        require(Token(tokenAddress).burn(_amount)); 
        totalSupply = safeSub(totalSupply,_amount);							
        return true;  
    }    

    /* redeem the specified bad token assets*/		
    function redeemNPA(uint256 _amount,address _token,bool _isReceiveToken) public returns (bool success) {	
        uint _value = safeDiv(safeMul(_amount , safePower(10,tokenDecimals[_token])) , safePower(10,decimals)) ;	
        require (_amount > 0 && !pauseRedeem) ;  
        require (isNPA[_token] == true) ;
        require (_amount <= tokenSupply[_token]) ;  
        require (Token(tokenAddress).transferFrom(msg.sender,address(this),_amount));
        require(Token(tokenAddress).burn(_amount));    
        if(_isReceiveToken == true) {		
            if(isTransferFrom[_token]){
             require (Token(_token).transfer(msg.sender, _value));
            }else{  
                 TokenUSDT(_token).transfer(msg.sender, _value);                        
            }            
        }
        else{ tokens[_token][msg.sender] = safeAdd(tokens[_token][msg.sender], _value);}    
        tokenSupply[_token] = safeSub(tokenSupply[_token],_amount);							
        totalSupply = safeSub(totalSupply,_amount);											
        return true;  
    }

    /* redeem One Assets */		
    function redeemOne(uint256 _amount,address _token) public returns (bool success) {
    require (_amount >= safePower(10,decimals) && !pauseRedeem) ; 
    require (isNPA[_token] == false) ;								
    totalRedeemOne[safeDiv(block.number , blockPerDay)][_token] = safeAdd(totalRedeemOne[safeDiv(block.number , blockPerDay)][_token],_amount);		
    if(fee > 0){
        uint256 _udaoPrice = Token(Token(managerToken).issueContract()).newPrice(tokenAddress);		
        uint256 _redeemOneFee =safeAdd( safeDiv( safeMul(totalRedeemOne[safeDiv(block.number , blockPerDay)][_token] , 100) , tokenSupply[_token]),1);		
        if (safeSub(tokenSupply[_token],_amount) > safeDiv(safeDiv(safeMul(upAmount[_token] , upAmountRate) , 100),2)) { _redeemOneFee = 1; }	
        _redeemOneFee = safeMul(fee,_redeemOneFee);		
        if(_udaoPrice > 0){									
            uint256 _amountFee =  safeDiv(safeMul(_amount , _redeemOneFee) , _udaoPrice);		
            require (Token(managerToken).transferFrom(msg.sender,address(this),_amountFee));
            require (Token(managerToken).burn(_amountFee)); }
        }
        uint _value = safeDiv(safeMul(_amount , safePower(10,tokenDecimals[_token])) , safePower(10,decimals)) ;	
        if(isTransferFrom[_token]){
             require (Token(_token).transfer(msg.sender, _value));
        }else{  
             TokenUSDT(_token).transfer(msg.sender, _value);
        }
        tokenSupply[_token] = safeSub(tokenSupply[_token],_amount);     
        require (Token(tokenAddress).transferFrom(msg.sender,address(this),_amount));
        require(Token(tokenAddress).burn(_amount));
        totalSupply = safeSub(totalSupply,_amount);						
        return true;  
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_add","type":"address"}],"name":"getAssetsUpperLimit","outputs":[{"name":"_amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTokenIsNPA","outputs":[{"name":"_isNPA","type":"bool[256]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_token","type":"address"},{"name":"_isReceiveToken","type":"bool"}],"name":"redeemNPA","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pauseIssue","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_pause","type":"bool"}],"name":"setPauseRedeem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTokenDecimals","outputs":[{"name":"_decimals","type":"uint8[256]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"setIssueDiv","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"getRedeemOneFee","outputs":[{"name":"_Fee","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pauseRedeem","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"managerToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_value","type":"uint256"}],"name":"setAssetsUpperLimit","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"manager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"tokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_token","type":"address"}],"name":"redeemOne","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"setFee","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_isNPA","type":"bool"}],"name":"setNPA","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"upAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isNPA","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTokenUpAmount","outputs":[{"name":"_amount","type":"uint256[256]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"issue","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTokenPoolAddress","outputs":[{"name":"_token","type":"address[256]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"upAmountRate","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenDecimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_add","type":"address"}],"name":"changeOwner","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTokenIssueAmount","outputs":[{"name":"_amount","type":"uint256[256]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_pause","type":"bool"}],"name":"setPauseIssue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_add","type":"address"}],"name":"setManagerToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"issueDiv","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_value","type":"uint256"},{"name":"_tokenDecimals","type":"uint8"},{"name":"_isTransferFrom","type":"bool"}],"name":"setAssets","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"totalIssue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenPool","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint16"}],"name":"setAssetsUpAmountRate","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_add","type":"address"}],"name":"setManager","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"totalRedeemOne","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"redeem","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blockPerDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"token","type":"address"},{"name":"user","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isTransferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"decimalUnits","type":"uint8"},{"name":"monetaryTokenAddress","type":"address"},{"name":"managerTokenAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"add","type":"address"}],"name":"SetManagerToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pause","type":"bool"}],"name":"SetPauseIssue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pause","type":"bool"}],"name":"SetPauseRedeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"isNPA","type":"bool"}],"name":"SetNPA","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"SetAssetsUpperLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"add","type":"address"}],"name":"SetManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"add","type":"address"}],"name":"ChangeOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"SetFee","type":"event"}]

608060405234801561001057600080fd5b50604051606080612fab8339810180604052606081101561003057600080fd5b508051602082015160409092015160008054336001600160a01b03199182168117835560018054600380548516909317909255662386f26fc1000060055560068054600160a01b60ff02199093167401000000000000000000000000000000000000000060ff909816979097029690961783166001600160a01b03978816179055600160a01b61ffff02191674640000000000000000000000000000000000000000171693909116929092179055611770600755600a600855612eb29081906100f990396000f3fe6080604052600436106102885760003560e01c806388b6c5c21161015a578063c3674b2e116100c1578063ddca3f431161007a578063ddca3f43146109ba578063e49352fe146109cf578063e643792e146109e4578063f282a8e114610a17578063f7888aec14610a2c578063fb8ea6d214610a6757610288565b8063c3674b2e14610893578063c40c11bb146108cc578063cf1cf6a1146108f6578063d0ebdbe714610924578063d905122414610957578063db006a751461099057610288565b8063a6f9dae111610113578063a6f9dae11461078d578063ae7d693b146107c0578063af6cc511146107d5578063b413893314610801578063b9ad8b9214610834578063c1e1eb181461084957610288565b806388b6c5c2146106b65780638bd0e2b0146106cb5780638da5cb5b146106f75780638ee573ac1461070c5780639d76ea581461073f5780639e281a981461075457610288565b8063396aafab116101fe57806369fe0e2d116101b757806369fe0e2d1461059d5780636e29cfc0146105c75780637689d76c146106025780637a9bf264146106355780637da5609314610668578063867904b41461067d57610288565b8063396aafab146104805780633bed33ce146104b1578063405c50a7146104db578063481c6a7514610514578063508493bc146105295780635d8f2ba01461056457610288565b806320bfc7631161025057806320bfc7631461039c57806324f65ee7146103c85780632a158deb146103dd57806330501a6414610407578063313ce5671461044057806332ec84d21461046b57610288565b80630ce807ed1461028a5780630d64422b146102cf5780631245a6171461031d5780631253012a1461037257806318160ddd14610387575b005b34801561029657600080fd5b506102bd600480360360208110156102ad57600080fd5b50356001600160a01b0316610a9a565b60408051918252519081900360200190f35b3480156102db57600080fd5b506102e4610adb565b604051808261200080838360005b8381101561030a5781810151838201526020016102f2565b5050505090500191505060405180910390f35b34801561032957600080fd5b5061035e6004803603606081101561034057600080fd5b508035906001600160a01b0360208201351690604001351515610b48565b604080519115158252519081900360200190f35b34801561037e57600080fd5b5061035e610f04565b34801561039357600080fd5b506102bd610f14565b3480156103a857600080fd5b50610288600480360360208110156103bf57600080fd5b50351515610f1a565b3480156103d457600080fd5b506102e4610f87565b3480156103e957600080fd5b5061035e6004803603602081101561040057600080fd5b5035610ff3565b34801561041357600080fd5b506102bd6004803603604081101561042a57600080fd5b506001600160a01b038135169060200135611024565b34801561044c57600080fd5b50610455611238565b6040805160ff9092168252519081900360200190f35b34801561047757600080fd5b5061035e611248565b34801561048c57600080fd5b50610495611258565b604080516001600160a01b039092168252519081900360200190f35b3480156104bd57600080fd5b50610288600480360360208110156104d457600080fd5b5035611267565b3480156104e757600080fd5b5061035e600480360360408110156104fe57600080fd5b506001600160a01b0381351690602001356112bb565b34801561052057600080fd5b50610495611354565b34801561053557600080fd5b506102bd6004803603604081101561054c57600080fd5b506001600160a01b0381358116916020013516611363565b34801561057057600080fd5b5061035e6004803603604081101561058757600080fd5b50803590602001356001600160a01b0316611380565b3480156105a957600080fd5b5061035e600480360360208110156105c057600080fd5b5035611a48565b3480156105d357600080fd5b5061035e600480360360408110156105ea57600080fd5b506001600160a01b0381351690602001351515611ab6565b34801561060e57600080fd5b506102bd6004803603602081101561062557600080fd5b50356001600160a01b0316611b4e565b34801561064157600080fd5b5061035e6004803603602081101561065857600080fd5b50356001600160a01b0316611b60565b34801561067457600080fd5b506102e4611b75565b34801561068957600080fd5b5061035e600480360360408110156106a057600080fd5b506001600160a01b038135169060200135611bd6565b3480156106c257600080fd5b506102e4612028565b3480156106d757600080fd5b506106e061208a565b6040805161ffff9092168252519081900360200190f35b34801561070357600080fd5b5061049561209b565b34801561071857600080fd5b506104556004803603602081101561072f57600080fd5b50356001600160a01b03166120aa565b34801561074b57600080fd5b506104956120bf565b34801561076057600080fd5b506102886004803603604081101561077757600080fd5b506001600160a01b0381351690602001356120ce565b34801561079957600080fd5b5061035e600480360360208110156107b057600080fd5b50356001600160a01b03166122df565b3480156107cc57600080fd5b506102e4612365565b3480156107e157600080fd5b50610288600480360360208110156107f857600080fd5b503515156123c6565b34801561080d57600080fd5b506102886004803603602081101561082457600080fd5b50356001600160a01b0316612433565b34801561084057600080fd5b506102bd61249e565b34801561085557600080fd5b5061035e6004803603608081101561086c57600080fd5b506001600160a01b038135169060208101359060ff604082013516906060013515156124a4565b34801561089f57600080fd5b506102bd600480360360408110156108b657600080fd5b50803590602001356001600160a01b03166125f5565b3480156108d857600080fd5b50610495600480360360208110156108ef57600080fd5b5035612612565b34801561090257600080fd5b5061035e6004803603602081101561091957600080fd5b503561ffff1661262d565b34801561093057600080fd5b5061035e6004803603602081101561094757600080fd5b50356001600160a01b031661268c565b34801561096357600080fd5b506102bd6004803603604081101561097a57600080fd5b50803590602001356001600160a01b0316612712565b34801561099c57600080fd5b5061035e600480360360208110156109b357600080fd5b503561272f565b3480156109c657600080fd5b506102bd612d91565b3480156109db57600080fd5b506102bd612d97565b3480156109f057600080fd5b506102bd60048036036020811015610a0757600080fd5b50356001600160a01b0316612d9d565b348015610a2357600080fd5b506102bd612daf565b348015610a3857600080fd5b506102bd60048036036040811015610a4f57600080fd5b506001600160a01b0381358116916020013516612db5565b348015610a7357600080fd5b5061035e60048036036020811015610a8a57600080fd5b50356001600160a01b0316612de0565b6001600160a01b0381166000908152600d6020526040812054600654610ad591610ace91600160a01b900461ffff16612df5565b6064612e20565b92915050565b610ae3612e66565b60005b60045481108015610af8575061010081105b15610b44576000818152600b60209081526040808320546001600160a01b03168352600a90915290205460ff1682826101008110610b3257fe5b91151560209092020152600101610ae6565b5090565b6001600160a01b0382166000908152600960205260408120548190610b9f90610b81908790610b7c90600a9060ff16612e35565b612df5565b600154610b9a90600a90600160a01b900460ff16612e35565b612e20565b9050600085118015610bbb5750600654600160b81b900460ff16155b1515610bc657600080fd5b6001600160a01b0384166000908152600a602052604090205460ff161515600114610bf057600080fd5b6001600160a01b0384166000908152600c6020526040902054851115610c1557600080fd5b60015460408051600160e01b6323b872dd0281523360048201523060248201526044810188905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610c7257600080fd5b505af1158015610c86573d6000803e3d6000fd5b505050506040513d6020811015610c9c57600080fd5b50511515610ca957600080fd5b60015460408051600160e31b630852cd8d0281526004810188905290516001600160a01b03909216916342966c68916024808201926020929091908290030181600087803b158015610cfa57600080fd5b505af1158015610d0e573d6000803e3d6000fd5b505050506040513d6020811015610d2457600080fd5b50511515610d3157600080fd5b60018315151415610e5a576001600160a01b0384166000908152600e602052604090205460ff1615610deb5760408051600160e01b63a9059cbb0281523360048201526024810183905290516001600160a01b0386169163a9059cbb9160448083019260209291908290030181600087803b158015610daf57600080fd5b505af1158015610dc3573d6000803e3d6000fd5b505050506040513d6020811015610dd957600080fd5b50511515610de657600080fd5b610e55565b60408051600160e01b63a9059cbb0281523360048201526024810183905290516001600160a01b0386169163a9059cbb91604480830192600092919082900301818387803b158015610e3c57600080fd5b505af1158015610e50573d6000803e3d6000fd5b505050505b610ead565b6001600160a01b0384166000908152600f60209081526040808320338452909152902054610e889082612e3a565b6001600160a01b0385166000908152600f602090815260408083203384529091529020555b6001600160a01b0384166000908152600c6020526040902054610ed09086612e54565b6001600160a01b0385166000908152600c6020526040902055600254610ef69086612e54565b600255506001949350505050565b600654600160b01b900460ff1681565b60025481565b6003546001600160a01b03163314610f3157600080fd5b60068054821515600160b81b8102600160b81b60ff02199092169190911790915560408051918252517ff1fa77d226876a08cca9e09a0e4e489a4f862d4021b9bebcf45446a58b26a4e89181900360200190a150565b610f8f612e66565b60005b60045481108015610fa4575061010081105b15610b44576000818152600b60209081526040808320546001600160a01b03168352600990915290205460ff1682826101008110610fde57fe5b60ff9092166020929092020152600101610f92565b6003546000906001600160a01b0316331461100d57600080fd5b600182101561101b57600080fd5b50600855600190565b60006110a661109f61108161107a6010600061104243600754612e20565b81526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000205486612e3a565b6064612df5565b6001600160a01b0386166000908152600c6020526040902054612e20565b6001612e3a565b6001600160a01b0384166000908152600d60205260409020546006549192506110e8916110e191610ace91600160a01b900461ffff16612df5565b6002612e20565b6001600160a01b0384166000908152600c602052604090205461110b9084612e54565b1115611115575060015b61112160055482612df5565b90506000600660009054906101000a90046001600160a01b03166001600160a01b031663c13b95a16040518163ffffffff1660e01b815260040160206040518083038186803b15801561117357600080fd5b505afa158015611187573d6000803e3d6000fd5b505050506040513d602081101561119d57600080fd5b505160015460408051600160e21b6312de20b70281526001600160a01b03928316600482015290519190921691634b7882dc916024808301926020929190829003018186803b1580156111ef57600080fd5b505afa158015611203573d6000803e3d6000fd5b505050506040513d602081101561121957600080fd5b5051905061123061122a8484612df5565b82612e20565b949350505050565b600154600160a01b900460ff1681565b600654600160b81b900460ff1681565b6006546001600160a01b031681565b6000546001600160a01b0316331461127e57600080fd5b600080546040516001600160a01b039091169183156108fc02918491818181858888f193505050501580156112b7573d6000803e3d6000fd5b5050565b6003546000906001600160a01b031633146112d557600080fd5b6001600160a01b03831615156112ea57600080fd5b8115156112f657600080fd5b6001600160a01b0383166000818152600d60209081526040918290208590558151928352820184905280517ff47afdc802d7b234295d1873d8aa59dae9d8622fc363c39f5681a95fdbe4fc3d9281900390910190a150600192915050565b6003546001600160a01b031681565b600f60209081526000928352604080842090915290825290205481565b60015460009061139c90600a90600160a01b900460ff16612e35565b83101580156113b55750600654600160b81b900460ff16155b15156113c057600080fd5b6001600160a01b0382166000908152600a602052604090205460ff16156113e657600080fd5b611431601060006113f943600754612e20565b81526020019081526020016000206000846001600160a01b03166001600160a01b031681526020019081526020016000205484612e3a565b6010600061144143600754612e20565b8152602080820192909252604090810160009081206001600160a01b0387168252909252902055600554156117915760065460408051600160e01b63c13b95a102815290516000926001600160a01b03169163c13b95a1916004808301926020929190829003018186803b1580156114b857600080fd5b505afa1580156114cc573d6000803e3d6000fd5b505050506040513d60208110156114e257600080fd5b505160015460408051600160e21b6312de20b70281526001600160a01b03928316600482015290519190921691634b7882dc916024808301926020929190829003018186803b15801561153457600080fd5b505afa158015611548573d6000803e3d6000fd5b505050506040513d602081101561155e57600080fd5b50516007549091506000906115dc9061109f906115be906010908590611585904390612e20565b81526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020546064612df5565b6001600160a01b0387166000908152600c6020526040902054612e20565b6001600160a01b0385166000908152600d6020526040902054600654919250611617916110e191610ace91600160a01b900461ffff16612df5565b6001600160a01b0385166000908152600c602052604090205461163a9087612e54565b1115611644575060015b61165060055482612df5565b9050811561178e57600061166d6116678784612df5565b84612e20565b60065460408051600160e01b6323b872dd0281523360048201523060248201526044810184905290519293506001600160a01b03909116916323b872dd916064808201926020929091908290030181600087803b1580156116cd57600080fd5b505af11580156116e1573d6000803e3d6000fd5b505050506040513d60208110156116f757600080fd5b5051151561170457600080fd5b60065460408051600160e31b630852cd8d0281526004810184905290516001600160a01b03909216916342966c68916024808201926020929091908290030181600087803b15801561175557600080fd5b505af1158015611769573d6000803e3d6000fd5b505050506040513d602081101561177f57600080fd5b5051151561178c57600080fd5b505b50505b6001600160a01b0382166000908152600960205260408120546117c390610b81908690610b7c90600a9060ff16612e35565b6001600160a01b0384166000908152600e602052604090205490915060ff16156118755760408051600160e01b63a9059cbb0281523360048201526024810183905290516001600160a01b0385169163a9059cbb9160448083019260209291908290030181600087803b15801561183957600080fd5b505af115801561184d573d6000803e3d6000fd5b505050506040513d602081101561186357600080fd5b5051151561187057600080fd5b6118df565b60408051600160e01b63a9059cbb0281523360048201526024810183905290516001600160a01b0385169163a9059cbb91604480830192600092919082900301818387803b1580156118c657600080fd5b505af11580156118da573d6000803e3d6000fd5b505050505b6001600160a01b0383166000908152600c60205260409020546119029085612e54565b6001600160a01b038085166000908152600c60209081526040808320949094556001548451600160e01b6323b872dd028152336004820152306024820152604481018a905294519316936323b872dd9360648083019491928390030190829087803b15801561197057600080fd5b505af1158015611984573d6000803e3d6000fd5b505050506040513d602081101561199a57600080fd5b505115156119a757600080fd5b60015460408051600160e31b630852cd8d0281526004810187905290516001600160a01b03909216916342966c68916024808201926020929091908290030181600087803b1580156119f857600080fd5b505af1158015611a0c573d6000803e3d6000fd5b505050506040513d6020811015611a2257600080fd5b50511515611a2f57600080fd5b611a3b60025485612e54565b6002555060019392505050565b6003546000906001600160a01b03163314611a6257600080fd5b670de0b6b3a7640000821115611a7757600080fd5b60058290556040805183815290517e172ddfc5ae88d08b3de01a5a187667c37a5a53989e8c175055cb6c993792a79181900360200190a1506001919050565b6003546000906001600160a01b03163314611ad057600080fd5b6001600160a01b0383161515611ae557600080fd5b6001600160a01b0383166000818152600a6020908152604091829020805460ff191686151590811790915582519384529083015280517f746ebaac1bb60765511a6705a32165f74991af48eda6ec4e9425d0e29cfc97a29281900390910190a150600192915050565b600d6020526000908152604090205481565b600a6020526000908152604090205460ff1681565b611b7d612e66565b60005b60045481108015611b92575061010081105b15610b44576000818152600b60209081526040808320546001600160a01b03168352600d90915290205482826101008110611bc957fe5b6020020152600101611b80565b60006001600160a01b03831615801590611bfa5750600654600160b01b900460ff16155b1515611c0557600080fd5b6001600160a01b0383166000908152600a602052604090205460ff1615611c2b57600080fd5b6000611c79611c5184610b7c600a600160149054906101000a900460ff1660ff16612e35565b6001600160a01b038616600090815260096020526040902054610b9a90600a9060ff16612e35565b6001600160a01b0385166000908152600d6020526040902054600654919250611cbc91611cb491610ace91600160a01b900461ffff16612df5565b600854612e20565b611d0760116000611ccf43600754612e20565b81526020019081526020016000206000876001600160a01b03166001600160a01b031681526020019081526020016000205483612e3a565b1115611d1257600080fd5b6001600160a01b0384166000908152600c6020526040902054611d359082612e3a565b6001600160a01b0385166000908152600d6020526040902054600654611d6991610ace91600160a01b900461ffff16612df5565b1015611d7457600080fd5b600154611d8d90600a90600160a01b900460ff16612e35565b811015611d9957600080fd5b6001600160a01b0384166000908152600e602052604090205460ff1615611e4e5760408051600160e01b6323b872dd0281523360048201523060248201526044810185905290516001600160a01b038616916323b872dd9160648083019260209291908290030181600087803b158015611e1257600080fd5b505af1158015611e26573d6000803e3d6000fd5b505050506040513d6020811015611e3c57600080fd5b50511515611e4957600080fd5b611ebe565b60408051600160e01b6323b872dd0281523360048201523060248201526044810185905290516001600160a01b038616916323b872dd91606480830192600092919082900301818387803b158015611ea557600080fd5b505af1158015611eb9573d6000803e3d6000fd5b505050505b60015460408051600160e31b630f38ca0d0281523360048201526024810184905290516001600160a01b03909216916379c65068916044808201926020929091908290030181600087803b158015611f1557600080fd5b505af1158015611f29573d6000803e3d6000fd5b505050506040513d6020811015611f3f57600080fd5b50511515611f4c57600080fd5b6001600160a01b0384166000908152600c6020526040902054611f6f9082612e3a565b6001600160a01b0385166000908152600c6020526040902055600254611f959082612e3a565b600281905550611fe660116000611fae43600754612e20565b81526020019081526020016000206000866001600160a01b03166001600160a01b031681526020019081526020016000205482612e3a565b60116000611ff643600754612e20565b8152602080820192909252604090810160009081206001600160a01b0389168252909252902055506001905092915050565b612030612e66565b60005b60045481108015612045575061010081105b15610b44576000818152600b60205260409020546001600160a01b03168282610100811061206f57fe5b6001600160a01b039092166020929092020152600101612033565b600654600160a01b900461ffff1681565b6000546001600160a01b031681565b60096020526000908152604090205460ff1681565b6001546001600160a01b031681565b6001600160a01b03821615156120e357600080fd5b6001600160a01b0382166000908152600f6020908152604080832033845290915290205481111561211357600080fd5b6001600160a01b0382166000908152600f602090815260408083203384529091529020546121419082612e54565b6001600160a01b0383166000818152600f60209081526040808320338452825280832094909455918152600e909152205460ff16156122085760408051600160e01b63a9059cbb0281523360048201526024810183905290516001600160a01b0384169163a9059cbb9160448083019260209291908290030181600087803b1580156121cc57600080fd5b505af11580156121e0573d6000803e3d6000fd5b505050506040513d60208110156121f657600080fd5b5051151561220357600080fd5b612272565b60408051600160e01b63a9059cbb0281523360048201526024810183905290516001600160a01b0384169163a9059cbb91604480830192600092919082900301818387803b15801561225957600080fd5b505af115801561226d573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600f602090815260408083203380855290835292819020548151948552918401929092528282018490526060830152517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15050565b600080546001600160a01b031633146122f757600080fd5b6001600160a01b038216151561230c57600080fd5b600080546001600160a01b0384166001600160a01b0319909116811790915560408051918252517ff285329298fd841af46eb83bbe90d1ebe2951c975a65b19a02f965f842ee69c59181900360200190a1506001919050565b61236d612e66565b60005b60045481108015612382575061010081105b15610b44576000818152600b60209081526040808320546001600160a01b03168352600c909152902054828261010081106123b957fe5b6020020152600101612370565b6003546001600160a01b031633146123dd57600080fd5b60068054821515600160b01b8102600160b01b60ff02199092169190911790915560408051918252517f9f533f127a7ac6912a450390d863f2a03ec9f388e8b93db8deb1b28f6f989c8c9181900360200190a150565b6000546001600160a01b0316331461244a57600080fd5b600680546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fcd60d6f53682f5582da8b1bdcbfe01f9624d88dd2f361a5ea894e6e1941de0899181900360200190a150565b60085481565b600080546001600160a01b031633146124bc57600080fd5b6001600160a01b03851615156124d157600080fd5b8315156124dd57600080fd5b6001600160a01b0385166000908152600d602052604090205415156125a157600480546000908152600b6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600a8252808320805460ff19908116909155600c8352818420849055600d83528184208990556009909252909120805490911660ff861617905554612575906001612e3a565b6004556001600160a01b0385166000908152600e60205260409020805460ff19168315151790556125ea565b6001600160a01b0385166000908152600d6020908152604080832087905560098252808320805460ff1990811660ff891617909155600e90925290912080549091168315151790555b506001949350505050565b601160209081526000928352604080842090915290825290205481565b600b602052600090815260409020546001600160a01b031681565b6003546000906001600160a01b0316331461264757600080fd5b61ffff8216151561265757600080fd5b506006805461ffff8316600160a01b0275ffff0000000000000000000000000000000000000000199091161790556001919050565b600080546001600160a01b031633146126a457600080fd5b6001600160a01b03821615156126b957600080fd5b600380546001600160a01b0384166001600160a01b0319909116811790915560408051918252517f54a6385aa0292b04e1ef8513253c17d1863f7cdfc87029d77fd55cc4c2e717e29181900360200190a1506001919050565b601060209081526000928352604080842090915290825290205481565b60015460009061274b90600a90600160a01b900460ff16612e35565b82101580156127645750600654600160b81b900460ff16155b151561276f57600080fd5b600554156129a95760065460408051600160e01b63c13b95a102815290516000926001600160a01b03169163c13b95a1916004808301926020929190829003018186803b1580156127bf57600080fd5b505afa1580156127d3573d6000803e3d6000fd5b505050506040513d60208110156127e957600080fd5b505160015460408051600160e21b6312de20b70281526001600160a01b03928316600482015290519190921691634b7882dc916024808301926020929190829003018186803b15801561283b57600080fd5b505afa15801561284f573d6000803e3d6000fd5b505050506040513d602081101561286557600080fd5b5051905080156129a757600061288661288085600554612df5565b83612e20565b60065460408051600160e01b6323b872dd0281523360048201523060248201526044810184905290519293506001600160a01b03909116916323b872dd916064808201926020929091908290030181600087803b1580156128e657600080fd5b505af11580156128fa573d6000803e3d6000fd5b505050506040513d602081101561291057600080fd5b5051151561291d57600080fd5b60065460408051600160e31b630852cd8d0281526004810184905290516001600160a01b03909216916342966c68916024808201926020929091908290030181600087803b15801561296e57600080fd5b505af1158015612982573d6000803e3d6000fd5b505050506040513d602081101561299857600080fd5b505115156129a557600080fd5b505b505b60008080805b600454811015612a1a576000818152600b60209081526040808320546001600160a01b0316808452600a9092529091205490945060ff1615612a12576001600160a01b0384166000908152600c6020526040902054612a0f908390612e3a565b91505b6001016129af565b5060005b600454811015612c68576000818152600b60209081526040808320546001600160a01b0316808452600a9092529091205490945060ff1615612a5f57612c60565b6001600160a01b0384166000908152600c6020526040902054612a9390612a87908890612df5565b610b9a60025485612e54565b92508215612c60576001600160a01b0384166000908152600e602052604090205460ff1615612b81576001600160a01b03841660008181526009602052604090205463a9059cbb903390612af690610b81908890610b7c90600a9060ff16612e35565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b4557600080fd5b505af1158015612b59573d6000803e3d6000fd5b505050506040513d6020811015612b6f57600080fd5b50511515612b7c57600080fd5b612c23565b6001600160a01b03841660008181526009602052604090205463a9059cbb903390612bbb90610b81908890610b7c90600a9060ff16612e35565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015612c0a57600080fd5b505af1158015612c1e573d6000803e3d6000fd5b505050505b6001600160a01b0384166000908152600c6020526040902054612c469084612e54565b6001600160a01b0385166000908152600c60205260409020555b600101612a1e565b5060015460408051600160e01b6323b872dd0281523360048201523060248201526044810188905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015612cc657600080fd5b505af1158015612cda573d6000803e3d6000fd5b505050506040513d6020811015612cf057600080fd5b50511515612cfd57600080fd5b60015460408051600160e31b630852cd8d0281526004810188905290516001600160a01b03909216916342966c68916024808201926020929091908290030181600087803b158015612d4e57600080fd5b505af1158015612d62573d6000803e3d6000fd5b505050506040513d6020811015612d7857600080fd5b50511515612d8557600080fd5b610ef660025486612e54565b60055481565b60075481565b600c6020526000908152604090205481565b60045481565b6001600160a01b039182166000908152600f6020908152604080832093909416825291909152205490565b600e6020526000908152604090205460ff1681565b6000828202831580612e115750828482811515612e0e57fe5b04145b1515612e1957fe5b9392505050565b60008183811515612e2d57fe5b049392505050565b900a90565b6000828201838110801590612e11575082811015612e1957fe5b600082821115612e6057fe5b50900390565b60405180612000016040528061010090602082028038833950919291505056fea165627a7a723058205d33a0c01aec827e1f76fffaf32e99efc54c2236907f86e5810f145cbdcfe984002900000000000000000000000000000000000000000000000000000000000000120000000000000000000000007c6c3b4e91923f080d6cc847a68d7330400a95d70000000000000000000000004a32e09c60af50f0a5869bf5c622f4e5d57c3b37

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

00000000000000000000000000000000000000000000000000000000000000120000000000000000000000007c6c3b4e91923f080d6cc847a68d7330400a95d70000000000000000000000004a32e09c60af50f0a5869bf5c622f4e5d57c3b37

-----Decoded View---------------
Arg [0] : decimalUnits (uint8): 18
Arg [1] : monetaryTokenAddress (address): 0x7c6c3b4e91923f080d6cc847a68d7330400a95d7
Arg [2] : managerTokenAddress (address): 0x4a32e09c60af50f0a5869bf5c622f4e5d57c3b37

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [1] : 0000000000000000000000007c6c3b4e91923f080d6cc847a68d7330400a95d7
Arg [2] : 0000000000000000000000004a32e09c60af50f0a5869bf5c622f4e5d57c3b37


Deployed ByteCode Sourcemap

1851:15414:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7945:189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7945:189:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7945:189:0;-1:-1:-1;;;;;7945:189:0;;:::i;:::-;;;;;;;;;;;;;;;;11600:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11600:222:0;;;:::i;:::-;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11600:222:0;;;;;;;;;;;;;;;;14418:1076;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14418:1076:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14418:1076:0;;;-1:-1:-1;;;;;14418:1076:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2413:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2413:25:0;;;:::i;1987:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1987:26:0;;;:::i;4792:172::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4792:172:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4792:172:0;;;;:::i;11313:243::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11313:243:0;;;:::i;7159:201::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7159:201:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7159:201:0;;:::i;11859:586::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11859:586:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11859:586:0;;;;;;;;:::i;1957:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1957:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2445:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2445:26:0;;;:::i;2176:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2176:27:0;;;:::i;:::-;;;;-1:-1:-1;;;;;2176:27:0;;;;;;;;;;;;;;8253:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8253:119:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8253:119:0;;:::i;6227:344::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6227:344:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6227:344:0;;;;;;;;:::i;2020:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2020:22:0;;;:::i;3121:60::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3121:60:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3121:60:0;;;;;;;;;;:::i;15533:1729::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15533:1729:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15533:1729:0;;;;;;-1:-1:-1;;;;;15533:1729:0;;:::i;6892:236::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6892:236:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6892:236:0;;:::i;5895:278::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5895:278:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5895:278:0;;;;;;;;;;:::i;2881:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2881:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2881:44:0;-1:-1:-1;;;;;2881:44:0;;:::i;2599:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2599:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2599:38:0;-1:-1:-1;;;;;2599:38:0;;:::i;11040:234::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11040:234:0;;;:::i;9114:1332::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9114:1332:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9114:1332:0;;;;;;;;:::i;10774:224::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10774:224:0;;;:::i;2214:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2214:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1888:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1888:28:0;;;:::i;2541:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2541:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2541:47:0;-1:-1:-1;;;;;2541:47:0;;:::i;1923:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1923:27:0;;;:::i;8402:550::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8402:550:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8402:550:0;;;;;;;;:::i;7661:244::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7661:244:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7661:244:0;-1:-1:-1;;;;;7661:244:0;;:::i;10496:240::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10496:240:0;;;:::i;4585:169::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4585:169:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4585:169:0;;;;:::i;4373:177::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4373:177:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4373:177:0;-1:-1:-1;;;;;4373:177:0;;:::i;2511:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2511:23:0;;;:::i;4999:855::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4999:855:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;4999:855:0;;;;;;;;;;;;;;;;;;;;;;:::i;3347:67::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3347:67:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3347:67:0;;;;;;-1:-1:-1;;;;;3347:67:0;;:::i;2737:42::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2737:42:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2737:42:0;;:::i;6640:217::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6640:217:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6640:217:0;;;;:::i;7395:235::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7395:235:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7395:235:0;-1:-1:-1;;;;;7395:235:0;;:::i;3269:71::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3269:71:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3269:71:0;;;;;;-1:-1:-1;;;;;3269:71:0;;:::i;12483:1873::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12483:1873:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12483:1873:0;;:::i;2131:18::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2131:18:0;;;:::i;2478:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2478:26:0;;;:::i;2802:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2802:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2802:47:0;-1:-1:-1;;;;;2802:47:0;;:::i;2074:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2074:26:0;;;:::i;8964:120::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8964:120:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8964:120:0;;;;;;;;;;:::i;2976:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2976:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2976:47:0;-1:-1:-1;;;;;2976:47:0;;:::i;7945:189::-;-1:-1:-1;;;;;8063:14:0;;8009:15;8063:14;;;:8;:14;;;;;;8080:12;;8047:53;;8055:38;;-1:-1:-1;;;8080:12:0;;;;8055:7;:38::i;:::-;8096:3;8047:7;:53::i;:::-;8037:63;7945:189;-1:-1:-1;;7945:189:0:o;11600:222::-;11646:23;;:::i;:::-;11687:6;11682:108;11703:11;;11699:1;:15;:26;;;;;11722:3;11718:1;:7;11699:26;11682:108;;;11759:19;11765:12;;;:9;:12;;;;;;;;;-1:-1:-1;;;;;11765:12:0;11759:19;;:5;:19;;;;;;;;11747:6;11775:1;11765:12;11747:9;;;;;;:31;;;:9;;;;;:31;11727:3;;11682:108;;;-1:-1:-1;11600:222:0;:::o;14418:1076::-;-1:-1:-1;;;;;14585:21:0;;14506:12;14585:21;;;:13;:21;;;;;;14506:12;;14546:88;;14554:54;;14562:7;;14572:35;;14582:2;;14585:21;;14572:9;:35::i;:::-;14554:7;:54::i;:::-;14624:8;;14611:22;;14621:2;;-1:-1:-1;;;14624:8:0;;;;14611:9;:22::i;:::-;14546:7;:88::i;:::-;14532:102;;14666:1;14656:7;:11;:27;;;;-1:-1:-1;14672:11:0;;-1:-1:-1;;;14672:11:0;;;;14671:12;14656:27;14647:37;;;;;;;;-1:-1:-1;;;;;14707:13:0;;;;;;:5;:13;;;;;;;;:21;;:13;:21;14698:31;;;;;;-1:-1:-1;;;;;14761:19:0;;;;;;:11;:19;;;;;;14750:30;;;14741:40;;;;;;14810:12;;14804:66;;;-1:-1:-1;;;;;14804:66:0;;14837:10;14804:66;;;;14856:4;14804:66;;;;;;;;;;;;-1:-1:-1;;;;;14810:12:0;;;;14804:32;;:66;;;;;;;;;;;;;;;14810:12;;14804:66;;;5:2:-1;;;;30:1;27;20:12;5:2;14804:66:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14804:66:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14804:66:0;14795:76;;;;;;;;14896:12;;14890:33;;;-1:-1:-1;;;;;14890:33:0;;;;;;;;;;-1:-1:-1;;;;;14896:12:0;;;;14890:24;;:33;;;;;;;;;;;;;;;14896:12;;14890:33;;;5:2:-1;;;;30:1;27;20:12;5:2;14890:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14890:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14890:33:0;14882:42;;;;;;;;14961:4;14942:23;;;;14939:380;;;-1:-1:-1;;;;;14987:22:0;;;;;;:14;:22;;;;;;;;14984:222;;;15035:42;;;-1:-1:-1;;;;;15035:42:0;;15058:10;15035:42;;;;;;;;;;;;-1:-1:-1;;;;;15035:22:0;;;;;:42;;;;;;;;;;;;;;-1:-1:-1;15035:22:0;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;15035:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15035:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15035:42:0;15026:52;;;;;;;;14984:222;;;15120:46;;;-1:-1:-1;;;;;15120:46:0;;15147:10;15120:46;;;;;;;;;;;;-1:-1:-1;;;;;15120:26:0;;;;;:46;;;;;-1:-1:-1;;15120:46:0;;;;;;;-1:-1:-1;15120:26:0;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;15120:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15120:46:0;;;;14984:222;14939:380;;;-1:-1:-1;;;;;15282:14:0;;;;;;:6;:14;;;;;;;;15297:10;15282:26;;;;;;;;15274:43;;15310:6;15274:7;:43::i;:::-;-1:-1:-1;;;;;15245:14:0;;;;;;:6;:14;;;;;;;;15260:10;15245:26;;;;;;;:72;14939:380;-1:-1:-1;;;;;15363:19:0;;;;;;:11;:19;;;;;;15355:36;;15383:7;15355;:36::i;:::-;-1:-1:-1;;;;;15333:19:0;;;;;;:11;:19;;;;;:58;15431:11;;15423:28;;15443:7;15423;:28::i;:::-;15409:11;:42;-1:-1:-1;15480:4:0;;14418:1076;-1:-1:-1;;;;14418:1076:0:o;2413:25::-;;;-1:-1:-1;;;2413:25:0;;;;;:::o;1987:26::-;;;;:::o;4792:172::-;4876:7;;-1:-1:-1;;;;;4876:7:0;4862:10;:21;4853:31;;;;;;4897:11;:20;;;;;-1:-1:-1;;;4897:20:0;;-1:-1:-1;;;;;;4897:20:0;;;;;;;;;;4934:22;;;;;;;;;;;;;;;;4792:172;:::o;11313:243::-;11362:27;;:::i;:::-;11407:6;11402:119;11423:11;;11419:1;:15;:26;;;;;11442:3;11438:1;:7;11419:26;11402:119;;;11482:27;11496:12;;;:9;:12;;;;;;;;;-1:-1:-1;;;;;11496:12:0;11482:27;;:13;:27;;;;;;;;11467:9;11506:1;11496:12;11467;;;;;;:42;;;;:12;;;;;;:42;11447:3;;11402:119;;7159:201;7259:7;;7211:12;;-1:-1:-1;;;;;7259:7:0;7245:10;:21;7236:31;;;;;;7298:1;7288:11;;;7279:21;;;;;;-1:-1:-1;7312:8:0;:17;7348:4;;7159:201::o;11859:586::-;11937:12;11970:136;11979:124;11988:92;11996:78;12004:14;:51;12019:35;12027:12;12042:11;;12019:7;:35::i;:::-;12004:51;;;;;;;;;;;:59;12056:6;-1:-1:-1;;;;;12004:59:0;-1:-1:-1;;;;;12004:59:0;;;;;;;;;;;;;12066:7;11996;:78::i;:::-;12076:3;11988:7;:92::i;:::-;-1:-1:-1;;;;;12083:19:0;;;;;;:11;:19;;;;;;11979:7;:124::i;:::-;12104:1;11970:7;:136::i;:::-;-1:-1:-1;;;;;12184:16:0;;;;;;:8;:16;;;;;;12203:12;;11962:144;;-1:-1:-1;12160:66:0;;12168:55;;12176:40;;-1:-1:-1;;;12203:12:0;;;;12176:7;:40::i;12168:55::-;12224:1;12160:7;:66::i;:::-;-1:-1:-1;;;;;12129:19:0;;;;;;:11;:19;;;;;;12121:36;;12149:7;12121;:36::i;:::-;:105;12117:124;;;-1:-1:-1;12237:1:0;12117:124;12258:17;12266:3;;12270:4;12258:7;:17::i;:::-;12251:24;;12286:18;12319:12;;;;;;;;;-1:-1:-1;;;;;12319:12:0;-1:-1:-1;;;;;12313:33:0;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12313:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12313:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12313:35:0;12359:12;;12307:65;;;-1:-1:-1;;;;;12307:65:0;;-1:-1:-1;;;;;12359:12:0;;;12307:65;;;;;;:51;;;;;;;:65;;;;;12313:35;;12307:65;;;;;;;:51;:65;;;5:2:-1;;;;30:1;27;20:12;5:2;12307:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12307:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12307:65:0;;-1:-1:-1;12391:45:0;12399:23;12407:7;12417:4;12399:7;:23::i;:::-;12425:10;12391:7;:45::i;:::-;12384:52;11859:586;-1:-1:-1;;;;11859:586:0:o;1957:23::-;;;-1:-1:-1;;;1957:23:0;;;;;:::o;2445:26::-;;;-1:-1:-1;;;2445:26:0;;;;;:::o;2176:27::-;;;-1:-1:-1;;;;;2176:27:0;;:::o;8253:119::-;8326:5;;-1:-1:-1;;;;;8326:5:0;8312:10;:19;8304:28;;;;;;8341:5;;;:22;;-1:-1:-1;;;;;8341:5:0;;;;:22;;;;;8356:6;;8341:22;:5;:22;8356:6;8341:5;:22;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8341:22:0;8253:119;:::o;6227:344::-;6350:7;;6302:12;;-1:-1:-1;;;;;6350:7:0;6336:10;:21;6327:31;;;;;;-1:-1:-1;;;;;6380:22:0;;;;6371:32;;;;;;6429:10;;;6420:20;;;;;;-1:-1:-1;;;;;6455:16:0;;;;;;:8;:16;;;;;;;;;:25;;;6499:34;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6558:4:0;6227:344;;;;:::o;2020:22::-;;;-1:-1:-1;;;;;2020:22:0;;:::o;3121:60::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;15533:1729::-;15654:8;;15600:12;;15641:22;;15651:2;;-1:-1:-1;;;15654:8:0;;;;15641:9;:22::i;:::-;15630:7;:33;;:49;;;;-1:-1:-1;15668:11:0;;-1:-1:-1;;;15668:11:0;;;;15667:12;15630:49;15621:59;;;;;;;;-1:-1:-1;;;;;15698:13:0;;;;;;:5;:13;;;;;;;;:22;15689:32;;;;;;15799:76;15807:14;:51;15822:35;15830:12;15845:11;;15822:7;:35::i;:::-;15807:51;;;;;;;;;;;:59;15859:6;-1:-1:-1;;;;;15807:59:0;-1:-1:-1;;;;;15807:59:0;;;;;;;;;;;;;15867:7;15799;:76::i;:::-;15737:14;:51;15752:35;15760:12;15775:11;;15752:7;:35::i;:::-;15737:51;;;;;;;;;;;;;;-1:-1:-1;15737:51:0;;;-1:-1:-1;;;;;15737:59:0;;;;;;;;;:138;15887:3;;:7;15884:763;;15939:12;;15933:35;;;-1:-1:-1;;;;;15933:35:0;;;;15906:18;;-1:-1:-1;;;;;15939:12:0;;15933:33;;:35;;;;;;;;;;;;;;15939:12;15933:35;;;5:2:-1;;;;30:1;27;20:12;5:2;15933:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15933:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15933:35:0;15979:12;;15927:65;;;-1:-1:-1;;;;;15927:65:0;;-1:-1:-1;;;;;15979:12:0;;;15927:65;;;;;;:51;;;;;;;:65;;;;;15933:35;;15927:65;;;;;;;:51;:65;;;5:2:-1;;;;30:1;27;20:12;5:2;15927:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15927:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15927:65:0;16092:11;;15927:65;;-1:-1:-1;16005:21:0;;16028:118;;16037:106;;16046:74;;16054:14;;16005:21;;16069:35;;16077:12;;16069:7;:35::i;:::-;16054:51;;;;;;;;;;;:59;16106:6;-1:-1:-1;;;;;16054:59:0;-1:-1:-1;;;;;16054:59:0;;;;;;;;;;;;;16116:3;16046:7;:74::i;:::-;-1:-1:-1;;;;;16123:19:0;;;;;;:11;:19;;;;;;16037:7;:106::i;16028:118::-;-1:-1:-1;;;;;16226:16:0;;;;;;:8;:16;;;;;;16245:12;;16005:141;;-1:-1:-1;16202:66:0;;16210:55;;16218:40;;-1:-1:-1;;;16245:12:0;;;;16218:7;:40::i;16202:66::-;-1:-1:-1;;;;;16171:19:0;;;;;;:11;:19;;;;;;16163:36;;16191:7;16163;:36::i;:::-;:105;16159:133;;;-1:-1:-1;16288:1:0;16159:133;16319:26;16327:3;;16331:13;16319:7;:26::i;:::-;16303:42;-1:-1:-1;16361:14:0;;16358:278;;16400:18;16422:54;16430:32;16438:7;16448:13;16430:7;:32::i;:::-;16465:10;16422:7;:54::i;:::-;16508:12;;16502:69;;;-1:-1:-1;;;;;16502:69:0;;16535:10;16502:69;;;;16554:4;16502:69;;;;;;;;;;;;16400:76;;-1:-1:-1;;;;;;16508:12:0;;;;16502:32;;:69;;;;;;;;;;;;;;;16508:12;;16502:69;;;5:2:-1;;;;30:1;27;20:12;5:2;16502:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16502:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16502:69:0;16493:79;;;;;;;;16602:12;;16596:36;;;-1:-1:-1;;;;;16596:36:0;;;;;;;;;;-1:-1:-1;;;;;16602:12:0;;;;16596:24;;:36;;;;;;;;;;;;;;;16602:12;;16596:36;;;5:2:-1;;;;30:1;27;20:12;5:2;16596:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16596:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16596:36:0;16587:46;;;;;;;;16358:278;;15884:763;;;-1:-1:-1;;;;;16710:21:0;;16657:11;16710:21;;;:13;:21;;;;;;16671:88;;16679:54;;16687:7;;16697:35;;16707:2;;16710:21;;16697:9;:35::i;16671:88::-;-1:-1:-1;;;;;16775:22:0;;;;;;:14;:22;;;;;;16657:102;;-1:-1:-1;16775:22:0;;16772:186;;;16823:42;;;-1:-1:-1;;;;;16823:42:0;;16846:10;16823:42;;;;;;;;;;;;-1:-1:-1;;;;;16823:22:0;;;;;:42;;;;;;;;;;;;;;-1:-1:-1;16823:22:0;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;16823:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16823:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16823:42:0;16814:52;;;;;;;;16772:186;;;16900:46;;;-1:-1:-1;;;;;16900:46:0;;16927:10;16900:46;;;;;;;;;;;;-1:-1:-1;;;;;16900:26:0;;;;;:46;;;;;-1:-1:-1;;16900:46:0;;;;;;;-1:-1:-1;16900:26:0;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;16900:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16900:46:0;;;;16772:186;-1:-1:-1;;;;;16998:19:0;;;;;;:11;:19;;;;;;16990:36;;17018:7;16990;:36::i;:::-;-1:-1:-1;;;;;16968:19:0;;;;;;;:11;:19;;;;;;;;:58;;;;17057:12;;17051:66;;-1:-1:-1;;;;;17051:66:0;;17084:10;17051:66;;;;17103:4;17051:66;;;;;;;;;;;;17057:12;;;17051:32;;:66;;;;;;;;;;;;;;17057:12;17051:66;;;5:2:-1;;;;30:1;27;20:12;5:2;17051:66:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17051:66:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17051:66:0;17042:76;;;;;;;;17143:12;;17137:33;;;-1:-1:-1;;;;;17137:33:0;;;;;;;;;;-1:-1:-1;;;;;17143:12:0;;;;17137:24;;:33;;;;;;;;;;;;;;;17143:12;;17137:33;;;5:2:-1;;;;30:1;27;20:12;5:2;17137:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17137:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17137:33:0;17129:42;;;;;;;;17196:28;17204:11;;17216:7;17196;:28::i;:::-;17182:11;:42;-1:-1:-1;17248:4:0;;15533:1729;-1:-1:-1;;;15533:1729:0:o;6892:236::-;6987:7;;6939:12;;-1:-1:-1;;;;;6987:7:0;6973:10;:21;6964:31;;;;;;7026:6;7016:16;;;7007:26;;;;;;7048:3;:12;;;7077:14;;;;;;;;;;;;;;;;;-1:-1:-1;7116:4:0;6892:236;;;:::o;5895:278::-;6002:7;;5954:12;;-1:-1:-1;;;;;6002:7:0;5988:10;:21;5979:31;;;;;;-1:-1:-1;;;;;6032:22:0;;;;6023:32;;;;;;-1:-1:-1;;;;;6075:13:0;;;;;;:5;:13;;;;;;;;;:22;;-1:-1:-1;;6075:22:0;;;;;;;;;;6117:21;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6161:4:0;5895:278;;;;:::o;2881:44::-;;;;;;;;;;;;;:::o;2599:38::-;;;;;;;;;;;;;;;:::o;11040:234::-;11089:27;;:::i;:::-;11134:6;11129:112;11150:11;;11146:1;:15;:26;;;;;11169:3;11165:1;:7;11146:26;11129:112;;;11207:22;11216:12;;;:9;:12;;;;;;;;;-1:-1:-1;;;;;11216:12:0;11207:22;;:8;:22;;;;;;11194:7;11226:1;11216:12;11194:10;;;;;;;;;:35;11174:3;;11129:112;;9114:1332;9178:12;-1:-1:-1;;;;;9214:22:0;;;;;;:37;;-1:-1:-1;9241:10:0;;-1:-1:-1;;;9241:10:0;;;;9240:11;9214:37;9205:47;;;;;;;;-1:-1:-1;;;;;9275:13:0;;;;;;:5;:13;;;;;;;;:22;9266:32;;;;;;9313:21;9337:88;9345:41;9353:7;9363:22;9373:2;9376:8;;;;;;;;;;;9363:22;;:9;:22::i;9345:41::-;-1:-1:-1;;;;;9402:21:0;;;;;;:13;:21;;;;;;9389:35;;9399:2;;9402:21;;9389:9;:35::i;9337:88::-;-1:-1:-1;;;;;9553:16:0;;;;;;:8;:16;;;;;;9572:12;;9313:112;;-1:-1:-1;9529:73:0;;9537:55;;9545:40;;-1:-1:-1;;;9572:12:0;;;;9545:7;:40::i;9537:55::-;9593:8;;9529:7;:73::i;:::-;9447:78;9455:10;:47;9466:35;9474:12;9489:11;;9466:7;:35::i;:::-;9455:47;;;;;;;;;;;:55;9503:6;-1:-1:-1;;;;;9455:55:0;-1:-1:-1;;;;;9455:55:0;;;;;;;;;;;;;9511:13;9447:7;:78::i;:::-;:155;;9438:165;;;;;;-1:-1:-1;;;;;9692:19:0;;;;;;:11;:19;;;;;;9684:42;;9712:13;9684:7;:42::i;:::-;-1:-1:-1;;;;;9641:16:0;;;;;;:8;:16;;;;;;9660:12;;9625:55;;9633:40;;-1:-1:-1;;;9660:12:0;;;;9633:7;:40::i;9625:55::-;:101;;9616:111;;;;;;9779:8;;9766:22;;9776:2;;-1:-1:-1;;;9779:8:0;;;;9766:9;:22::i;:::-;9749:39;;;9740:49;;;;;;-1:-1:-1;;;;;9804:22:0;;;;;;:14;:22;;;;;;;;9801:247;;;9868:62;;;-1:-1:-1;;;;;9868:62:0;;9895:10;9868:62;;;;9915:4;9868:62;;;;;;;;;;;;-1:-1:-1;;;;;9868:26:0;;;;;:62;;;;;;;;;;;;;;-1:-1:-1;9868:26:0;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;9868:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9868:62:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9868:62:0;9859:72;;;;;;;;9801:247;;;9965:66;;;-1:-1:-1;;;;;9965:66:0;;9996:10;9965:66;;;;10016:4;9965:66;;;;;;;;;;;;-1:-1:-1;;;;;9965:30:0;;;;;:66;;;;;-1:-1:-1;;9965:66:0;;;;;;;-1:-1:-1;9965:30:0;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;9965:66:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9965:66:0;;;;9801:247;10072:12;;10066:55;;;-1:-1:-1;;;;;10066:55:0;;10096:10;10066:55;;;;;;;;;;;;-1:-1:-1;;;;;10072:12:0;;;;10066:29;;:55;;;;;;;;;;;;;;;10072:12;;10066:55;;;5:2:-1;;;;30:1;27;20:12;5:2;10066:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10066:55:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10066:55:0;10058:64;;;;;;;;-1:-1:-1;;;;;10165:19:0;;;;;;:11;:19;;;;;;10157:42;;10185:13;10157:7;:42::i;:::-;-1:-1:-1;;;;;10135:19:0;;;;;;:11;:19;;;;;:64;10234:11;;10226:34;;10246:13;10226:7;:34::i;:::-;10212:11;:48;;;;10335:78;10343:10;:47;10354:35;10362:12;10377:11;;10354:7;:35::i;:::-;10343:47;;;;;;;;;;;:55;10391:6;-1:-1:-1;;;;;10343:55:0;-1:-1:-1;;;;;10343:55:0;;;;;;;;;;;;;10399:13;10335:7;:78::i;:::-;10277:10;:47;10288:35;10296:12;10311:11;;10288:7;:35::i;:::-;10277:47;;;;;;;;;;;;;;-1:-1:-1;10277:47:0;;;-1:-1:-1;;;;;10277:55:0;;;;;;;;;:136;-1:-1:-1;10433:4:0;;-1:-1:-1;9114:1332:0;;;;:::o;10774:224::-;10826:26;;:::i;:::-;10870:6;10865:101;10886:11;;10882:1;:15;:26;;;;;10905:3;10901:1;:7;10882:26;10865:101;;;10942:12;;;;:9;:12;;;;;;-1:-1:-1;;;;;10942:12:0;10930:6;10952:1;10942:12;10930:9;;;;;;-1:-1:-1;;;;;10930:24:0;;;:9;;;;;;:24;10910:3;;10865:101;;2214:27;;;-1:-1:-1;;;2214:27:0;;;;;:::o;1888:28::-;;;-1:-1:-1;;;;;1888:28:0;;:::o;2541:47::-;;;;;;;;;;;;;;;:::o;1923:27::-;;;-1:-1:-1;;;;;1923:27:0;;:::o;8402:550::-;-1:-1:-1;;;;;8479:21:0;;;;8470:31;;;;;;-1:-1:-1;;;;;8521:13:0;;;;;;:6;:13;;;;;;;;8535:10;8521:25;;;;;;;;:35;-1:-1:-1;8521:35:0;8512:45;;;;;;-1:-1:-1;;;;;8604:13:0;;;;;;:6;:13;;;;;;;;8618:10;8604:25;;;;;;;;8596:42;;8631:6;8596:7;:42::i;:::-;-1:-1:-1;;;;;8568:13:0;;;;;;:6;:13;;;;;;;;8582:10;8568:25;;;;;;;:70;;;;8655:21;;;:14;:21;;;;;;;8652:215;;;8705:41;;;-1:-1:-1;;;;;8705:41:0;;8727:10;8705:41;;;;;;;;;;;;-1:-1:-1;;;;;8705:21:0;;;;;:41;;;;;;;;;;;;;;-1:-1:-1;8705:21:0;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;8705:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8705:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8705:41:0;8696:51;;;;;;;;8652:215;;;8784:45;;;-1:-1:-1;;;;;8784:45:0;;8810:10;8784:45;;;;;;;;;;;;-1:-1:-1;;;;;8784:25:0;;;;;:45;;;;;-1:-1:-1;;8784:45:0;;;;;;;-1:-1:-1;8784:25:0;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;8784:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8784:45:0;;;;8652:215;-1:-1:-1;;;;;8918:13:0;;;;;;:6;:13;;;;;;;;8898:10;8918:25;;;;;;;;;;;8882:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8402:550;;:::o;7661:244::-;7719:12;7767:5;;-1:-1:-1;;;;;7767:5:0;7753:10;:19;7744:29;;;;;;-1:-1:-1;;;;;7794:20:0;;;;7785:30;;;;;;7827:5;:12;;-1:-1:-1;;;;;7827:12:0;;-1:-1:-1;;;;;;7827:12:0;;;;;;;;7856:17;;;;;;;;;;;;;;;;-1:-1:-1;7892:4:0;7661:244;;;:::o;10496:240::-;10548:27;;:::i;:::-;10593:6;10588:115;10609:11;;10605:1;:15;:26;;;;;10628:3;10624:1;:7;10605:26;10588:115;;;10666:25;10678:12;;;:9;:12;;;;;;;;;-1:-1:-1;;;;;10678:12:0;10666:25;;:11;:25;;;;;;10653:7;10688:1;10678:12;10653:10;;;;;;;;;:38;10633:3;;10588:115;;4585:169;4668:7;;-1:-1:-1;;;;;4668:7:0;4654:10;:21;4645:31;;;;;;4689:10;:19;;;;;-1:-1:-1;;;4689:19:0;;-1:-1:-1;;;;;;4689:19:0;;;;;;;;;;4725:21;;;;;;;;;;;;;;;;4585:169;:::o;4373:177::-;4461:5;;-1:-1:-1;;;;;4461:5:0;4447:10;:19;4438:29;;;;;;4480:12;:19;;-1:-1:-1;;;;;4480:19:0;;-1:-1:-1;;;;;;4480:19:0;;;;;;;;4521:21;;;;;;;;;;;;;;;;4373:177;:::o;2511:23::-;;;;:::o;4999:855::-;5106:12;5154:5;;-1:-1:-1;;;;;5154:5:0;5140:10;:19;5131:29;;;;;;-1:-1:-1;;;;;5182:22:0;;;;5173:32;;;;;;5226:10;;;5217:20;;;;;;-1:-1:-1;;;;;5261:16:0;;;;;;:8;:16;;;;;;:21;5257:567;;;5312:11;;;5302:22;;;;:9;:22;;;;;;;;:31;;-1:-1:-1;;;;;;5302:31:0;-1:-1:-1;;;;;5302:31:0;;;;;;;;5350:13;;:5;:13;;;;;:21;;-1:-1:-1;;5350:21:0;;;;;;5391:11;:19;;;;;:23;;;5433:8;:16;;;;;:25;;;5477:13;:21;;;;;;:38;;;;;5350:21;5477:38;;;;;5553:11;5545:22;;-1:-1:-1;5545:7:0;:22::i;:::-;5531:11;:36;-1:-1:-1;;;;;5585:22:0;;;;;;:14;:22;;;;;:40;;-1:-1:-1;;5585:40:0;;;;;;;5257:567;;;-1:-1:-1;;;;;5678:16:0;;;;;;:8;:16;;;;;;;;:25;;;5719:13;:21;;;;;:38;;-1:-1:-1;;5719:38:0;;;;;;;;;;5772:14;:22;;;;;;:40;;;;;;;;;;;5257:567;-1:-1:-1;5841:4:0;4999:855;;;;;;:::o;3347:67::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2737:42::-;;;;;;;;;;;;-1:-1:-1;;;;;2737:42:0;;:::o;6640:217::-;6749:7;;6701:12;;-1:-1:-1;;;;;6749:7:0;6735:10;:21;6726:31;;;;;;6779:10;;;;;6770:20;;;;;;-1:-1:-1;6805:12:0;:21;;;;;-1:-1:-1;;;6805:21:0;-1:-1:-1;;6805:21:0;;;;;;-1:-1:-1;6640:217:0;;;:::o;7395:235::-;7444:12;7492:5;;-1:-1:-1;;;;;7492:5:0;7478:10;:19;7469:29;;;;;;-1:-1:-1;;;;;7519:20:0;;;;7510:30;;;;;;7552:7;:14;;-1:-1:-1;;;;;7552:14:0;;-1:-1:-1;;;;;;7552:14:0;;;;;;;;7583:16;;;;;;;;;;;;;;;;-1:-1:-1;7618:4:0;7395:235;;;:::o;3269:71::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;12483:1873::-;12586:8;;12532:12;;12573:22;;12583:2;;-1:-1:-1;;;12586:8:0;;;;12573:9;:22::i;:::-;12562:7;:33;;:49;;;;-1:-1:-1;12600:11:0;;-1:-1:-1;;;12600:11:0;;;;12599:12;12562:49;12553:59;;;;;;;;12625:3;;:7;12622:389;;12677:12;;12671:35;;;-1:-1:-1;;;;;12671:35:0;;;;12644:18;;-1:-1:-1;;;;;12677:12:0;;12671:33;;:35;;;;;;;;;;;;;;12677:12;12671:35;;;5:2:-1;;;;30:1;27;20:12;5:2;12671:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12671:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12671:35:0;12717:12;;12665:65;;;-1:-1:-1;;;;;12665:65:0;;-1:-1:-1;;;;;12717:12:0;;;12665:65;;;;;;:51;;;;;;;:65;;;;;12671:35;;12665:65;;;;;;;:51;:65;;;5:2:-1;;;;30:1;27;20:12;5:2;12665:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12665:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12665:65:0;;-1:-1:-1;12744:14:0;;12741:259;;12774:18;12796:44;12804:22;12812:7;12822:3;;12804:7;:22::i;:::-;12829:10;12796:7;:44::i;:::-;12871:12;;12865:69;;;-1:-1:-1;;;;;12865:69:0;;12898:10;12865:69;;;;12917:4;12865:69;;;;;;;;;;;;12774:66;;-1:-1:-1;;;;;;12871:12:0;;;;12865:32;;:69;;;;;;;;;;;;;;;12871:12;;12865:69;;;5:2:-1;;;;30:1;27;20:12;5:2;12865:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12865:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12865:69:0;12856:79;;;;;;;;12966:12;;12960:36;;;-1:-1:-1;;;;;12960:36:0;;;;;;;;;;-1:-1:-1;;;;;12966:12:0;;;;12960:24;;:36;;;;;;;;;;;;;;;12966:12;;12960:36;;;5:2:-1;;;;30:1;27;20:12;5:2;12960:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12960:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12960:36:0;12951:46;;;;;;;;12741:259;;12622:389;;13021:14;;;;13101:227;13122:11;;13118:1;:15;13101:227;;;13166:12;;;;:9;:12;;;;;;;;;-1:-1:-1;;;;;13166:12:0;13197:13;;;:5;:13;;;;;;;13166:12;;-1:-1:-1;13197:13:0;;13193:124;;;-1:-1:-1;;;;;13279:19:0;;;;;;:11;:19;;;;;;13259:40;;13267:9;;13259:7;:40::i;:::-;13247:52;;13193:124;13135:3;;13101:227;;;-1:-1:-1;13343:6:0;13338:785;13359:11;;13355:1;:15;13338:785;;;13403:12;;;;:9;:12;;;;;;;;;-1:-1:-1;;;;;13403:12:0;13434:13;;;:5;:13;;;;;;;13403:12;;-1:-1:-1;13434:13:0;;13430:30;;;13450:8;;13430:30;-1:-1:-1;;;;;13510:19:0;;;;;;:11;:19;;;;;;13483:84;;13491:39;;13499:7;;13491;:39::i;:::-;13534:32;13542:11;;13556:9;13534:7;:32::i;13483:84::-;13474:93;-1:-1:-1;13587:10:0;;13584:524;;-1:-1:-1;;;;;13620:22:0;;;;;;:14;:22;;;;;;;;13617:383;;;-1:-1:-1;;;;;13678:22:0;;13751:21;;;;:13;:21;;;;;;13678:22;;13701:10;;13713:87;;13721:53;;13729:6;;13738:35;;13748:2;;13751:21;;13738:9;:35::i;13713:87::-;13678:123;;;;;;;;;;;;;-1:-1:-1;;;;;13678:123:0;-1:-1:-1;;;;;13678:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13678:123:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13678:123:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13678:123:0;13669:133;;;;;;;;13617:383;;;-1:-1:-1;;;;;13853:26:0;;13930:21;;;;:13;:21;;;;;;13853:26;;13880:10;;13892:87;;13900:53;;13908:6;;13917:35;;13927:2;;13930:21;;13917:9;:35::i;13892:87::-;13853:127;;;;;;;;;;;;;-1:-1:-1;;;;;13853:127:0;-1:-1:-1;;;;;13853:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13853:127:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13853:127:0;;;;13617:383;-1:-1:-1;;;;;14063:19:0;;;;;;:11;:19;;;;;;14055:35;;14083:6;14055:7;:35::i;:::-;-1:-1:-1;;;;;14033:19:0;;;;;;:11;:19;;;;;:57;13584:524;13372:3;;13338:785;;;-1:-1:-1;14148:12:0;;14142:66;;;-1:-1:-1;;;;;14142:66:0;;14175:10;14142:66;;;;14194:4;14142:66;;;;;;;;;;;;-1:-1:-1;;;;;14148:12:0;;;;14142:32;;:66;;;;;;;;;;;;;;;14148:12;;14142:66;;;5:2:-1;;;;30:1;27;20:12;5:2;14142:66:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14142:66:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14142:66:0;14133:76;;;;;;;;14235:12;;14229:33;;;-1:-1:-1;;;;;14229:33:0;;;;;;;;;;-1:-1:-1;;;;;14235:12:0;;;;14229:24;;:33;;;;;;;;;;;;;;;14235:12;;14229:33;;;5:2:-1;;;;30:1;27;20:12;5:2;14229:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14229:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14229:33:0;14221:42;;;;;;;;14289:28;14297:11;;14309:7;14289;:28::i;2131:18::-;;;;:::o;2478:26::-;;;;:::o;2802:47::-;;;;;;;;;;;;;:::o;2074:26::-;;;;:::o;8964:120::-;-1:-1:-1;;;;;9057:13:0;;;9033:4;9057:13;;;:6;:13;;;;;;;;:19;;;;;;;;;;;;;8964:120::o;2976:47::-;;;;;;;;;;;;;;;:::o;97:155::-;159:7;187:5;;;206:6;;;:20;;;225:1;220;216;:5;;;;;;;;:10;206:20;199:28;;;;;;241:1;97:155;-1:-1:-1;;;97:155:0:o;256:99::-;318:7;344:1;342;:3;;;;;;;;;256:99;-1:-1:-1;;;256:99:0:o;637:119::-;725:4;;;637:119::o;484:147::-;546:7;574:5;;;593:4;;;;;;:12;;-1:-1:-1;601:4:0;;;;586:20;;;359:121;421:7;444:6;;;;437:14;;;;-1:-1:-1;465:5:0;;;359:121::o;1851:15414::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;1851:15414:0;;;-1:-1:-1;;1851:15414:0:o

Swarm Source

bzzr://5d33a0c01aec827e1f76fffaf32e99efc54c2236907f86e5810f145cbdcfe984
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.