code: def _reduce_memmap_backed(a, m):
      """Pickling reduction for memmap backed arrays.
  
      a is expected to be an instance of np.ndarray (or np.memmap)
      m is expected to be an instance of np.memmap on the top of the ``base``
      attribute ancestry of a. ``m.base`` should be the real python mmap object.
      """
      # offset that comes from the striding differences between a and m
      a_start, a_end = np.byte_bounds(a)
      m_start = np.byte_bounds(m)[0]
      offset = a_start - m_start
  
      # offset from the backing memmap
      offset += m.offset
  
      if m.flags["F_CONTIGUOUS"]:
          order = "F"
      else:
          # The backing memmap buffer is necessarily contiguous hence C if not
          # Fortran
          order = "C"
  
      if a.flags["F_CONTIGUOUS"] or a.flags["C_CONTIGUOUS"]:
          # If the array is a contiguous view, no need to pass the strides
          strides = None
          total_buffer_len = None
      else:
          # Compute the total number of items to map from which the strided
          # view will be extracted.
          strides = a.strides
          total_buffer_len = (a_end - a_start) // a.itemsize
      return (
          _strided_from_memmap,
          (
              m.filename,
              a.dtype,
              m.mode,
              offset,
              order,
              a.shape,
              strides,
              total_buffer_len,
          ),
      )
  
imports: from mmap import mmap
  import errno
  import os
  import stat
  import sys
  import threading
  import atexit
  import tempfile
  import shutil
  import warnings
  from time import sleep
  from pickle import whichmodule
  from pickle import Pickler
  from pickle import HIGHEST_PROTOCOL
  from io import BytesIO
  from ._multiprocessing_helpers import mp, assert_spawning
  from multiprocessing.pool import Pool
  from .numpy_pickle import load
  from .numpy_pickle import dump
  from .hashing import hash
label_desc: Use image node_id 4 for calling a global function with example usage: _reduce_memmap_backed(a, m) and returns: _strided_from_memmap,  m,  a,  m,  offset,  order,  a,  strides,  total_buffer_len