code: def print_java_mf(info):
      wrapper = textwrap.TextWrapper(
          subsequent_indent=" ",
          break_long_words=True,
          replace_whitespace=False,
          drop_whitespace=False,
      )
      names = set()
  
      def wrap(key, val):
          names.add(key[:-2])
          if not val:
              return []
          return wrapper.wrap(key + val)
  
      lines = wrap(
          "Program-Version-String: ",
          base64.b64encode(
              info["PROGRAM_VERSION"].encode("utf-8")
          ).decode("utf-8"),
      )
      lines += wrap(
          "SCM-String: ",
          base64.b64encode(info["SCM_DATA"].encode("utf-8")).decode(
              "utf-8"
          ),
      )
      lines += wrap(
          "Arcadia-Source-Path: ", info["ARCADIA_SOURCE_PATH"]
      )
      lines += wrap("Arcadia-Source-URL: ", info["ARCADIA_SOURCE_URL"])
      lines += wrap(
          "Arcadia-Source-Revision: ",
          str(info["ARCADIA_SOURCE_REVISION"]),
      )
      lines += wrap(
          "Arcadia-Source-Hash: ",
          info["ARCADIA_SOURCE_HG_HASH"].rstrip(),
      )
      lines += wrap(
          "Arcadia-Source-Last-Change: ",
          str(info["ARCADIA_SOURCE_LAST_CHANGE"]),
      )
      lines += wrap(
          "Arcadia-Source-Last-Author: ",
          info["ARCADIA_SOURCE_LAST_AUTHOR"],
      )
      lines += wrap("Build-User: ", info["BUILD_USER"])
      lines += wrap("Build-Host: ", info["BUILD_HOST"])
      lines += wrap("Version-Control-System: ", info["VCS"])
      lines += wrap("Branch: ", info["BRANCH"])
      lines += wrap("Arcadia-Tag: ", info.get("ARCADIA_TAG", ""))
      lines += wrap(
          "Arcadia-Patch-Number: ",
          str(info.get("ARCADIA_PATCH_NUMBER", 42)),
      )
      if "SVN_REVISION" in info:
          lines += wrap("SVN-Revision: ", str(info["SVN_REVISION"]))
          lines += wrap("SVN-Arcroot: ", info["SVN_ARCROOT"])
          lines += wrap("SVN-Time: ", info["SVN_TIME"])
      lines += wrap("Build-Date: ", info["BUILD_DATE"])
      if "BUILD_TIMESTAMP" in info:
          lines += wrap(
              "Build-Timestamp: ", str(info["BUILD_TIMESTAMP"])
          )
      if "CUSTOM_VERSION" in info:
          lines += wrap(
              "Custom-Version-String: ",
              base64.b64encode(
                  info["CUSTOM_VERSION"].encode("utf-8")
              ).decode("utf-8"),
          )
      return lines, names
  
imports: import base64
  import json
  import os
  import re
  import sys
  import shutil
  import tempfile
  import textwrap
  import zipfile
label_desc: Use image node_id 8 for calling a global function with example usage: print_java_mf(info) and returns: lines,  names, wrapper, list