class_docstr: Base class for binary predicates that are defined in terms of the equals
  basic predicate.  `EqualsPredicateBase` implements utility functions that
  are used within many equals-related binary predicates.
  
  Used by:
  (Point, Point)
  (Point, Polygon)
  (LineString, Polygon)
  (Polygon, Point)
  (Polygon, MultiPoint)
  (Polygon, LineString)
  (Polygon, Polygon)
class_docstr_tok: ["Base","class","for","binary","predicates","that","are","defined","in","terms","of","the","equals","basic","predicate",".","`","EqualsPredicateBase","`","implements","utility","functions","that","are","used","within","many","equals-related","binary","predicates",".","Used","by",":","(","Point",",","Point",")","(","Point",",","Polygon",")","(","LineString",",","Polygon",")","(","Polygon",",","Point",")","(","Polygon",",","MultiPoint",")","(","Polygon",",","LineString",")","(","Polygon",",","Polygon",")"]
docstr: Sort xy according to bins defined by offset. Consider an xy buffer
  of 20 values and an offset buffer [0, 5]. This means that the first
  multipoint has 5 points and the second multipoint has 5 points. The
  first multipoint is sorted by x/y coordinates and the second
  multipoint is sorted by x/y coordinates. The resultant sorted values
  are stored in the same offset region, or bin, as the original
  unsorted values.
  
  Parameters
  ----------
  coords : cudf.Series
      interleaved x,y coordinates
  offsets : cudf.Series
      offsets into coords
  
  Returns
  -------
  cudf.Series
      Coordinates sorted according to the bins defined by offsets.
docstr_tok: ["Sort","xy","according","to","bins","defined","by","offset",".","Consider","an","xy","buffer","of","20","values","and","an","offset","buffer","[","0",",","5","]",".","This","means","that","the","first","multipoint","has","5","points","and","the","second","multipoint","has","5","points",".","The","first","multipoint","is","sorted","by","x\/y","coordinates","and","the","second","multipoint","is","sorted","by","x\/y","coordinates",".","The","resultant","sorted","values","are","stored","in","the","same","offset","region",",","or","bin",",","as","the","original","unsorted","values",".","Parameters","--","--","--","--","--","coords",":","cudf.Series","interleaved","x",",","y","coordinates","offsets",":","cudf.Series","offsets","into","coords","Returns","--","--","--","-","cudf.Series","Coordinates","sorted","according","to","the","bins","defined","by","offsets","."]
code: def _sort_multipoint_series(self, coords, offsets):
      """Sort xy according to bins defined by offset. Consider an xy buffer
      of 20 values and an offset buffer [0, 5]. This means that the first
      multipoint has 5 points and the second multipoint has 5 points. The
      first multipoint is sorted by x/y coordinates and the second
      multipoint is sorted by x/y coordinates. The resultant sorted values
      are stored in the same offset region, or bin, as the original
      unsorted values.
  
      Parameters
      ----------
      coords : cudf.Series
          interleaved x,y coordinates
      offsets : cudf.Series
          offsets into coords
  
      Returns
      -------
      cudf.Series
          Coordinates sorted according to the bins defined by offsets.
      """
      result = self._sort_interleaved_points_by_offset(
          coords, offsets, ["object_key", "xy", "xy_key"]
      )
      result.name = None
      return result
  
imports: from __future__ import annotations
  from typing import Generic, TypeVar
  import cupy
  import cudf
  from cudf import Series
  import cuspatial
  from cuspatial.core.binpreds.binpred_interface import BinPred, EqualsOpResult, ImpossiblePredicate, NotImplementedPredicate, PreprocessorResult
  from cuspatial.utils.binpred_utils import LineString, MultiPoint, Point, Polygon, _false_series
label_desc: Use image node_id 3 for calling the EqualsPredicateBase obj's underlying member method code with example usage: obj._sort_multipoint_series(coords, offsets) and returns: result