input: Write a function to find the maximum value within a nested dictionary. If the dictionary is empty then 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
  
  assert findMaxValue({"key1": {"value1": 10, "value2": 20}, "key2": {"value3": 40}})==40
  assert findMaxValue({"a": {"b": {"c": 3, "d": 4}, "e": 5}, "f": 6})==6
  assert findMaxValue({"x": -1, "y": {"z": -2, "w": -3}})==-1
  assert findMaxValue({"p": {"q": {"r": 7}}, "s": {"t": 8}})==8
  assert findMaxValue({})==None
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