/* package whatever; // don't place package name! */
import java.util.*;
class M{
int i = 0,
j;
while(i < 67){
m.put("abcdefghijklmnopqrstuvwxyzABBCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.?! ".charAt(i),
"ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz∀𐐒ƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Z0⇂ᘔƐ߈ϛ9ㄥ86˙¿¡ ".charAt(i++));
}
z[] = (q + (s.equals(q)
? ""
).split("_"),
r = "";
for(i = -1; ++i < z.length;){
q = "";
for(char c : z[i].toCharArray()){
q += m.get(c);
}
r += i%2 < 1
? z[i]
: q;
}
return r;
}
public static void main
(String[] a
){ System.
out.
println(c
("_Will I be mirrored?!")); System.
out.
println(c
("Wi_ll I be mi_rrored?!")); System.
out.
println(c
("Will I be mirror|ed?!")); System.
out.
println(c
("This_ is a test_ cont_aining bo|t_h mirrors.")); System.
out.
println(c
("0_1_2_3_4_5|_6_7_8_9")); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwpjbGFzcyBNewogIHN0YXRpYyBTdHJpbmcgYyhTdHJpbmcgcyl7CiAgICBNYXAgbSA9IG5ldyBIYXNoTWFwKCk7CiAgICBpbnQgaSA9IDAsCiAgICAgICAgajsKICAgIHdoaWxlKGkgPCA2Nyl7CiAgICAgIG0ucHV0KCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkuPyEgIi5jaGFyQXQoaSksCiAgICAgICAgICAiyZBxyZRwx53Jn8mTyaXEscm+yp5sya91b2RiyblzyoduyozKjXjKjnriiIDwkJCSxobhl6HGjuKEsuKFgUhJxb/ii4rihYJXTk/UgM6M4bSaU+KKpeKIqc6bTVjihYRaMOKHguGYlMaQ34jPmznjhKU4NsuZwr/CoSAiLmNoYXJBdChpKyspKTsKICAgIH0KICAgIFN0cmluZyBxID0gcy5zcGxpdCgiXFx8IilbMF0sCiAgICAgICAgICAgeltdID0gKHEgKyAocy5lcXVhbHMocSkKICAgICAgICAgICAgICAgICAgICAgICAgPyAiIgogICAgICAgICAgICAgICAgICAgICAgICA6IG5ldyBTdHJpbmdCdWZmZXIocSkucmV2ZXJzZSgpICsgIiIpCiAgICAgICAgICAgICAgICAgKS5zcGxpdCgiXyIpLAogICAgICAgICAgIHIgPSAiIjsKICAgIGZvcihpID0gLTE7ICsraSA8IHoubGVuZ3RoOyl7CiAgICAgIHEgPSAiIjsKICAgICAgZm9yKGNoYXIgYyA6IHpbaV0udG9DaGFyQXJyYXkoKSl7CiAgICAgICAgcSArPSBtLmdldChjKTsKICAgICAgfQogICAgICByICs9IGklMiA8IDEKICAgICAgICAgICAgPyB6W2ldCiAgICAgICAgICAgIDogcTsKICAgIH0KICAgIHJldHVybiByOwogIH0KCiAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYSl7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oYygiX1dpbGwgSSBiZSBtaXJyb3JlZD8hIikpOwogICAgU3lzdGVtLm91dC5wcmludGxuKGMoIldpX2xsIEkgYmUgbWlfcnJvcmVkPyEiKSk7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4oYygiV2lsbCBJIGJlIG1pcnJvcnxlZD8hIikpOwogICAgU3lzdGVtLm91dC5wcmludGxuKGMoIlRoaXNfIGlzIGEgdGVzdF8gY29udF9haW5pbmcgYm98dF9oIG1pcnJvcnMuIikpOwogICAgU3lzdGVtLm91dC5wcmludGxuKGMoIjBfMV8yXzNfNF81fF82XzdfOF85IikpOwogIH0KfQ==