docs: public static List<Integer> paginate(final int currentPageNum,
                                           final int pageSize,
                                           final int pageCount,
                                           final int windowSize) {
          List<Integer> ret;
          if (pageCount < windowSize) {
              ret = new ArrayList<>(pageCount);
              for (int i = 0; i < pageCount; i++) {
                  ret.add(i, i + 1);
              }
          } else {
              ret = new ArrayList<>(windowSize);
              int first = currentPageNum + 1 - windowSize / 2;
  
              first = first < 1 ? 1 : first;
              first = first + windowSize > pageCount ? pageCount - windowSize + 1 : first;
              for (int i = 0; i < windowSize; i++) {
                  ret.add(i, first + i);
              }
          }
  
          return ret;
      }