code: def map_aggregate_not_proxy(a, fn):
      """
      Apply fn to each Node appearing arg. arg may be a list, tuple, slice, or dict with string keys.
      """
      if _orig_isinstance(a, ConcreteProxy):
          return fn(a)
      elif _orig_isinstance(a, _orig_tuple):
          t = _orig_tuple(
              map_aggregate_not_proxy(elem, fn) for elem in a
          )
          # Support NamedTuple (if it has `_fields`) by repacking into original type.
          return t if not hasattr(a, "_fields") else _orig_type(a)(*t)
      elif _orig_type(a) == _orig_list:
          return _orig_list(
              map_aggregate_not_proxy(elem, fn) for elem in a
          )
      elif _orig_isinstance(a, _orig_dict):
          return _orig_dict(
              (k, map_aggregate_not_proxy(v, fn)) for k, v in a.items()
          )
      elif _orig_isinstance(a, _orig_slice):
          return _orig_slice(
              map_aggregate_not_proxy(a.start, fn),
              map_aggregate_not_proxy(a.stop, fn),
              map_aggregate_not_proxy(a.step, fn),
          )
      else:
          return fn(a)
  
imports: from __future__ import annotations
  import dis
  import logging
  import inspect
  import operator
  from typing import List, Optional, Iterable, Any, Set, Union
  import torch
  from torch.fx._compatibility import compatibility
  from torch.fx.graph import magic_methods, reflectable_magic_methods
  from torch.fx.node import Node
  from torch.fx.proxy import Proxy
  from torch.overrides import is_tensor_method_or_property
  from .None import concrete_tracer
  from .utils import _orig_tuple, _orig_list, _orig_type, _orig_isinstance, _orig_getattr, _orig_range, _orig_dict, _orig_len, _orig_index, _orig_bool, _orig_slice, _orig_set, map_recursive
label_desc: Use image node_id 1 for calling a global function with example usage: map_aggregate_not_proxy(a, fn) and returns: fn, unknown, _orig_list, _orig_dict, _orig_slice, fn