code: def find_list_index(index, cumulative_lengths, bounds, stride):
      list_index = bisect.bisect_right(cumulative_lengths, index)
      bound_left = bounds[list_index, 0]
      if list_index == 0:
          stride_idx = index * stride
      else:
          stride_idx = (
              index - cumulative_lengths[list_index - 1]
          ) * stride
      return list_index, bound_left + stride_idx
  
imports: import bisect
  from abc import ABC, abstractmethod
  from typing import Optional, Sequence, Tuple, Union
  import numpy
  import pandas
  from torch.utils.data import Dataset
  from darts import TimeSeries
  from darts.logging import get_logger, raise_log
  from darts.utils.historical_forecasts.utils import _process_predict_start_points_bounds
  from .utils import CovariateType
label_desc: Use image node_id 3 for calling the GenericInferenceDataset obj's underlying member method code with example usage: obj.find_list_index(index, cumulative_lengths, bounds, stride) and returns: list_index,  unknown