private static VirtualFile findFileFromRoot(@NotNull NewVirtualFile root,
                                              @NotNull NewVirtualFileSystem fs,
                                              @NotNull List<String> names,
                                              int startIndex) {
    VirtualFile file = root;
    for (int i = names.size() - 1; i >= startIndex; i--) {
      String name = names.get(i);
      file = findChildThroughJar(file, name, fs);
      if (file == null) break;
    }
    return file;
  }
private static VirtualFile findFileFromRoot(@NotNull NewVirtualFile root,
                                              @NotNull NewVirtualFileSystem fs,
                                              @NotNull List<String> names,
                                              int startIndex)