@Override
  protected int compareEqualStartIntervals(@NotNull IntervalNode<ErrorStripeMarkerImpl> i1, @NotNull IntervalNode<ErrorStripeMarkerImpl> i2) {
    Node o1 = (Node)i1;
    Node o2 = (Node)i2;
    int d = o2.myLayer - o1.myLayer;
    if (d != 0) {
      return d;
    }
    int result = super.compareEqualStartIntervals(i1, i2);
    if (result != 0) {
      return result;
    }
    boolean persistent1 = o1.isFlagSet(RangeHighlighterTree.RHNode.IS_PERSISTENT);
    boolean persistent2 = o2.isFlagSet(RangeHighlighterTree.RHNode.IS_PERSISTENT);
    return persistent1 == persistent2 ? 0 : persistent1 ? -1 : 1;
  }
@Override
  protected int compareEqualStartIntervals(@NotNull IntervalNode<ErrorStripeMarkerImpl> i1, @NotNull IntervalNode<ErrorStripeMarkerImpl> i2)