code: func Unpack(r io.Reader) ([]byte, error) {
  	var bl [2]byte
  
  	_, err := io.ReadFull(r, bl[:])
  	if err != nil {
  		return nil, err
  	}
  
  	n := binary.LittleEndian.Uint16(bl[:])
  	buf := make([]byte, int(n))
  	_, err = io.ReadFull(r, buf)
  	return buf, err
  }
docs: // Unpack reads a message from an io.Reader.