code: def _reduce_int_list(input_list: List[int]) -> str:
      if len(input_list) == 0:
          return ""
      reduced = []
      count = 1
      prev_num = input_list[0]
  
      for num in input_list[1:]:
          if num == prev_num:
              count += 1
          else:
              if count > 1:
                  reduced.append(f"{prev_num} * {count}")
              else:
                  reduced.append(str(prev_num))
              prev_num = num
              count = 1
  
      # Handle the last number
      if count > 1:
          reduced.append(f"{prev_num}*{count}")
      else:
          reduced.append(str(prev_num))
  
      return ", ".join(reduced)
  
imports: import logging
  from collections import defaultdict
  from typing import Any, cast, Dict, List, Optional, Tuple, Union
  from torch import nn
  from torchrec.distributed.planner.constants import BIGINT_DTYPE, NUM_POOLINGS
  from torchrec.distributed.planner.shard_estimators import _calculate_shard_io_sizes
  from torchrec.distributed.planner.storage_reservations import FixedPercentageStorageReservation, HeuristicalStorageReservation, InferenceStorageReservation
  from torchrec.distributed.planner.types import ParameterConstraints, Perf, ShardingOption, Stats, Storage, StorageReservation, Topology
  from torchrec.distributed.planner.utils import _find_imbalance_tables, bytes_to_gb, bytes_to_mb, sharder_name
  from torchrec.distributed.types import ModuleSharder, ParameterSharding, ShardingPlan, ShardingType
label_desc: Use image node_id 9 for calling a global function with example usage: _reduce_int_list(input_list) and returns: str, str