code: @SuppressWarnings("ConstantConditions")
      public static NaaccrDictionary getDefaultUserDictionaryByVersion(String naaccrVersion) {
          if (naaccrVersion == null)
              throw new RuntimeException("Version is required for getting the default user dictionary.");
          if (!NaaccrFormat.isVersionSupported(naaccrVersion))
              throw new RuntimeException("Unsupported default user dictionary version: " + naaccrVersion);
          NaaccrDictionary result = _INTERNAL_DICTIONARIES.get("user_" + naaccrVersion);
          if (result == null) {
              String resName = "user-defined-naaccr-dictionary-" + naaccrVersion + ".xml";
              try (Reader reader = new InputStreamReader(Thread.currentThread().getContextClassLoader().getResource(resName).openStream(), StandardCharsets.UTF_8)) {
                  result = readDictionary(reader);
                  _INTERNAL_DICTIONARIES.put("user_" + naaccrVersion, result);
              }
              catch (IOException e) {
                  throw new RuntimeException("Unable to get base dictionary for version " + naaccrVersion, e);
              }
          }
          return result;
      }
docs: Returns the default user dictionary for the requested NAACCR version.
  @param naaccrVersion NAACCR version, required (see constants in NaaccrFormat)
  @return the corresponding default user dictionary, throws a runtime exception if not found