@Override
  public List<MergeLineFragment> mergeLinesWithinRange(@NotNull CharSequence text1,
                                                       @NotNull CharSequence text2,
                                                       @NotNull CharSequence text3,
                                                       @NotNull ComparisonPolicy policy,
                                                       @NotNull MergeRange range,
                                                       @NotNull ProgressIndicator indicator) throws DiffTooBigException {
    List<CharSequence> lineTexts1 = getLineContents(range.start1, range.end1, text1, LineOffsetsImpl.create(text1));
    List<CharSequence> lineTexts2 = getLineContents(range.start2, range.end2, text2, LineOffsetsImpl.create(text2));
    List<CharSequence> lineTexts3 = getLineContents(range.start3, range.end3, text3, LineOffsetsImpl.create(text3));
    List<MergeRange> ranges = ByLine.merge(lineTexts1, lineTexts2, lineTexts3, policy, indicator);
    return ByLineRt.convertIntoMergeLineFragments(ranges, range);
  }
@Override
  public List<MergeLineFragment> mergeLinesWithinRange(@NotNull CharSequence text1,
                                                       @NotNull CharSequence text2,
                                                       @NotNull CharSequence text3,
                                                       @NotNull ComparisonPolicy policy,
                                                       @NotNull MergeRange range,
                                                       @NotNull ProgressIndicator indicator)