protected function parseResponse($string)
    {
        $exp = explode(Driver::SEP, $string);

        if ($exp[0] != 0) {
            throw new HSException(isset($exp[2]) ? $exp[2] : '', $exp[0]);
        }

        array_shift($exp); // skip error code

        $numCols = intval(array_shift($exp));
        $exp = array_map([$this->socket, 'decode'], $exp);

        return array_chunk($exp, $numCols);
    }