code: def check_special_tokens_dict_for_duplicate_values(
      special_tokens_dict, err_msg_prefix
  ):
      if len(special_tokens_dict) != len(
          set(special_tokens_dict.values())
      ):
          tokens_with_equal_values = []
          duplicate_values = []
          for k, v in list(reversed(list(special_tokens_dict.items())))[
              :-1
          ]:
              tokens = [k]
              for kk, vv in special_tokens_dict.items():
                  if kk == k:
                      break
                  if v == vv:
                      tokens.append(kk)
              if len(tokens) > 1:
                  duplicate_values.append(v)
                  tokens_with_equal_values.append(tokens)
          if duplicate_values:
              dup_values_msg = ". ".join(
                  [
                      f"Tokens {t} have value '{v}'"
                      for t, v in zip(
                          tokens_with_equal_values, duplicate_values
                      )
                  ]
              )
              raise ValueError(
                  err_msg_prefix
                  + f" special tokens dictionary has duplicate values. "
                  + dup_values_msg
              )
  
imports: import json
  import os
  import warnings
  from collections import Counter
  from enum import Enum
  from pathlib import Path
  from typing import Dict, List, NewType, Optional, Union
  from nemo.collections.common.tokenizers.tokenizer_spec import TokenizerSpec
label_desc: Use image node_id 3 for calling the CharTokenizer obj's underlying member method code with example usage: obj.check_special_tokens_dict_for_duplicate_values(special_tokens_dict, err_msg_prefix) without return types