code: def _combine_hash_arrays(arrays, num_items):
      """
      Parameters
      ----------
      arrays : generator
      num_items : int
  
      Should be the same as CPython's tupleobject.c
      """
      try:
          first = next(arrays)
      except StopIteration:
          return np.array([], dtype=np.uint64)
  
      arrays = itertools.chain([first], arrays)
  
      mult = np.uint64(1000003)
      out = np.zeros_like(first) + np.uint64(0x345678)
      for i, a in enumerate(arrays):
          inverse_i = num_items - i
          out ^= a
          out *= mult
          mult += np.uint64(82520 + inverse_i + inverse_i)
      assert i + 1 == num_items, "Fed in wrong num_items"
      out += np.uint64(97531)
      return out
  
file_path: catboost/contrib/python/pandas/py2/pandas/core/util/hashing.py
imports: import itertools
  import numpy
  from pandas._libs import hashing, tslibs
  from pandas.core.dtypes.cast import infer_dtype_from_scalar
  from pandas.core.dtypes.common import is_categorical_dtype, is_extension_array_dtype, is_list_like
  from pandas.core.dtypes.generic import ABCDataFrame, ABCIndexClass, ABCMultiIndex, ABCSeries
  from pandas.core.dtypes.missing import isna
label_desc: Use image node_id 1 for calling a global function with example usage: _combine_hash_arrays(arrays, num_items) and returns: out, np