contract HashTokenAward is StandardToken {
  string public name;
  string public symbol;
  uint256 public constant decimals = 18;
  string public constant version = "1.0";
  uint256 public total;   // 20 *10^8 HNC total

  function HashTokenAward(
        uint256 initialSupply,
        string tokenName,
        string tokenSymbol
    ) public {
        total = initialSupply * 10 ** uint256(decimals);  // Update total supply with the decimal amount
        balances[msg.sender] = total; // Give the creator all initial tokens
        name = tokenName;                                   // Set the name for display purposes
        symbol = tokenSymbol;                               // Set the symbol for display purposes
        Transfer(0x0, msg.sender, total);   
    }

  function totalSupply() public view returns (uint256) {
    return total;
  }

  function transfer(address _to, uint _value) public returns (bool) {
    return super.transfer(_to,_value);
  }

  function approve(address _spender, uint _value) public returns (bool) {
    return super.approve(_spender,_value);
  }

  function airdropToAddresses(address[] addrs, uint256 amount) public {
    for (uint256 i = 0; i < addrs.length; i++) {
      transfer(addrs[i], amount);
    }
  }
}
function HashTokenAward(
      uint256 initialSupply,
      string tokenName,
      string tokenSymbol
  ) public {
      total = initialSupply * 10 ** uint256(decimals);  // Update total supply with the decimal amount
      balances[msg.sender] = total; // Give the creator all initial tokens
      name = tokenName;                                   // Set the name for display purposes
      symbol = tokenSymbol;                               // Set the symbol for display purposes
      Transfer(0x0, msg.sender, total);   
  }

// 20 *10^8 HNC total