code: def decode_bearer_token(
      bearer_token: Text, jwt_key: Text, jwt_algorithm: Text
  ) -> Optional[Dict]:
      """Decodes a Bearer Token using the specific JWT key and algorithm.
  
      Args:
          bearer_token: Encoded Bearer token
          jwt_key: Public JWT key for decoding the Bearer token
          jwt_algorithm: JWT algorithm used for decoding the Bearer token
  
      Returns:
          `Dict` containing the decoded payload if successful or `None` if unsuccessful
      """
      # noinspection PyBroadException
      try:
          return decode_jwt(bearer_token, jwt_key, jwt_algorithm)
      except jwt.exceptions.InvalidSignatureError:
          logger.error("JWT public key invalid.")
      except Exception:
          logger.exception("Failed to decode bearer token.")
  
      return None
  
imports: import json
  import logging
  import uuid
  import jwt
  from sanic import Sanic, Blueprint
  from sanic.request import Request
  from typing import Text, List, Dict, Any, Optional, Callable, Iterable, Awaitable, NoReturn
  from rasa.cli import utils
  from rasa.shared.constants import DOCS_BASE_URL, DEFAULT_SENDER_ID
  from rasa.core.constants import BEARER_TOKEN_PREFIX
  from rasa.shared.exceptions import RasaException
label_desc: Use image node_id 3 for calling a global function with example usage: decode_bearer_token(bearer_token, jwt_key, jwt_algorithm) and returns: None, decode_jwt