#!/bin/bash
Alf ="QqWwEeRrTtYyUuIiOoPpAaSsDdFfGgHhJjKkLlZzXxCcVvBbNnMm0123456789"
Smb =".-_"
AlSm ="QqWwEeRrTtYyUuIiOoPpAaSsDdFfGgHhJjKkLlZzXxCcVvBbNnMm0123456789.-_"
Aa ="QqWwEeRrTtYyUuIiOoPpAaSsDdFfGgHhJjKkLlZzXxCcVvBbNnMm"
read N
while ( ( N--) )
do
read VAR
let len =${#VAR}
let i =-1
for ( ( j =0 ; i< len; j++) )
do
let i =$i +1
echo $i
val =${VAR:$i:1}
if [ "$val " == "@" ]
then
let i =$i +1
break
fi
AAA[ j] =$val
done
let lenA =$j
for ( ( j =0 ; i< len; j++) )
do
let i =$i +1
echo $i
val =${VAR:$i:1}
if [ "$val " == "." ]
then
let i =$i +1
break
fi
BBB[ $j ] =$val
done
let lenB =$j
for ( ( j =0 ; i< len; j++) )
do
let i =$i +1
echo $i
val =${VAR:$i:1}
CCC[ $j ] =$val
done
let lenC =$j
echo
echo AAA
if [ "$lenA " -le "1" ]
then
echo "NO0"
continue
else
val =${VAR:0:1}
C =${Alf/$val}
if [ "$C " == "$Alf " ]
then
echo "NO1"
continue
else
for ( ( j =1 ; j< lenA; j++) )
do
val =${VAR:$j:1}
C =${AlSm/$val}
#
echo $val $C
if [ "$C " == "$AlSm " ]
then
#let flag=1
echo "NO2"
break
fi
done
if [ "$j " -lt "$lenA " ]
then
continue
fi
fi
fi
echo
echo BBB
if [ "$lenB " -eq "0" ]
then
echo "NO3"
continue
fi
for ( ( j =0 ; j< lenB; j++) )
do
val =${VAR:$j:1}
C =${Alf/$val}
echo $val $C
if [ "$C " == "$Alf " ]
then
#let flag=1
echo "NO4"
break
fi
done
if [ "$j " -lt "$lenB " ]
then
continue
fi
echo
echo CCC
if [ "$lenC " -le "4" ]
then
if [ "$lenC " -ge "2" ]
then
for ( ( j =0 ; j< lenC; j++) )
do
val =${VAR:$j:1}
C =${Aa/$val}
echo $val $C
if [ "$C " == "$Aa " ]
then
#let flag=1
echo "NO5"
break
fi
done
if [ "$j " -lt "$lenC " ]
then
continue
fi
else
echo "NO6"
continue
fi
else
echo "NO7"
continue
fi
echo "YES"
done
IyEvYmluL2Jhc2gKQWxmPSJRcVd3RWVSclR0WXlVdUlpT29QcEFhU3NEZEZmR2dIaEpqS2tMbFp6WHhDY1Z2QmJObk1tMDEyMzQ1Njc4OSIKU21iPSIuLV8iCkFsU209IlFxV3dFZVJyVHRZeVV1SWlPb1BwQWFTc0RkRmZHZ0hoSmpLa0xsWnpYeENjVnZCYk5uTW0wMTIzNDU2Nzg5Li1fIgpBYT0iUXFXd0VlUnJUdFl5VXVJaU9vUHBBYVNzRGRGZkdnSGhKaktrTGxaelh4Q2NWdkJiTm5NbSIKCgpyZWFkIE4Kd2hpbGUgKChOLS0pKQpkbwoKcmVhZCBWQVIKICAgbGV0IGxlbj0keyNWQVJ9CiAgIAogICBsZXQgaT0tMQogICAKICAgZm9yICgoaj0wOyBpPGxlbjsgaisrKSkKICAgZG8KICAgICAgbGV0IGk9JGkrMQogICAgICBlY2hvICRpCiAgICAgIHZhbD0ke1ZBUjokaToxfQogICAgICBpZiBbICIkdmFsIiA9PSAiQCIgXQogICAgICB0aGVuCiAgICAgICAgIGxldCBpPSRpKzEKICAgICAgICAgYnJlYWsKICAgICAgZmkKICAgICAgQUFBW2pdPSR2YWwKCiAgIGRvbmUKICAgbGV0IGxlbkE9JGoKICAgCiAgIGZvciAoKGo9MDsgaTxsZW47IGorKykpCiAgIGRvCiAgICAgIGxldCBpPSRpKzEKICAgICAgZWNobyAkaQogICAgICB2YWw9JHtWQVI6JGk6MX0KICAgICAgaWYgWyAiJHZhbCIgPT0gIi4iIF0KICAgICAgdGhlbgogICAgICAgICBsZXQgaT0kaSsxCiAgICAgICAgIGJyZWFrCiAgICAgIGZpCiAgICAgIEJCQlskal09JHZhbAogICBkb25lCiAgIGxldCBsZW5CPSRqCiAgIAogICBmb3IgKChqPTA7IGk8bGVuOyBqKyspKQogICBkbwogICAgICBsZXQgaT0kaSsxCiAgICAgIGVjaG8gJGkKICAgICAgdmFsPSR7VkFSOiRpOjF9CgogICAgICBDQ0NbJGpdPSR2YWwKICAgZG9uZQogICBsZXQgbGVuQz0kagoKCgogICBlY2hvCiAgIGVjaG8gQUFBCiAgIAogICBpZiBbICIkbGVuQSIgLWxlICIxIiBdCiAgIHRoZW4KICAgICAgZWNobyAiTk8wIgogICAgICBjb250aW51ZQogICBlbHNlCiAgICAgIHZhbD0ke1ZBUjowOjF9CgogICAgICBDPSR7QWxmLyR2YWx9CiAgICAgIAogICAgICAKICAgICAgaWYgWyAiJEMiID09ICIkQWxmIiBdCiAgICAgIHRoZW4KICAgICAgICAgZWNobyAiTk8xIgoJIGNvbnRpbnVlCiAgICAgIGVsc2UKICAgCiAgICAgICAgIGZvciAoKGo9MTsgajxsZW5BOyBqKyspKQogICAgICAgICBkbwoJICAgICAgICB2YWw9JHtWQVI6JGo6MX0KCQogICAgICAgICAgICBDPSR7QWxTbS8kdmFsfQogICAgICAgICAgICAjCiAgICAgICAgICAgIGVjaG8gICR2YWwgJEMKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIFsgIiRDIiA9PSAiJEFsU20iIF0KICAgICAgICAgICAgdGhlbgoJICAgICAgICNsZXQgZmxhZz0xCgkgICAgICAgZWNobyAiTk8yIgoJICAgICAgIGJyZWFrCiAgICAgICAgICAgZmkKCSBkb25lCgkgaWYgWyAiJGoiIC1sdCAiJGxlbkEiIF0KCSB0aGVuCgkgICAgY29udGludWUKCSBmaQogICAgICBmaQogICBmaQogICAKICAgZWNobwogICBlY2hvIEJCQgogICAKICAgaWYgWyAiJGxlbkIiIC1lcSAiMCIgXQogICB0aGVuCiAgICAgIGVjaG8gIk5PMyIKICAgICAgY29udGludWUKICAgZmkKICAgCiAgIGZvciAoKGo9MDsgajxsZW5COyBqKyspKQogICBkbwoJICAgIHZhbD0ke1ZBUjokajoxfQoKICAgICAgICAgICAgQz0ke0FsZi8kdmFsfQogICAgICAgICAgICBlY2hvICAkdmFsICRDCiAgICAgICAgICAgIGlmIFsgIiRDIiA9PSAiJEFsZiIgXQogICAgICAgICAgICB0aGVuCgkgICAgICAgI2xldCBmbGFnPTEKCSAgICAgICBlY2hvICJOTzQiCgkgICAgICAgYnJlYWsKICAgICAgICAgICBmaQogICBkb25lCiAgIGlmIFsgIiRqIiAtbHQgIiRsZW5CIiBdCiAgIHRoZW4KICAgICAgY29udGludWUKICAgZmkKICAgCiAgIAogICBlY2hvCiAgIGVjaG8gQ0NDCiAgIAogICBpZiBbICIkbGVuQyIgLWxlICI0IiBdCiAgIHRoZW4KICAgICBpZiBbICIkbGVuQyIgLWdlICIyIiBdCiAgICAgdGhlbgogICAgICAgIGZvciAoKGo9MDsgajxsZW5DOyBqKyspKQoJZG8KCSAgICB2YWw9JHtWQVI6JGo6MX0KCQogICAgICAgICAgICBDPSR7QWEvJHZhbH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGVjaG8gICR2YWwgJEMKICAgICAgICAgICAgaWYgWyAiJEMiID09ICIkQWEiIF0KICAgICAgICAgICAgdGhlbgoJICAgICAgICNsZXQgZmxhZz0xCgkgICAgICAgZWNobyAiTk81IgoJICAgICAgIGJyZWFrCiAgICAgICAgICAgZmkKICAgICAgICBkb25lCglpZiBbICIkaiIgLWx0ICIkbGVuQyIgXQoJdGhlbgogICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgZmkKICAgICBlbHNlCiAgICAgICAgZWNobyAiTk82IgoJY29udGludWUKICAgICBmaQogICBlbHNlCiAgICAgIGVjaG8gIk5PNyIKICAgICAgY29udGludWUKICAgZmkKICAgZWNobyAiWUVTIgpkb25lCgogICAKICAgICAgCiAgICAgIAoKCiAgIAogICAKCgo=