public boolean isExpanded(@NotNull Data.Block block) {
      if (myCache == null || myCache.ranges.length != myCount) return myDefault;
      if (myDefault != myCache.expandByDefault) return myDefault;

      Boolean state = null;
      for (int index = 0; index < myCount; index++) {
        LineRange range = block.ranges[index];
        if (range == null) continue;
        Boolean sideState = getCachedExpanded(range.start, range.end, index);
        if (sideState == null) continue;
        if (state == null) {
          state = sideState;
          continue;
        }
        if (state != sideState) return myDefault;
      }
      return state == null ? myDefault : state;
    }
public boolean isExpanded(@NotNull Data.Block block)