@Override
    public AnAction @NotNull [] getChildren(@Nullable AnActionEvent e) {
      if (e == null) return EMPTY_ARRAY;
      Project project = e.getProject();
      DataContext dataContext = e.getDataContext();
      if (project == null) return EMPTY_ARRAY;

      JBIterable<VcsQuickListContentProvider> providers = JBIterable.of(VcsQuickListContentProvider.EP_NAME.getExtensions());
      JBIterable<AnAction> actions;
      if (!isUnderVcs(project)) {
        actions = providers.flatMap(p -> p.getNotInVcsActions(project, dataContext));
      }
      else {
        AbstractVcs vcs = getContextVcs(project, dataContext);
        if (vcs != null) {
          List<AnAction> replacingActions = providers
            .filterMap(p -> p.replaceVcsActionsFor(vcs, dataContext) ? p.getVcsActions(project, vcs, dataContext) : null)
            .first();
          actions = replacingActions != null ? JBIterable.from(replacingActions) :
                    providers.flatMap(p -> p.getVcsActions(project, vcs, dataContext));
        }
        else {
          actions = JBIterable.empty();
        }
      }
      return actions.toList().toArray(EMPTY_ARRAY);
    }
@Override
    public AnAction @NotNull [] getChildren(@Nullable AnActionEvent e)