public static function uCheck(string $stmt, int $offset, bool $has_Space = true)
    {
        if (strlen($stmt) > ++$offset) {
            switch ($stmt[$offset]) {
                case 'P':
                case 'p':
                    if (strlen($stmt) > $offset + 5) {
                        $c1 = $stmt[++$offset];
                        $c2 = $stmt[++$offset];
                        $c3 = $stmt[++$offset];
                        $c4 = $stmt[++$offset];
                        $c5 = $stmt[++$offset];
                        if (($c1 == 'D' || $c1 == 'd')
                            && ($c2 == 'A' || $c2 == 'a')
                            && ($c3 == 'T' || $c3 == 't')
                            && ($c4 == 'E' || $c4 == 'e')
                            && ($has_Space ? (' ' == $c5 || '\t' == $c5 || '\r' == $c5 || '\n' == $c5) : true)) {
                            return self::UPDATE;
                        }
                    }
                    break;
                case 'S':
                case 's':
                    if (strlen($stmt) > $offset + 2) {
                        $c1 = $stmt[++$offset];
                        $c2 = $stmt[++$offset];
                        if (($c1 == 'E' || $c1 == 'e')
                            && ($c2 == ' ' || $c2 == '\t' || $c2 == '\r' || $c2 == '\n')) {
                            return ($offset << 8) | self::USE;
                        }
                    }
                    break;
                case 'N':
                case 'n':
                    if (strlen($stmt) > $offset + 5) {
                        $c1 = $stmt[++$offset];
                        $c2 = $stmt[++$offset];
                        $c3 = $stmt[++$offset];
                        $c4 = $stmt[++$offset];
                        $c5 = $stmt[++$offset];
                        if (($c1 == 'L' || $c1 == 'l')
                            && ($c2 == 'O' || $c2 == 'o')
                            && ($c3 == 'C' || $c3 == 'c')
                            && ($c4 == 'K' || $c4 == 'k')
                            && ($c5 == ' ' || $c5 == '\t' || $c5 == '\r' || $c5 == '\n')) {
                            return self::UNLOCK;
                        }
                    }
                    break;
                default:
                    return self::OTHER;
            }
        }
        return self::OTHER;
    }