code: def getInfo(self, ctext: str) -> CrackInfo:
      return CrackInfo(
          success_likelihood=0.1,
          # TODO: actually calculate runtimes
          success_runtime=1e-8,
          failure_runtime=1e-8,
      )
  
file_path: Ciphey/ciphey/basemods/Crackers/xortool.py
imports: from typing import Dict, List, Optional
  import logging
  from rich.logging import RichHandler
  from xortool_ciphey import tool_main
  from ciphey.iface import Config, Cracker, CrackInfo, CrackResult, ParamSpec, registry
label_desc: Use image node_id 1 for calling the XorTool obj's underlying member method code with example usage: obj.getInfo(ctext) and returns: CrackInfo