code: def _find_rr_record(self, rr_path):
          '''
          An internal method to find an directory record on the ISO given a Rock
          Ridge path.  If the entry is found, it returns the directory record
          object corresponding to that entry.  If the entry could not be found, a
          pycdlibexception.PyCdlibInvalidInput is raised.
          Parameters:
           rr_path - The Rock Ridge path to lookup.
          Returns:
           The directory record entry representing the entry on the ISO.
          '''
          if not utils.starts_with_slash(rr_path):
              raise pycdlibexception.PyCdlibInvalidInput('Must be a path starting with /')
          root_dir_record = self.pvd.root_directory_record()
          if rr_path == b'/':
              return root_dir_record
          splitpath = utils.split_path(rr_path)
          currpath = splitpath.pop(0).decode('utf-8').encode('utf-8')
          entry = root_dir_record
          while True:
              child = None
              thelist = entry.rr_children
              lo = 0
              hi = len(thelist)
              while lo < hi:
                  mid = (lo + hi) // 2
                  tmpchild = thelist[mid]
                  if tmpchild.rock_ridge is None:
                      raise pycdlibexception.PyCdlibInvalidInput('Record without Rock Ridge entry on Rock Ridge ISO')
                  if tmpchild.rock_ridge.name() < currpath:
                      lo = mid + 1
                  else:
                      hi = mid
              index = lo
              tmpchild = thelist[index]
              if index != len(thelist) and tmpchild.rock_ridge is not None and tmpchild.rock_ridge.name() == currpath:
                  child = thelist[index]
              if child is None:
                  break
              if child.rock_ridge is not None and child.rock_ridge.child_link_record_exists():
                  child = child.rock_ridge.cl_to_moved_dr
                  if child is None:
                      break
              if not splitpath:
                  return child
              if not child.is_dir():
                  break
              entry = child
              currpath = splitpath.pop(0).decode('utf-8').encode('utf-8')
          raise pycdlibexception.PyCdlibInvalidInput('Could not find path')