code: long getSupplementaryFlags(ClassSymbol c) {
          if (jrtIndex == null || !jrtIndex.isInJRT(c.classfile) || c.name == names.module_info) {
              return 0;
          }
  
          if (supplementaryFlags == null) {
              supplementaryFlags = new HashMap<>();
          }
  
          Long flags = supplementaryFlags.get(c.packge());
          if (flags == null) {
              long newFlags = 0;
              try {
                  JRTIndex.CtSym ctSym = jrtIndex.getCtSym(c.packge().flatName());
                  Profile minProfile = Profile.DEFAULT;
                  if (ctSym.proprietary)
                      newFlags |= PROPRIETARY;
                  if (ctSym.minProfile != null)
                      minProfile = Profile.lookup(ctSym.minProfile);
                  if (profile != Profile.DEFAULT && minProfile.value > profile.value) {
                      newFlags |= NOT_IN_PROFILE;
                  }
              } catch (IOException ignore) {
              }
              supplementaryFlags.put(c.packge(), flags = newFlags);
          }
          return flags;
      }
docs: Returns any extra flags for a class symbol.
  This information used to be provided using private annotations
  in the class file in ct.sym; in time, this information will be
  available from the module system.