code: def pre_state(*raw_state: GeneralState, filler: Dict[str, Any]) -> None:
      
      @wraps(pre_state)
      def _pre_state(filler: Dict[str, Any]) -> Dict[str, Any]:
          test_name = get_test_name(filler)
  
          old_pre_state = filler[test_name].get("pre_state", {})
          pre_state = normalize_state(raw_state)
          defaults = {address: {
              "balance": 0,
              "nonce": 0,
              "code": b"",
              "storage": {},
          } for address in pre_state}
          new_pre_state = deep_merge(defaults, old_pre_state, pre_state)
  
          return assoc_in(filler, [test_name, "pre"], new_pre_state)
docs: Specify the state prior to the test execution. Multiple invocations don't override
      the state but extend it instead.
  
      In general, the elements of `state_definitions` are nested dictionaries of the following form:
  
      .. code-block:: python
  
          {
              address: {
                  "nonce": <account nonce>,
                  "balance": <account balance>,
                  "code": <account code>,
                  "storage": {
                      <storage slot>: <storage value>
                  }
              }
          }
  
      To avoid unnecessary nesting especially if only few fields per account are specified, the
      following and similar formats are possible as well:
  
      .. code-block:: python
  
          (address, "balance", <account balance>)
          (address, "storage", <storage slot>, <storage value>)
          (address, "storage", {<storage slot>: <storage value>})
          (address, {"balance", <account balance>})