def unpack_apply_message(bufs, g=None, copy=True):
bufs = list(bufs)  <EOL>assert len(bufs) >= <NUM_LIT:2>, "<STR_LIT>"<EOL>pf = buffer_to_bytes_py2(bufs.pop(<NUM_LIT:0>))<EOL>f = uncan(pickle.loads(pf), g)<EOL>pinfo = buffer_to_bytes_py2(bufs.pop(<NUM_LIT:0>))<EOL>info = pickle.loads(pinfo)<EOL>arg_bufs, kwarg_bufs = bufs[:info['<STR_LIT>']], bufs[info['<STR_LIT>']:]<EOL>args = []<EOL>for i in range(info['<STR_LIT>']):<EOL><INDENT>arg, arg_bufs = deserialize_object(arg_bufs, g)<EOL>args.append(arg)<EOL><DEDENT>args = tuple(args)<EOL>assert not arg_bufs, "<STR_LIT>"<EOL>kwargs = {}<EOL>for key in info['<STR_LIT>']:<EOL><INDENT>kwarg, kwarg_bufs = deserialize_object(kwarg_bufs, g)<EOL>kwargs[key] = kwarg<EOL><DEDENT>assert not kwarg_bufs, "<STR_LIT>"<EOL>return f, args, kwargs<EOL>
Unpack f,args,kwargs from buffers packed by pack_apply_message().

    Returns: original f,args,kwargs