def parse_icap_response(data):
    with closing(BytesIO(data)) as fp:
        icap_status = fp.readline()
        icap_msg = HTTPMessage(fp)
        icap_msg.status = icap_status
        enc_header = icap_msg.get('encapsulated')
        enc_offsets = [offset.strip() for offset in enc_header.split(',')]
        enc_msg_1 = parse_enc(fp, enc_offsets[:1])
        enc_msg_2 = parse_enc(fp, enc_offsets[1:])
        chunks = fp.read()
    return Message(icap_msg, enc_msg_1, enc_msg_2, chunks)
def parse_msg(fp):
    status = fp.readline()
    msg = HTTPMessage(fp)
    msg.status = status
    return msg