code: @Override
      public int[] buildSuffixArray(int[] input, final int start, final int length) {
          if (start == 0 && start + length + extraCells < input.length) {
              return delegate.buildSuffixArray(input, start, length);
          }
  
          final int[] shifted = new int[input.length + extraCells];
          System.arraycopy(input, start, shifted, 0, length);
  
          final int[] SA = delegate.buildSuffixArray(shifted, 0, length);
  
          return SA;
      }
docs: /*