def METHOD_NAME(self, size=None):
    if self._remaining == 0:
        return b""
    if size is None:
        e = self._base_data_length
    else:
        e = size
    e = min(e, self._remaining)
    if e > self._base_data_length:
        self._base_data = urandom(e)
        self._base_data_length = e
    self._remaining = self._remaining - e
    return self._base_data[:e]