otected static @NotNull IntSet intersection(@NotNull IntSet set1, @NotNull IntCollection set2) {
    if (set1.isEmpty()) {
      return set1;
    }

    IntSet result = ((IntOpenHashSet)set1).clone();
    result.retainAll(set2);
    return result;
  }


otected static @NotNull IntSet intersection(@NotNull IntSet set1, @NotNull IntCollection set2) {