code: def message_mutation(self, message: Message) -> Message:
      message = copy.deepcopy(message)
      if "labels" in message:
          labels = message["labels"]
          text = message["text"]
          new_labels = []
          flip = (
              hashlib.md5(text.encode("utf8")).digest()[0]
              < self.noise_level * 256
          )
          if len(labels) != 1:
              raise ValueError(
                  f"{type(self).__name__} can only be used with one label!"
              )
          else:
              # deterministic flipping for each example
              if flip:
                  self.flip_cnt += 1
                  if (
                      hashlib.md5(text.encode("utf8")).digest()[1] / 256
                      > 0.5
                  ):
                      new_labels = [self.labels[0]]
                  else:
                      new_labels = [self.labels[1]]
  
                  assert len(new_labels) == 1
          if flip:
              message.force_set("labels", new_labels)
      return message
  
imports: from typing import Optional
  from parlai.core.message import Message
  from parlai.core.mutators import MessageMutator, register_mutator
  from parlai.core.opt import Opt
  from parlai.core.params import ParlaiParser
  from parlai.utils.data import DatatypeHelper
  import hashlib
  import parlai.utils.logging
  import copy
label_desc: Use image node_id 1 for calling the RandomClassificationLabelMutator obj's underlying member method code with example usage: obj.message_mutation(message) and returns: message