code: def step(
      self,
      step: int,
      lprobs,
      scores,
      prev_output_tokens: Optional[Tensor] = None,
      original_batch_idxs: Optional[Tensor] = None,
  ):
      min_lens = self.min_len_a * self.src_lengths + self.min_len_b
      max_lens = self.max_len_a * self.src_lengths + self.max_len_b
      lprobs[step < min_lens, :, self.eos] = -math.inf
      lprobs[step >= max_lens, :, self.eos] = 0
      return self.beam.step(step, lprobs, scores)
  
imports: import math
  from typing import List, Optional
  import torch
  import torch.nn
  from fairseq.token_generation_constraints import ConstraintState, OrderedConstraintState, UnorderedConstraintState
  from torch import Tensor
label_desc: Use image node_id 2 for calling the LengthConstrainedBeamSearch obj's underlying member method code with example usage: obj.step(step, lprobs, scores, prev_output_tokens, original_batch_idxs) and returns: self