contract AltTokenDistribution is Ownable {
  using SafeMath for uint256;
  AltTokenInterface public token;

  event DistributionMint(address indexed to, uint256 amount);

  function AltTokenDistribution (address _tokenAddress) public {
    require(_tokenAddress != 0);
    token = AltTokenInterface(_tokenAddress);
  }

  /**
  * @dev Minting required amount of tokens in a loop
  * @param _investors The array of addresses of investors
  * @param _amounts The array of token amounts corresponding to investors
  */
  function bulkMint(address[] _investors, uint256[] _amounts) onlyOwner public returns (bool) {
    // require(_investors.length < 50);
    require(_investors.length == _amounts.length);

    for (uint index = 0; index < _investors.length; index++) {
      assert(token.mint(_investors[index], _amounts[index]));
      DistributionMint(_investors[index], _amounts[index]);
    }
  }

  /**
  * @dev Return ownership to previous owner
  */
  function returnOwnership() onlyOwner public returns (bool) {
    token.transferOwnership(owner);
  }
}
function bulkMint(address[] _investors, uint256[] _amounts) onlyOwner public returns (bool) {
    // require(_investors.length < 50);
    require(_investors.length == _amounts.length);

    for (uint index = 0; index < _investors.length; index++) {
      assert(token.mint(_investors[index], _amounts[index]));
      DistributionMint(_investors[index], _amounts[index]);
    }
  }
/**
 * @dev Minting required amount of tokens in a loop
 * @param _investors The array of addresses of investors
 * @param _amounts The array of token amounts corresponding to investors
 */