code: def _gen_chunk_params(cls, op: "DataFrameDuplicated", input_chunk):
      is_terminal_chunk = False
      if op.method is None:
          # one chunk
          is_terminal_chunk = True
      elif op.method == "subset_tree" and op.stage is None:
          is_terminal_chunk = True
      elif op.method == "tree" and op.stage == OperandStage.agg:
          is_terminal_chunk = True
      elif op.method == "shuffle" and op.reducer_phase == "put_back":
          is_terminal_chunk = True
  
      if is_terminal_chunk:
          return cls._gen_chunk_params_default(op, input_chunk)
      else:
          return cls._gen_intermediate_chunk_params(op, input_chunk)
  
imports: import numpy
  from ...None import opcodes
  from ...core import OutputType
  from ...core.operand import OperandStage
  from ..utils import gen_unknown_index_value, hash_dataframe_on
  from ._duplicate import DuplicateOperand, validate_subset
label_desc: Use image node_id 9 for calling the DataFrameDuplicated obj's underlying member method code with example usage: obj._gen_chunk_params(cls, op, input_chunk) and returns: cls, cls