docs: def decode_varint_1(buffer, pos=0):
      """ Decode an integer from a varint presentation. See
      https://developers.google.com/protocol-buffers/docs/encoding?csw=1#varints
      on how those can be produced.
  
          Arguments:
              buffer (bytes-like): any object acceptable by ``memoryview``
              pos (int): optional position to read from
  
          Returns:
              (int, int): Decoded int value and next read position
      """
      value = 0
      shift = 0
      memview = memoryview(buffer)
      for i in range(pos, pos + 10):
          try:
              byte = _read_byte(memview, i)
          except IndexError:
              raise ValueError("End of byte stream")
          if byte & 0x80 != 0:
              value |= (byte & 0x7f) << shift
              shift += 7
          else:
              value |= byte << shift
              break
      else:
          # Max size of endcoded double is 10 bytes for unsigned values
          raise ValueError("Out of double range")
      # Normalize sign
      return (value >> 1) ^ -(value & 1), i + 1