input: Write a function to find the maximum value within a nested dictionary. Assume that the values are either integers or further nested dictionaries. If the input dictionary is empty, return None.
  def findMaxValue(dict):
      max_val = None
      for key, value in dict.items():
          if isinstance(value, dict):
              max_val = max(findMaxValue(value), max_val)
          else:
              max_val = max(value, max_val)
      return max_val
  
  # Test cases
  assert findMaxValue({"key1": {"value1": 10, "value2": 20}, "key2": {"value3": 40}}) == 40
  assert findMaxValue({"key1": {"value1": 50, "value2": 10}, "key2": {"value3": 30}}) == 50
  assert findMaxValue({"key1": {"value1": 20}, "key2": {"value3": 30, "value4": {"inner_value1": 70}}}) == 70
  assert findMaxValue({"key1": {"value1": 10}, "key2": {"value3": {"inner_value1": 15}, "value4": 5}}) == 15
  assert findMaxValue({}) == None
  assert findMaxValue({"key1": {"value1": 10}, "key2": {"value3": {"inner_value1": -5}}}) == 10
output: def findMaxValue(dict):
      max_val = None
      for key, value in dict.items():
          if isinstance(value, dict):
              max_val = max(findMaxValue(value), max_val)
          else:
              max_val = max(value, max_val)
      return max_val