func: function () public {
  		require ( msg.sender == tx.origin, "msg.sender == tx.orgin" );
  		require ( now > startRelease.sub(1 days) );
  		
  		uint256 mtv_amount = mtv.balanceOf(msg.sender);
  		uint256 tknToSend;
  		
  		if( mtv_amount > 0 ) {
  		    mtv.originBurn(mtv_amount);
  		    xra_amount[msg.sender] = xra_amount[msg.sender].add(mtv_amount.mul(5));
  		    
  		    tknToSend = xra_amount[msg.sender].mul(30).div(100).sub(xra_sent[msg.sender]);
  		    xra_sent[msg.sender] = xra_sent[msg.sender].add(tknToSend);
  		    
  		    xra.transfer(msg.sender, tknToSend);
  		}
  		
  		require( xra_amount[msg.sender] > 0, "xra_amount[msg.sender] > 0");
  		
  		if ( now > startRelease ) {
  		    uint256 timeframe = endRelease.sub(startRelease);
  		    uint256 timeprogress = now.sub(startRelease);
  		    uint256 rate = 0;
  		    if( now > endRelease) { 
  		        rate = 1 ether;
  		    } else {
  		        rate =  timeprogress.mul(1 ether).div(timeframe);   
  		    }
  		    
  		    uint256 alreadySent =  xra_amount[msg.sender].mul(0.3 ether).div(1 ether);
  		    uint256 remainingToSend = xra_amount[msg.sender].mul(0.7 ether).div(1 ether);
  		    
  		    
  		    tknToSend = alreadySent.add( remainingToSend.mul(rate).div(1 ether) ).sub( xra_sent[msg.sender] );
  		    xra_sent[msg.sender] = xra_sent[msg.sender].add(tknToSend);
  		    
  		    require(tknToSend > 0,"tknToSend > 0");
  		    xra.transfer(msg.sender, tknToSend);
  		}
  		
  		
  	}