code: def is_pattern_match(key: str, pattern: str):
      dp = np.zeros((len(key) + 1, len(pattern) + 1), dtype="bool")
      dp[0, 0] = True
  
      for i in range(len(key)):
          for j in range(len(pattern)):
              if key[i] == pattern[j]:
                  dp[i + 1][j + 1] = dp[i][j]
              elif pattern[j] == "?":
                  dp[i + 1][j + 1] = dp[i][j]
              elif pattern[j] == "*":
                  dp[i + 1][j + 1] = (
                      dp[i][j] or dp[i][j + 1] or dp[i + 1][j]
                  )
  
      return bool(dp[len(key), len(pattern)])
  
label_desc: Use image node_id 1 for calling a global function with example usage: is_pattern_match(key, pattern) and returns: bool