code: public final LocatedString contentLocatedSubstringByContentOffsets(
        final OffsetRange<CharOffset> contentOffsets) {
      final UnicodeFriendlyString substringText = content().substringByCodePoints(contentOffsets);
      final List<CharacterRegion> substringOffsets =
          offsetsOfSubstringByContentCodepointOffsets(contentOffsets);
      return new LocatedString.Builder().content(substringText).referenceString(referenceString())
          .characterRegions(substringOffsets).build();
    }
docs: Return a {@code LocatedString} substring of this string.  The substring and the indices are
  both with respect to the {@code LocatedString}'s content, not its reference string.
  Please refer to the class Javadoc for coverage of available substring options.
  
  <p><b>NOTE:</b> Because it recomputes the various offsets of every character in the
  substring, this method is *significantly* more expensive than just
  fetching the String content of the substring.  If you just need the String
  content, you should use rawSubstring() instead.</p>