contract DOCK is ReleasableToken, BurnableToken {

  /** Name and symbol were updated. */
  event UpdatedTokenInformation(string newName, string newSymbol);

  string public name;

  string public symbol;

  uint public decimals;

  /**
   * Construct the token.
   *
   * @param _name Token name
   * @param _symbol Token symbol
   * @param _initialSupply How many tokens we start with
   * @param _decimals Number of decimal places
   */
  function DOCK(string _name, string _symbol, uint _initialSupply, uint _decimals) {
    // Cannot create a token without supply
    require(_initialSupply != 0);

    owner = msg.sender;

    name = _name;
    symbol = _symbol;

    totalSupply = _initialSupply;

    decimals = _decimals;

    // Create initially all balance on owner
    balances[owner] = totalSupply;
  }

  /**
   * To update token information at the end.
   *
   */
  function setTokenInformation(string _name, string _symbol) onlyOwner {
    name = _name;
    symbol = _symbol;

    UpdatedTokenInformation(name, symbol);
  }
}
/**
 * DOCK.io
 *
 * Burnable and transfer releaseable ERC20 token 
 *
 */
function DOCK(string _name, string _symbol, uint _initialSupply, uint _decimals) {
  // Cannot create a token without supply
  require(_initialSupply != 0);

  owner = msg.sender;

  name = _name;
  symbol = _symbol;

  totalSupply = _initialSupply;

  decimals = _decimals;

  // Create initially all balance on owner
  balances[owner] = totalSupply;
}

/**
 * Construct the token.
 *
 * @param _name Token name
 * @param _symbol Token symbol
 * @param _initialSupply How many tokens we start with
 * @param _decimals Number of decimal places
 */