code: def decode(self, ctext: T) -> Optional[U]:
      try:
          ctext = re.sub(r"[^\S \n]", " ", ctext, flags=re.UNICODE)
          ctext = ctext.replace("\n", " ")
  
          existing_split = self.try_split(ctext.split(" "))
          if existing_split is not None:
              return existing_split
  
          # Now we try our own grouping
  
          # Remove final bit of whitespace
          ctext = ctext.replace(" ", "")
          # Split into bytes, and test
          return self.try_split(
              [ctext[i : i + 8] for i in range(0, len(ctext), 8)]
          )
      # Catch bad octal chars
      except ValueError:
          return None
  
file_path: Ciphey/ciphey/basemods/Decoders/binary.py
imports: import re
  from typing import Dict, List, Optional
  import logging
  from rich.logging import RichHandler
  from ciphey.iface import Config, Decoder, ParamSpec, T, U, registry
label_desc: Use image node_id 1 for calling the Binary obj's underlying member method code with example usage: obj.decode(ctext) and returns: self, existing_split, None