docs: public static ILeafNode findLeafNodeAtOffset(/* @NonNull */ INode node, int leafNodeOffset) {
  		INode localNode = node;
  		while(!(localNode instanceof AbstractNode)) {
  			localNode = localNode.getParent();
  		}
  		int offset = localNode.getTotalOffset();
  		int length = localNode.getTotalLength();
  		BidiTreeIterator<AbstractNode> iterator = ((AbstractNode) localNode).basicIterator();
  		if (leafNodeOffset > (offset + length) / 2) {
  			while (iterator.hasPrevious()) {
  				AbstractNode previous = iterator.previous();
  				int previousOffset = previous.getTotalOffset();
  				int previousLength = previous.getTotalLength();
  				if (!intersects(previousOffset, previousLength, leafNodeOffset)) {
  					if (previousOffset + previousLength <= leafNodeOffset) {
  						return null;
  					}
  					iterator.prune();
  				} else {
  					if (previous instanceof ILeafNode)
  						return (ILeafNode) previous;
  				}
  			}
  		} else {
  			while (iterator.hasNext()) {
  				AbstractNode next = iterator.next();
  				int nextOffset = next.getTotalOffset();
  				int nextLength = next.getTotalLength();
  				if (!intersects(nextOffset, nextLength, leafNodeOffset)) {
  					if (nextOffset > leafNodeOffset) {
  						return null;
  					}
  					iterator.prune();
  				} else {
  					if (next instanceof ILeafNode)
  						return (ILeafNode) next;
  				}
  			}
  		}
  		return null;
  	}