contract RBACMintableTokenMixin is StandardToken, RBACMixin {
  /// @notice Total issued tokens
  uint256 totalIssued_;

  event Mint(address indexed to, uint256 amount);
  event MintFinished();

  bool public mintingFinished = false;

  modifier canMint() {
    require(!mintingFinished, "Minting is finished");
    _;
  }

  /**
   * @dev Function to mint tokens
   * @param _to The address that will receive the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(
    address _to,
    uint256 _amount
  )
    onlyMinter
    canMint
    public
    returns (bool)
  {
    totalIssued_ = totalIssued_.add(_amount);
    totalSupply_ = totalSupply_.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    emit Mint(_to, _amount);
    emit Transfer(address(0), _to, _amount);
    return true;
  }

  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() onlyOwner canMint internal returns (bool) {
    mintingFinished = true;
    emit MintFinished();
    return true;
  }
}
function finishMinting() onlyOwner canMint internal returns (bool) {
    mintingFinished = true;
    emit MintFinished();
    return true;
  }
/**
 * @dev Function to stop minting new tokens.
 * @return True if the operation was successful.
 */