@Contract(pure=true)
  public static String @NotNull [] mergeArrays(String @NotNull [] a1, String @NotNull ... a2) {
    return mergeArrays(a1, a2, STRING_ARRAY_FACTORY);
  }
@Contract(pure=true)
  public static String @NotNull [] mergeArrays(String @NotNull [] a1, String @NotNull ... a2)