'Return list of lines in this blob.
This preserves the original line endings.'

def splitlines(self):

    chunks = self.chunked
    if (not chunks):
        return []
    if (len(chunks) == 1):
        return chunks[0].splitlines(True)
    remaining = None
    ret = []
    for chunk in chunks:
        lines = chunk.splitlines(True)
        if (len(lines) > 1):
            ret.append(((remaining or '') + lines[0]))
            ret.extend(lines[1:(-1)])
            remaining = lines[(-1)]
        elif (len(lines) == 1):
            if (remaining is None):
                remaining = lines.pop()
            else:
                remaining += lines.pop()
    if (remaining is not None):
        ret.append(remaining)
    return ret
