########++++zz++*ii*+#######zzzzzzzzzzzznnnnzzzzzz##################zzzzzzzzz#########++zz#znz#zzzznnnnnxMnnnnnzzzzzzzz####zzznzznnxxxxxxxxxnxMMMMMxxz
##########++znz#*iiii*#zzzzzzznnnnnnnnnnnnzzzzzzzz#############zz#z##zzzzzz###########++zz##z#zzzzznnnxxMMxnznzzz#zznnnzz#zzznnxxxxMMxxzz#zzxMWWMMxnnz
zzzzzz#####+#zz##+iii;ii#znnnnnnnnnnnnnnzz#*ii*iii**########zzzzz########################nz#nnnznnznxMMMMxnzzzzz#zznnxxnnzzzzznxMMMxn+##zznxMWWWMMxnz#
zzzzzzzzz##++#####+iii;;ii*znnnnnnnnnnn+**iiiii;:;iiii*+##zzzzz#####z####################zzznnnzznzzxxMMxzzzz#z##+#znxxnnnzzzzznnz#####znnxMWWMMMxnnz#
zznnnnnnz##++#znz#++*ii;;;;i+nnnnnnnnz#++*+*iiiii;iiii*i++*******+######################+#znz#zzzzzznxMxzzzzzzzz#++#znnnnzxnnzzzz###zzznnxMMMMMMxxnnz#
nnnnnnnnzz+*+#znnz##+**ii;;i;i+nnz+***++*++++**iiiiii+*i**+++++*i*i+##############+++#+####n##z#zzzzznxx#zzznnzz##+##zznzzxxnn#zzzznnnxxMMxMxxxxxxnzz#
xxxxxxxz#**ii+#nnxn+++++iii;;iiii;;;*++++++*ii;;;;:;;;i;;i*+#++***ii++############++++++##zzzzzzznzznMxzzzzzzzz#z#####znnznxxnzznnnnnxxMxMMxMMMxxnz##+
MMMMMMxnzz#+++#znxnz++**ii;;;;;iii*++##++*i;;iii;::::;:::i;;;*##++*ii**+z#####++++++++++##zzznnznznnxMnz#zzzzz#zzzzzz#znnznnxxnnnnnnnxxxxnxxxxMxnzz##+
MMMMMxxxnz####zznnzz#+**iii*iiii+++#z#+**ii**i;;;::::;;:;;;;;ii*+++iiii*+###+*;::;;i*+++##zzzznnnnxxMxzz#####z#znzznzzzznnnnnnxnnnnxnxxzxMnnnnnnz###+*
MMMMMMxxxnz++#znnxzz##+iii**i;ii*+#zz#+*****i;;;::::iii;;:;;ii****ii;,::;*#*:,,:;;;ii++##zz#+#zznnxMMnzz#####+##znznnzznznnnnnnnnnnnn#zxzxnnnzz#zz++++
MMMMMxxxn#+++######+++#++#**iii*+##z#+**i*i;;;;;;i*;iii;:::i**i**iii;::::,;*i;;;;i;ii++###z++#zzznxMxnnz####z###zzzzznznnznnxxxxxn#n##+zn#nnnzz###+++#
MMMxxxnz+++++#+**++++##+####*i*+#zz#++ii;i;;;;;ii;i;+*i::;;i**+++*iii;;:::::;i;;;i;iii+++z#+#zznnnxxxnn###zzz####nzzzzznzznnnxMMMxnz++#+zzznxxn####**#
MMxxxxz#####+++++#zzzzzzz#zz+*+#znz+ii;;;;;;;i*+*;:,##iii**i****+##++*i;;,,,:;i;;ii;iii;####znxnxnxxxznz#zzz#####zzzzzzzzzzznxxMMMMxz##++##znxnnzz#+**
xxxxxn#zzz#*++##znxxxxMMMxnz##znnz+ii;;;iii*+##+*;::++i**+*+***i**+++++*;;:,:;iii;iii;:iz+##znnxxnxxnnnz#zz#+##z+####z#zzzzzznnxMMWMxnz#+++++####z#+++
xxxxnznnnz##zzzzzxxMMMMMMMx##zxxz*iii;i+##zzz##++*+****+###+*++****iiiiii;i:::;;;;***;;##zzzznnxnxxnxnzz##++*+##++###z#zzzzzznnnxMWWWxn#+#++*+*+*+++**
xxxnnnnnnnnznnnnnxMMMMMMMnz##nxz*iiiii*nMMMMWWWMxzzz#**+#n#zzz+*ii;;;:;;i;*i;,;::;***i*++nz#znnxxxnnnz#z#****+#++#+####zzzzzzzzznxMMMWMxnxnz##+++*+#++
xxnnnnnnnnnnnnnznxxMMMMxn#+#znz+*iii**#nnnznzznzznnzx#i;*nxn#*iiii::::;;iiiii::i:;;i****+##zzznMMxnzz##z#+i+*++#+++####z#zz#z##znnxxMWMWMWMMxnnnnnz##+
nnnnnnnnnnnznnnznnnnxnxn++#nnn#+i***++nnzzzz##z#zzznixx*;i+zz#+**i;:::;;i*+*+i:*;,;;*+i+#+#znnnxMnnz#+++++**+++########z#zzzz##zzznxMMMMMMMMMMMxnzn###
nnnnnnnnnnzznnzzzzzzz#####znx#+****++znzzzznzznnz#nxn*MM+*++*+##+i::,:i;:*+##+:;:.:;+**+++#znznxxnz#+++++++#+#######zzzzzz##zzzzznnxxxxxxxxxxxnznz####
nnnnnzznnnznnzzz####+###zznxz+***++#zzz##znznnnn#zxxxn+nxnz*+###*ii;::;i;;+#ni:::.;ii++++##zznxxnnz#++####+zz#########zzzzzzzzzznznnnnnnnzzzzzzznz#zz#
nnnnnzzznnnnnzznnzzzzznznnxx#*+*+*++#z###nznz#znznnnnxnzzxx#+*+*i*ii;::::;;+*,,**;iii*####zznxxnnn##+##znnznzz##zzzzz###zzzzzzzznnzzznzzzzzz###z#n###z
zzzzzzzzznnnnnznxxnnnzznxxxz+**+++++####zzzzz+#zznnxnnnnzxxzz+***ii;;;;::;;ii;+*zznnn#z#z#znnxxnzz#z+++#znnnnnzzz#z#z##++###zznzzznnnnzz###+##+##znz##
znzzzzznnnnnnnnnxxxnnnnxxn#***++++++###zzzzz#++##znnzzzz#zxn#+**+**ii;;:;;:;ii+*z#+i+znznznnxxxzzzzz+**##znnnnzzz#zzz##+###zznnzzznzzzz#z##+++++++nz++
nnnnnnnnnnnnnnnnnxnxxnnxn+**+*++z##zzzzznzzzzz#z+zz####+#nnzz++#****iii;;;;;:i+n##+iiinnnxnnxMxn#zzz#++*+#nnxxzzzzz#z#####zzzzzzznzzz##zz#++++++z++##+
nnnnnnnnnnnnnnnnnxxxxnnx#+++++#+##zzzznnznnzz#+++z####+##z#z#++****+*ii;;:;:;;;z##+***nnxxxxxMxxnnz#zxz###nxxnzz####zz##+#zzzzznnnnzzzzz#z##+++#++++++
nnnnnnnnnnnnnnnnnxxxnnnz++##+###zzzzznnnnz###+*+###+#+++#+#++#####++***i;:::::;i+*++++xxnxxxxMMnn###nnnn##xxnzz#####znzz####zzzznnnzznzzz#z+++++z#z##+
nnnnnnnnnnnnnnn#znnzzzz#++######zzzzznnnz##+#z+##+##++##+#+*#++++++*ii;;;;:::::;;**ii+xnnxxnxMMzzz#+znznnzxnnnnzzz##zxxn####nnnnnxxnnzzzzz###+*#######
nnnnnnnnnnnnnn+*#zzz###+#######zzznznznnz###z#+++++#+####z##***#n#+i::,,:;;;;,,,::iiiinxnnnxxMxz#z#*#nnxxznxnxxnnnzznMMnz##znxxxnxxnnnnzzzz++#++z#++#+
nnnnnnnnnnnnn#*+#zzz###+###zzzzznnnzzznnzz##z##+#+#++##zz#+z+#*inz+*++*;:;ii;,...,:i;i#xxnxxMMxzz##+#nMxnnnxxxxxxxxMMMxxzzzznxxnnnxnnnznnzz##**#zzz+++
nnnnnnnnnnnnz**+zzzzzzz+zzzzzzzzznnnzzzzznzz#+###*+++###z#znz#+ii##zWWMz#+i*i:,,`.,i;;*MxnxxMMzzzz####nMxzxMxxnxxMMMxMxnnzzzznnnnnnnnzznnnz#++++####++
nnnnnnnnnnnn+*+zzznnnz###zznzzznzzzzzzz##z#####++**++#z#+++#xzn+iin@@#@x++###++#+,:,;:ixnxxxMxzzzzzzzzxMMnxMxxxxMMMxxxxxnnnzznnnxxxnnnnnnzz####+++****
nnnnnnnnnnz**+#zznnnnn###zz#zzzznzz###zz######+++####+##z#++zxz**i*x###W+**+++#xM*,`::ixxxxxxxzznnnnnnxMxxMMMMxMWWMxxxnzzzznnnnnxxnnnnnnnzz#+##+*+****
nnnnnnnnz#**+#zznnnxnn##zzz#zzzzzzz###########++#+#****+****#nn#z##*n###z***++xWM;.`,:iMMxxxxxnnnnxxnnxWMWWWWMW@MMxxMxnzzznnxnnnxxxnnnnnnzz######+++**
nnnnnn#+***++#znnnnnznz##zzzzzzzzzz##+####zzz#####++z+*i+#n#n+nzn+i;;z##M#+#+z@W#:..::+xxxxxMnnnnxxMMMMxxW@MxW@WMxxMxnzzzznxxxxxxxxnnnnnzzzz####+++++*
nnnnz++*ii*++#znnznnzn###zzzzzznzzzz#####zzzz####++++**+n++i******i;:;n@M####Mx+i;;,::zMxxxxxnnnnxxMMMxnx@xxW@WWMMMMxnzzznnxxxxxxxnnzzznzz######+++**+
nnnz++iiii+###zznzznnz#####zzzzzzz########zz###**+++**+i;;;ii**#++*i;:;MWxn#z#*:,,i*:;xMMxxxzzznnxxxxxnzWWnW@WWMWMMMnnzzznnxnxxxxxnnznzzzzz##+++++****
nnz+*iiii*#+#zzzzzznnn#####zzzzzzz#########+*ii*+++*i;;;i**#+n+n###++;:*Mnx#ni,....:::MMMxxMznnnnxxxMnzn@xx@WMMMMMMxxnnnnnnnxxxxxnnnnznzzz###+#+++***+
nz+*iiiii+####zzzzznnz+++##zzzzzz########+i*+#+++++*iiii+z#x+n+*#+ii;i::Mxxnz:..,..``,nMxxMxnznnnxxxnz#xWnWWWMMWMMMxxnzzznxnnnxnnnxnzzzznn#++++++++*i+
##*iiiii*##zzzzzzznnn#+#+#zzzzzzz####z#+**++##+iiii;::;+**++;++***i;:,,,nMMx*,,::::,``+WMxMxnnnznnxxxzzMMMWWWWMMMMMxxnzzznnnnnnnnnnnzzzznzz#++++++*+**
#*ii****+#zznzzzzznnn+#++#zz##zz###zz#*+###+***+#+i:i++#+**+:+++***;;:,.,Mn:;:,...:,,`.xWMxnzzzznnnxxzxWxWWWWWWMMMxxnzz#znnnnnnnnnnn##zzz#######+#+*ii
*ii****+##zzzxnzznnnn##+###zzzzz###z++zzz+**+####;;*+##nzzznixnn+#+*;:,``*:.,.......,,`;*zxnzzzzzzznxxMMxWWWMMMMxxxnzzzzznnnnnnnnnnz##zzzzz##++#++#*ii
i***+++##zzznxnzznxnn+######z#z####+#zz#++##++##**+*;:#nnnn#inzz++++*:,.`.....``....``.*z*;+#zzzznnxWWWxxWWWWMMMxnnzznnzzzznxnznnnz###zzzzzz#+++++*+**
i**++####znnnxnzznnnn+##++#####z###zz#+#zz##++###+;,i#znz++;ii*+i*i;ii:,..,,,.``.,:,.``:nMni:i#zznxxMMMnxMMWWWWWMxnzznzzzzznnzznnz#+##zzzz####++++*+ii
*+++#z##zzznnxnnnnnnz###+##zzzzz##zz#zzzzzz#++++*:;++++#n;*+#i++iiii;i;,.::,,,,,,:::,.`.*#z+*i;i+zxxxMMxxMxMWWWWMxnzzzz#zzznzzznnz#++#znz###+*++++**+i
++++###zznnznnnnnnznz###+#zz#zzz+zzzzzzzzzz##++i:*##+**#**nMM*nz+*+*i;;,,;;::,,..,,,.:;,+#Mnz#+#**+nxMMxxWxxMMWWMMxzz##znzznnznxnz#++##zz####+++**+*++
++#####znnnnnxxxxnzzn##++#zz#zzz#zzzzzzz#zzz#+;:*+##i+z#;#zxniz++*+*i;;:;*;,,,,,.,,.``,#++znz#++#+#znxMxxWMnxMWMxxxzzzzzzznnznnxnz#++##zz#zz+++++*****
+####zzznnxxnnnnxnnzz+#+#####zz#zzzzzzz##zzz#i;**++*nn+*i+nz#*++++++*i*#xx*;;;,:,:,:,,.;nn+zz###+##nznxxxMMznxMMMnnnnnzznnnnnnxxz####z+#zz#z#+++#+#*i*
##zzzzzznnxxxnnnnxnnz######zz##zzzzzzz###zz#ii+***nWWz#+izn#+#*+#++**#nnnMx#*i;::::;i:.,*xx+nzz###zzxxxxxxMnznxxxnnnzznnxnnznnxnz###nxn##z#+#+###++***
##zz##zznnxMxnnxxxxnz######zz##zzzzzzz#z#zz*i#+*;zW@nnW;zMnz+z*+#++###z###nxz*i;;;::;;*,,*xzzzz###znnxxxxxxn#znxxnz##zznnzzznnnnz##znxnnz##+++###++***
##zzzzzznxxMxxxnnxxxn#####z###zz##zzzzzz+#*i##+i+xWxnWn*@Wxxzxz###++++*i+++#xz*;;i;:::+i;ii++zzzzzznxMxxxnxxz#zzn#z###zz###znnnzz##zxxxzz#+++##+###++*
#znzzznnxxxxMxxxnxxnx###########zzz#zzz##*+##+i+zMMz@MixWMxWnxx**+ii;*+;;;***n#ii*i;:ii;iii**+nz#zznnxMxxxxxn++zz###+##z###znnz####xxnnz##++##++##+#+*
##znnnnnnxnxMMxxxnnxx##########z#z##zzzz++##+*++zn#WWzinxMnM#++;;i;:i;i;:,;;;i#z##+*i+*+*+ii**znznnnnxxxxnxxzz#znnz#######znnzz#+#nxnzz#+####+###++++*
#zznnnnnnnxxxMxxxxnnxz#+#z###zz##z##z#z#*##+*#++#+nMx**z#xzz*i;i;:::,,,,:.,,,,;+nnnzn++#**#;*i#znxxznxxnxnxxnz##znnzzzz###znz#+++#znzz##+###+*##++**++
#znznnnxxxnnMMxnxxxnxn#+######z####zz#z*##+*###+++nx#*+++#+*i;:;:::;,.,.:.`..`.,*+#xnn#zzi**i*+#nnxxnxxnnnxxnz##znznnnzz##zzz#++#+zzz#####++#*++*+**+z
#znnnnnnxnnxxxxnxxxxxxz###########zz#z++##*+####*###++****;;:;::,:;:,.,..,`..```.::*zznnn#*+*++z#nMnxxxnnxxnnn##zzzzzzz##zzz#+++xnzz####+*+####+***##z
#znnxxnxxxnxxxxxxxxxxxz#######z##z####+##++#####+##+#***ii;i;;::,:,,.....:,``.````.i#znxn#+*+#*znzxnxxnnnnnnnnz##zzzz#####z#+**znnn####++*+#zz#+***#z#
zznxnnnnnnnxMMxxxxxxxnz##########z#z#####+#####+#z#+#*+*;i;;::,:;;,,....,,:.`.`````,*znxnz##*#++nx#znnxnnznxxnzz##zz#####z##+*+nnzz##++++i*+###*i*##z#
zznxxxxxxxxxMxxxxxnxxnnzz###z###z######z+#z####+##+++*+*ii;::,,:i:,::`.,.,,,.`.````:##znnzzz++##zznznnnxxznxxnzz#+#########+*i+nnz###++***i+#z#+*+zn##
zznnMxxxxxxxxxxxxxxxxxnnz###z##z###z##z##zz####+##+#+***ii;::,,;;:,;;,,:.,,:,,,````.+nxnnznz#++z+znnnnxnxxxnxnzz++#####+###+*i#nnz##+**+***+##+++#zzzz
znznxxxxxxxnMxxxxxxxxxxxzz#zz######zzzz#zzzzzz###+###+*+*i;;:::i;,:i;:::,,,,:,,.``,;*zxnnnz#z+###MxnnnnnnxWMnz##*+#######++***znnn##+**+***++###zzznzz
znznnxnMxxxxMxMxxxxxxMxxnz#zz###z##zzz#zzzzzzz###+zz##+#+*i;iii*;.;i;;;;,,,.::,.`.,*znnnnnz##+++zMMznnnnnnMMnzz++*####+#++i*i*nnnz#++**+****++zznz#n##
znnnnnxMxnxMMxxxxxxxxxxxnnzzz##zz#zzz#znnznzzz#z##zzzz#+#+***iii;,iiiii;,;,,:;:,.,i+znxnnn##***+MWnnnMxnnxnnnnn#**######+*i*i+znzz##+**+***++#zzzzzz#z
nnnnnnnxxxxMxMMMxxxxxxnnnnnnzzz#zzzzzznnnnzzzn#z#zzzzzz####*+;;;;:ii+iii:;:,,;;:,,#znnnxxnz#+**zMWznnxxxxxMnWnx+++####+#+*iii#nzz##++**++++z#znnznzzzz
nnnxnnnnMMMxMMMMxxxxxnnnnnnnnzzzzzzznnnnnnznnn#zznnnnnzzzz##+;i*i;**+*ii;i:;;ii;;;+xMxxnxxxxxzzxMxnnxMMMWxMxx##+z#zz####*ii;izznzz#+++**+zznznnznnzzzz
znnxnxnxxMMxMMMMMxxxxnnnnnnnnzzzzzzznznnnnnnnn#znnnnnnnnnzz#*i*+i*++++*+ii;i**i;iiinMMMMMWW@@M@WnnxMWMMxxznzz###n#n##zzz+ii;izzzz##++++##nxznnnznnzzzz
nnxnnnxxxxMMMMMMMMxnxnnznnnnnnnzzzznnnnnnnnnnnznnnnnnnnnnzz#+*+++++##++#**;++*:i***#xWWWWWW@@MWxnnMMxxnnnzzzzznzz#zz##nxM+i;*zzzzz####zznzzxnnnzzzznzz
nnnnnMxMxxMMMMMMMxxxxnnznznnznnnnnnnnznnnnnnnnnnnnnnnnnnznz##+##+++#z##z#*i#*;;i***+xnMMMMW@@WnnnnxxnnnnnnnxMnnzz#z#zznxMz*;izzzzz##znnznnnznzzzzzzzzz
znxnMxxxnxMWMMMMxxnxxnnznznnnnnnnnnzznnnnnnnnnnnnnnnnnnnnnnz##z##+##zzzn#+**i;;ii**+nxnxMMM@@MzznnzxxxxxMMWMx#znz++#zxW@x+ii+###zzzznnnznnnzzzznzzzz##
nnnxMnxxxxxMMMMMxnnxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnzznzz#zznnnn#+iii;iii*++#xxnnMWW@MzznxxMMWMMWMMnn#z#z#z##MW@xz+i+#z#+#nxnnnznzzzzznz#####z
nnnxnxxxMxxxMMMMxxnxnnnznnnnnnnnnnnnnnnnnnnnnnnnxxxxnnnnnnnnzznnnznnnnnz+iiiiiiii****zxnnnnM@nzzxxMMMMxxxnnznxxn*#znMnxWMn#+zz##znnxnnnnnnzzzz##z+#+#z
nnnnxnxMMxxxWMMxxxnxnznznzznnnnnnnnnnnnnxnnxnxxxxxMxMxxxxnnnnznnnnnnnnz*ii***iiii****+nnnzzzxxz#znnnnnnnnnnMMnnn+#zMWWWnxnz#nzznzznxnnnnznnzzzz#zznznn
xnxxnnxxMxxxWMMxnxnnnnnnnznnnznnnnnnnnnnxnnnnxxxxMMMMMWMMxxxxnxnnnnnnz+iii*****i****i*#nzzzzznzzznnnxnnxxMMxnzn#znxnW@@@zz#nnnnxnnzzznzznznzzzn#zznnnx
xxxnnxxxMxxxMMMxnnnnnnnnzznznnnnnnnnnnnnnnxxxxxMMMMMMWWMMMMMMMMMMxxxz#******+*********+nnnznznnnznxxMMxMxxxxxn+z#n#Wn@@WM##xMxxxxnnnnzzzzzzzzzzzzznnzn
xnnnxxxxxMxxMMMxnnnnnnnnzznzznnnnnnxnnnnnnxxxxMMMMMMWWWWWMWWMWMMMxnnz+******++********#nnnnnzznnnxnnxnxxzxxnMnz#MxM@@nWWxzznxxxxxnxxnnnnz#z#zzzznnnnzz
xnnxnxxxxMMxMxMMnnnnnnnnnnnnznxnnnnxnnxnnnxxxMMMMMWWWWWWWMMMMMMMMMnnz+++*+**++********#nxxnzzznMnznnnnxxnxM+xzM+M@nM#@zMnzMxzxnxxnnnnzzzzzz#zzznnnnnzz
xxnxnxxxxxWxMxMMxnnnnnnnnnnnznnxnnnxnnnnnnxxMMMMMMWWWWWMWMMWWMMMMMxnz++++++++++*++++++#nxxxnznxWMxznzxxxnxx#zxMxzWMMxWM#zxMxn#nxxznnnzzzzzzzznnnnnnnzz
xxxxnxxxxxMxMMxMxnxnnznnnznnnnnxnnnnnnnnnnxMMMMMMMWWWWMMWWMWWMMMxxxnz++#++++++++++++++znxxxxxxxxMMxMnxxnnxzz+xnW#xxMWnxn#MMxnn#xnnnzzzzzzzznnnnnnzzz#z
xxxxxxxxxxxMMMxMMnxnnnnnnznznnnxnnnnnnnxxxxMMMMMMMWWWWMMWWWWWMMMxxxnz###+++++*++++#++#zxxxMMxxnnxxxxnMMxnMnnizzzz#xMxxzznzxxnxnznnzzzzz#zznnnnnnnnzzzz
xxMxxnxxxxnMMMxMMnxnnnnnznnnnnnnnnnnnnnxxxMMMMMMMMWWMWMWWWWWMMMMxxxnz#####+++*+++++##znxxMMMMxnnnxxxxxxx#xz#*+##+*zxnnzzMxzxxxnzzzz#z#zzznxnxnnnzznznz
nxxxMnxxxxxxMMxMMxnnnnnnnnnnnnnnxnnnnnxxxMMMMMMMMMMMMWMWWWWMMMMMMMxnzz######++++#++##znxxMMMMnzznnxnnnnn###+*i*#*#*#z#zMzxnzxnnz#zzzzzznnxnxnznznnnnzz
nxxxMxxxMMxxMMMMMMnnnnnnxnnnnnxnxxnnnnxxxMMMMMMMWMMWMWMWWMMMMMMMMMxzzzzz######++#####nxxxxMMxnzzzznnnzzn#+#**i***+*+#zxxMzxzzznn##nznznxxxxnnnznn#zzzz
nxxxMMxxxMMxxMMMMMxxnnnxxnnxnnxnnxnnnnxMxMMMMMMMWMMWMWMWMMMMMMMMMMxnzzzzzz##########znxxMMMMxnzzzzzznzzz#+#+*i***i+i#nxMxx#nzznnnzznnnxxxnnnxnnnnzzznz
nxxxxMxxxxxxxMMxxxMxnnnxxnxnxnxnnxxnnxxMMMMMMMMMMWMWMWMMMMMWMWWMMMxnnnzzzzzzzz###zzznxxMMMMMMxnnzzzzzzzzz+#+*ii**i+*zxxxxnzzn#znnnnznnxxnnnnxxnnnnnznn
nxxnxMMxxxxMxMMMxMxxxnnnxnxxxnxxnxxxxxMMMMMMMMMMMMMMMMMMMMWWWWWMMMxnnnzzzzzzzzzzzzzznxMMMMMMMxxnnzzzzz##z+++*ii+*+#n#nxxnnnznn#nznxnnnnnnnnnnnxnnxnnnz
xnxxxxMxMxxMxMMMMMxMnnnnxnnxnnxxnnxxxMMxMMMMMMMMMMMMMMMMMWWWWWWWMMxxnnnzzzzzzzzzzzzznxMMMMMMMMxnxnnnnzzzz++***i#*+zxnzxxnnnnznnnnxxxznxnnnnnxnnnnnnnnz
xxnxxxMxMMxxMxMxMMxxxnxnnnnxnnxxnxxxxxMMMMMMMMMMMMMMMMMMWWWWWWWWWWMxnnnnnzzzzzzzzznzxMMMMMMMMMxxxnxnnnzzz#+++*+*+#nnxznxnnnznnxnnxxnzzxxxxnnxnxnnxnnzz
xMxxnxxxMMMxMxMMMMxxxxxnxnnxnnxxnxxxxxxMMMMxMMMMMMMMMWWWWWWWWWWWWMxxxnnnnnnznzzzznnnxxMMMMMMMMMMxxMxxnnnz#z+#++++zxnnznxnnxnxnxxnnnnnznnnnnnnnnnnnnnnz
xxnxxnxxxMMxxxxMMMMxxxxxxnnnnznnxxxxxxMxxxMMMMMMMMMMMWWWWWWWWWWWWMxMxnnnnnnnnnnnnnnnxxMMMMMMMMMxxxMxxnnnnzz##z+##znnznznnnxnxnxnnznnznznznnxnxxnnnnnnn
xxnxxxxxxxMMxxxxMMMMxxxxxnnnxznnxxxxxxMxxxxMxMMMMMMMWMWMWWWWWWWWWMMMxxxxxnnnnnnnnnnnxxMMMMMMMMMMxMMMxxxxnzn#zn#z#znnznznnnxnxnnxnn#zzzzzzznxxxnnnnnnnn
xxxnxnxxxxxMMxxxxMMMxxxxxxxnxnnxxxxxxMxxMxMMMMMMMMMMMMMMMWWWWWWWWWMMxxxxxxnnnnnnnxnxxxMMMMMMMMMxMMMMxxxMnnnnznzzznnnzznnnnnnnnnnnnnznnnzznxxnnnnnnnnnn
xxxnxnxxxxMMMxMxxMMMMxxxxnxxxxxxxxMxxxxxMMMMMMMMMMMMMMMWWWWWWWWWWWMMxxxxxxxxxxxxxnnxxxMMMMxxMxMxMMMxMMxMnnnnnnnzxznnzznznzznnnnnnnznzznnnxxnnnnznnnnnn
xxxxxxxxnxxxxxMxxMMMxxxxxnnxxxxxxxxxxxxMMMMMMxxMMMMMMMWWWWWWWWWWWWMMxxxxxxxxxxxxxxxMxMMMMxxxxMMMMMMxMMMxnxnnnznnnnnznnzzznnnxnnnznnnzzznnnnznnnnxxnnzz
xxMxxxxxxxxxxxxMxxxMxxxxxnxnxxxxxxxxMMxMMMMxxxMMxxxMMWWWWWWWWWWWWWMxMMMxxxxxxxxxxxxMMMMMMxxxxMxMMMMMMMMxxxnnnnxnnnnznzzz#nnnnxxnzznnznznzzzznnnxxxnnnn