code: def decode(value: str) -> bytes:
      
      length = len(value)
  
      # Order here is based on assumed hot path.
      if length == 26:
          return decode_ulid(value)
      if length == 10:
          return decode_timestamp(value)
      if length == 16:
          return decode_randomness(value)
  
      raise ValueError('Expects string in lengths of 10, 16, or 26; got {}'.format(length))
docs: Decode the given Base32 encoded :class:`~str` instance to :class:`~bytes`.
  
      .. note:: You should only use this method if you've got a :class:`~str` instance
          and you are unsure of what it represents. If you know the the _meaning_ of the
          :class:`~str` instance, you should call the `decode_*` method explicitly for
          better performance.
  
      :param value: String to decode
      :type value: :class:`~str`
      :return: Value decoded from Base32 string
      :rtype: :class:`~bytes`
      :raises ValueError: when value is not 10, 16, or 26 characters
      :raises ValueError: when value cannot be encoded in ASCII