.......................................................,.,.,,:::i;i::,..,,,,.,;*i;*;,,,,;;:;;i::*+;;;;ii;;*;::;***i,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;*+*i*+++*:*i;iii;*i*+*:i***;:*z+#zzz#+nn##+#zz+*nx#i#xxn*:,:,,:,,,,,,,,,,,,,,,,,,,,:,,,,,:
,,,,,,,,,...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;i;i;;**ii+#i*;;;iz+***+z##i:*Mxz**zznznz+z#nz+zzzz+#Mxi+n+nx#ii:::,,::,:,,,,,,,,,,,,,,,,,,::
,.,,,,,,.,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,::i#z+;:::;*i#zx++*#nz#zz##**z#*+MWMxz+xMxz#xnnznn##nznxz#nn+nM##xnzMM#+*++::,:;;:,,,,,,:,,,,,,,,,,:
,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,.,,,,,,,,,,,::,:i+****+++##i##+**#nzznzznnxMMnz**MzizWxMn;*zxMxznMMxxM+xnMxMz#M#nWn*nM#nWn*#*n*i;:;i;:,,,,:,,,:,,,,,,:
,,,,,,,,,,,.,,.,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,;+znnzznnxxnnxMMMxnnnMMxzznxn##MMxxzi*n##zMMxn+nznxx##MMWx+nx+zWx#xznMn##WnnWxzz+xz****z*;:,,:,,,,,,,,,,:
,,,,,,,,,,,,,,,,,,,,,:*#zzz#+i,,,,,,,,:::;:i*:i**#nz#i:inMWWMM#nx##xMWMxnnznnxxMxM#*zxz*znnWnx##xMzzxMxxzzxMzxx+n#nWx##WnnWWMM#WMz++zz*;:,:::::::,,:::
,,,,,,,,,,,,,,,,,,:zW#########@xi,,,,;;::i:i+++znnznnzzM################@Mzznxxnnxzxnznn++z#xMz#n###WMn#nnzxMzWnzxnxMMM##############@W#::::i;;::,,,::
,,,,,,,,,,,,,,,,,z@##############x*++i#xnnzz#z+i+#nxn#+####################M+;inz#n#nxxMx#n##zzxW###xznnz#nxWMznzzxnxnW#################x;;i;:i;,:,,::
,.,,,,,,,,,,,,,:M#####Wnz#znW#####@+ii;;*zzn#nMxxn##zxxM###@@#@@@@@@WW######W#ii##nnii#z#zzz##+zW###Mnn##z+nxMM+x+nnxzx#####@@@@@@#######W;*:;:i,:,,,:
,,,,,,,,,,,,,,:W####z;,,,,,,,:#####W;:i;+##n+++nMMn*i++M###zi*zxnMMxn+i+M####WMxnzz#znz++#+*;i+#n###nnxxMnz##*xMnzzznMM###WMxxMxzxxM#@####M**i;:::,,::
,,,,,,,,,,,,,,x###W;,,,,,,,:;;i*W###Wzz#xxxMxxxMMxxzn#i####Mz*;***+zz#zz#x###@*####ii*i+zznnnn##M###x*+znz++xxzxWWzznM@###WW#M+nx+xMxzW####x#;iii::;::
.,,,,,,,,,,,,+###@;,,,,,,,,:**::;@###n#+#z#xxxMxxxxxxMMx###x##+#+i;;i;i*+#W###+::ii*i*iiii**zznxM###z**++zxzi+n#zMMx##W###MMxnM#xx#MWzz@###@x**i;;::;:
,,,,,,,,,,,,,W###*,,,,,;;;;ii##+#n@WxMxnzz#nnzxMMxxnz++n###n*iiiii;i;;;;;iz###n*iii;;;iii***iii;z###z*++*ii*n##x++#+zzM###WnWMWx*x+#MxzM####z#++;*:;:;
,,,,.,,,,,,,*###M,,,,,,:i++#ii*nnnxxMMMn#**##z#zznnx#++n###n****+*iiii;i;;+###niiii*iii;;;;;*+**z###ziiiii;iiii*nnz**+x###MxzMxMn*n*nMzz@##@Mx*#i+;:::
,,,,,,,,,,,,n###+,,,;i+*i;iii*i*##+*+++nnz+***i;;ii*i;;####ni*+**ii;;ii;;i####z;;;;;iiii;;i;;;**n###zi**++*ii**iii#nzzx###MzzzxMxxnz#zn*@###xMxz;#i;;:
,,,,.,,,,,,,W###:,:;:;:i*##*##xxnznzz#*+###+#i;;;;;i**;#####:;;:;i;;i;;;;;z####;;;;;;;;;;;:;;;;;z####;ii*i*ii;i*iii;+zM###nnz#znMznzzn+n@##@xx#n;#i;i;
,,,,,,,,,,,,###@**;i+##z#i*#nMWWWWx+i++*i;iiiiiiiiii*;;+####;:::;;;;;:;;:;@###i;;::::;;:;;;:;;;;#####i;;iii+**i;i**iiin###n*#z###xn##z*z###Mnn#x*zii*;
,,,,,,,,,,,;###M;*zn#zxxxxxzzxnnn#xx#+++##*iii***ii*;;;#####;:;;;;:::::;;x###x::::;;;::::;;;:::;#####;;;iiii*iiiiiii+in###n++++++znn+nnM###n+M#nx#*+i;
,,,,,,,,,,,i###M#nzzMxxxnznn##z+*++++***+**ii*iii;iiiii####z;;;;;:;::;i#W###@;:::::::;:::;:;:;;:#####;;;:;;;;;;;;ii;i*n####+#+i*#+#nzn@###@n+Mnxz#*+;;
:;;;;;;;;ii####WMMnxzxWMMnn####z####zz####++***+*******z###@@@@@@@@@@@#######*******i***********n###z************+++++x###nnzznzznnMW@####nxnxxxMnn#*i
*###################################################################################################################################################Mi
*###################################################################################################################################################M*
*###################################################################################################################################################M;
:+####znMxzx@###nnzznnnxzzzzzzzzzzx###z################n###x########z@###nz##zz#zzzzz#zzzzzzz##zx###xzzzzzz#z##zzzz#zzM###xnzzznnzznnnzzzznnnxWxxxnx#i
,,:,:;#n##nxM###z*ii*iii;ii;i;;;i;####i::::::::::::::::+####:::::;;;;####x;;;:;;;;:;:;;;;;;:::;;####+::;;;;;:;;;;;;;;in###zii*i;iiiii*ii**i*+xM+####ii
,:::i+++z#+i####W*i;;;;;;;;;;;;;;;####;::::::::::::::::+####::::::;;iiM####;;;;:;;;::;;;;;;;;;:;#####;;:;;i;;;;;;;;;;;z####*iii;ii*iiiiiii***#n+##z*i;
:::;*+#z+*i**@###+;;;;;;;;;;;;;:::+###;::::::::::;:::::+####:::;;;;;i;*@##@i;i;;i;i;;;;;;;*ii;;;####+;;;;:;;i;;;;;;;;;z###+iiiiiiiiiiii**ii**+*#i#ziii
::;+++**iiiii####@i;;;;;;;;;i;::::####;::::::::::::::::+###z;;;;;;i*;i;n###x***iii*iii;i;;;;;;i;#####;;;i;;;;;;i;;;;;;z####iiiiiiiiiiiii*iii*i*#*z*iii
:;;;;;ii;;;i*iM###W*;;;;;:;;:::::+@###;::::::::;:::::::+###z;;;;;;;;i;iiW####ii*****+ii**i;;i;;;z####;;;;;;i;;:;;;;;;;z###+i;;;iiiii;;iii******iiz**i;
;::;;ii;::iiii*@###@zi;;:::;;::*M####x::::::::::::::::;+###z;;;;iii*ii*i####@*+###++##+++*+iiiiiz###z;ii;;;;;;:;;ii;;;z####;;i;;iiiii;ii*iii***i*#iiii
:;;;i;:::;;;ii;*W####@x#+**+#x@#####z:::::::::::::::;;;#####;;;iiiiii*++*M###M+#+++*+*##*##+#+++z####;*iiii;;;;;;;i;;;z###+iii*;iiiiiiiiiiii*iii**iiii
;;;;:;:;;;iii;;;ix################M*:::;::::::::::;;;;;+###zii****+#zzz#*+@###n#znznzzz#+z#+*+z#x###z********ii;;;i;;;z###+;iiiii;;iiiiii*****i*iiiiii
:::::::;;i;;;;i;;:*M###########@x*::;;;::::;;;;;;ii;;;;####zi++++#zznz#z#zM###@xxxxxxxnz##z#z###x###n*+*i*+**iiii*iiiiz###+iiiiii;;i*iiiii**i*i+*i*iii
,::::::;;;;;;:::;;;;i#nMWWWMxz+;::::;;;;;;:;;;;iiiiiiii*zzx#++###znz+znnnnzxMxnnznnxMMMMxxxzz++##xxx+#+++i*iiiiii*+*i;+nnz*i;iii;iii***ii*iii*i+i**iii
:::::;;;::;::::;;:;;;;::::::::::::::;;;;;;:;;;iii;iiii;i**+***#zzzxnn#**iii;;iii**++#+#zxnxxnz#***+z++*++#*iii*****+*i;i*ii*iiiiiiiiii*iiiiiii***i*i*i
,::::;;::;::::;::;;;;;::;::;:::;;;:;;;;;;;;;iiiiiii*;;i++##+z+znnnz#i;::;::;;;;;:;;;;i+**+zxMxxn##*+nzzz##zz#+***+++ii*iiii*ii;iiiiiiii**ii*ii*****i*i
::::::;:;::::::::::::::::::::;:;;;;;;;;:i;iiiiiii*i;;***+zzzz#z#*i;;::::::;:::::::;;;;;iii**#zxMxnn#*#n##z+#z+#+++***i;ii**iiiiiii**iii*iii*ii*******;
:::::::::::::::::::::;::::;;::;;;;;;;;ii;;ii;;iii;i***+#z+#zz*;i::::::::::::::::::::::;:;;;i+#znxnxzz##z#znz+z#+#+****iii****iiiiiiiiii*ii*i****i****i
,:::::::::::::::::::::;;:;;;:;;;;i;;;i;i;ii;iiiii+#+*+####*;;::;:::::::::::::::::::::::::;;;;;i+znMMxn#*zn#*z#z#++++++*+ii++i*iiiiiii*i**iii***i*ii*ii
:::::::::::::::::::::;:;;::;;;;;;;;;i*i;;;i+*i;i*+####n#;;::::::,,::,::::::::::::::::::::::;;i;i*#xnMxxz#znn+++++*#+***+**i**+iii**ii***+i;***i*iii*ii
:::::::::::::::::::::;:;;;;;;;;;;i;ii;;;i*iii*+*++zzz*;::::::::,:::,::,::::::::::::::::::::;;:;***#nxMWMnz#n#*+++*+***#*i*+ii*i*+********ii*++*i**i*ii
,::::::::::::;:::::::;;;;ii;;;;;ii;;;i**i*ii++*+##+*;::::::::::::::,:,,,::,:::,::::::::::::::::;;**#xnxxxxz##n##z##++****i*+***i*****i+**i*****i+*iiii
,,::::::::::;;:::::;::;;;ii;;;;;i;i;;i*iii*##*#z#*;;:::::::::::,,:,::,,,,:,:,:::::::::::,:::;;::::i*+nnnxxz#z+n#++####+*+*i+++++***++*******iiii***iii
,::::::::::;;:::;:::::;;;;;;iiii;;ii*+*i*+++#zz*;::::::,,,:::,:,,,,:,:,,,:,:,::,,,,::::::::::::::::;ii#xnxMz#z#nnz*+#++#+***+++***+**+++*++*iii+i*+iii
:,:::::::;;:::::;:::;;;;;ii;iii;ii*****+##+zn#;:::::::,,:,:,:,::,,,,,,,,,;;*#nnnxxnnn#+ii;;:::::::::;;izzznnxz##nxnz#zz*****+++*++****++*++*i**ii**ii;
::::::::::::::::::::;;;;;ii;;;iiiii***##*++#*i::::::::,::,:,,,,,,,,,,:izxMMMMWMWWMMWMMWMM#*;;;:::::::;;*#nnxnznz#xz#z###+*+*+++*****+##**i++*++*iiiii;
,:::::::::::::;;::;:;;i;i;;ii;i**+*+++++#++*;;:::::,:,,,::,,,,,,:::*xWMMMWMxMMxMMMMMxxWxMMMx#+;;:::::::;iznnxzznzznx#zzzz**##**+****++*#**+*+***iiiii;
,,,::::::::::::::;;;;;iii;;ii;ii**i*+zz#z#*;;:::::,,:,,,,,,,,::,i#MWWMMMMMxnxnxxxxxnxMMxnxMWnn#i::::::;;;*z#nnxznnznzn##zn#i#**#+**+***+++***++*iiiiii
,,,,:::::::::::;;;;;;;;i;;;;i;ii**i+znn##i;;::::::,,,,,,,,,:,:i#MWWWxxxnnx#zznnnzznnxnxnxxMMWnzxzi;;:;:;;;iz+nxxnxxznzzn#zn#+#+++*i*++#+*i**i*+*ii;iii
,,:,::::::::::;;;;;;;;;;;;;;;i**ii+znz++;;;:::::::::,,,:,:,;+nMWWMnxn+zzzz++#zzn#zznznnnxnnxWx#zxn*;:;::;;;**#xMxnnxnzxzn#znz+#***++#++*ii*i***ii*;i;;
,,:,:::::::::::;;;;;:;;;;;i****i*#zz*#+;;;;:::::::,,::::,izMxMMnMnn*,,:+nz++#+##+++#zz+#n++zMz;*+zxn*i;;:;;ii*+xxxnznnnxn#####++++#+**+****i**ii*iiiii
,,:,:::,::::;;;;;;;;;;i;;;iii**#zz#+#*i;:::::::::::::,,inxMxxMxnxnz:,:::zWWx+*zi#*n+#znnz**#nx::++zxM#*ii;;i;i+#nMnxnnxnxxnzzz+++**++++******iii*;ii;;
,,,,:::,::;;;;;;;:;i;;:;;*iiii####+#*;;;:::::,,::::,:inWMMxxxxnx#n#;,:::;xW@Wn+**nnz#znx+#zz#x,::i++xWz++*;:ii**+nxnxnnxnxxx####+***++++#i*+*iiiii;;i;
,,,:,:::::::;:;::i;;;:;*+*i**+n***z*i;:::::::,::::,;nxxWMMMxMMzz##*+:,,::*W@W@ni*z#+#n+*##zz*x,,::;*#nMn*;*ii*i**+zn#nnx#zznnz+++*****+**++i*i+**ii;i;
,,,,,:::::::;;:;i;;:;iiii**+z#ii*#*i;:::::::,::::;#xMnnnnxxnnnz#+*+Mn:,,,#@@W@W#ii+nn*+zn**#*x;,,:::iznWM#+*ii*i+*+zznnxn#z+nz#+****+++++*++ii***iiii;
,,,,:::::::::;;;;:;;;*iiii#n*i;*z+i;;:::::,:::::+xMx#Mzznnnxxzz+**zWWMz;;M@W@@@n;*##z##nzx#z#xi,::,:;i*zMxz#+*i*#*i+#znnznz+###***+***i++i*+*i****;#i;
,,,:::::::::;;;:::ii;;i*i#+i;;*+*;;;::::::::::ixM#zxxn#zz###zzzz++x@@WWMWW@W@@@W**####++znz+*n*,,,,:::i#zxMnzz+*+*+*##zzzzzn+n++*i**+*+++***+*ii*i;;;;
,,,,:,,:::;;;:::i;;;;;i*z*i;i+##i;;:::::::::ixMxz#z*nzznznnxnz++**M@@WWWW@@W@@@W++**+##+*#+++n*,,,:,,:;;*+nWxz##*****+*zzzzz+++**i*+****ii++i***i;i;;:
,,,,,:::;:::;;::;;;;;i++*;;;*+zi;:;::::::::+MMz##ii;xn+*+zn+##*ii*MW@@@WW@@@@@@Wzz#+z#+i++#+in*,::,,::::;*#nxMMzn#+**i+**znz#***iii****iiii****+;i;;::
,,,::,::::::;;:;;;;;i#+i;:;*nz*;;::::;:::+xMnn#i:;;:#n+#xnnnn#++*iM@@WW@W@@@@@@W+++zx#+z##z#+ni,:,,,,,:::;+zxxMMMn#*+*;**i+n#++***+++i**iii+**+i;ii;::
,,,::::,:::::;;;;;;i+i;;:;i+#*;:::::;;:inMxz##;;;:,,+ni*#nn++**#+*n@@@@@WW@@@WWM**+nnz#+*+zz+x:,:,,,:::::;*zznnnxMMn#**ii;*#n#+**ii*ii*i*ii*iiii;ii;:;
,,::,,::::::::;;;;i*;:;::i*#i;::::::;;*MMz##i;::,,:,in***+#zz#+*ii+W@@WWW@@W@@Wz#zzznnz###+*+n,::,,:::::;;*###zxzzzxMMz*i;;i##zii***i*ii*i;i;i;;ii;:::
,,:,,,::::::::;;;**::;:;i+++;::::::;:#Mxzz*;*:,,,,:,;M#*++z+#+i*+#*n@WWWWW@@@@M**nnzz##zz++i+#,:::,:::::;:+#zzzxz#nnWWMM*;;;*+#*i+*ii*iiiiiii;;iii;:::
,,,::::;::::::;:i;::;:;i++;;:;:::::;nxnnz*;::,,,,,,,,x#++*#####n#+*ixW@W@W@@@W#z#+#nn##nnz#iz*,:::,,,::;;;*###nxxMniii+xMi::;##z*****iii;iiiii;;;;::::
,,::::::::+#:::;:::::;i++i;;::::;;*xxnn#;:::,:,,,,,,,#zii*+#nnz+z*#*+xMW@@@Wxz###x#znnnxn###n:,:::,,:::;;;+zzznMni;;;;;+W#;;;*++*iiii;;;*ii*i;;:::::,:
::::,,,::#n#i:::::::;i*#iii*i;::;+n#zn*;::::,,,,,,,,,;x*+znnxzzz+zz+#z#zxzz##++n++n#+znn#+#+n,,::,::::::;i##nnM#;;;;;;;+M*:;;;#z+iiiiiii;ii*;i;::;::,:
,,,,,::,,niix+i;:::;ii#nxxxMWxxzz#*nz;::::,,:,,,,,,,,,#+i+z####zzz**##z###+*znzz++*z###*##*#*,,:,:,,:::::*znzM#;;;i;;;;+M;:;:;+z+;i**iii;iii;;:::;::,:
,:,,,::,,zizx#+#nnz#*+zn*;;+*nxx#nnz::::::,,,,,,,:,,,,ix*z+#####n#*#*#+#z##++xnxnz#+##n#+**n:,,:::,:::::;#####i;;;;;;;izz::;::#n*iiii;;;ii;;;;:::;:,,:
,,,,,,,,,+z#;*+znxznnnxx+ii;;*n++xMx#i::::::::::,,,,,,,n+*++++zn##nz*z###+z#+#zznnz##+*###zz,,,::,:::::;+zzz#+iiii;ii*zz;::::;nziii;i*i;ii;;;::::;:,,:
,,,,,,,:::::::::;#znnxxMM#;:;*Mz#+++nn#;:::::,,,,,:,,,,;z***zz#nnnx##n#n#+z##+nzn#n#+#+i*+n;,,,:,,:,::*#xxMx+nxxnz+i#*i:::::;+z+**ii;i;;;;:;;:::::,,,:
,,,:::::::,:::;i;i:::#M+++:::;z:#Mni;#nx+::::::,,::,,,,,zzi#+i#nnxn#zzzxnnz#nznnz+#z#*+#*zz,,,,,,,:inxz#xxz*;;:::::,:::::::;i#+iiiiiii;i;;:;::::::,,,:
,,:::::::,:::;;:::::ixMz:;:::;z:+n*+n#ixx#;:::::::,::,:::x#+*+znznznx+znzn#*#znz##zn##*++M;,:,,,:*n#:i#n+:::::::::::::::::;ii;;;;ii+;:;;;::::::,,:,,,:
,,,,,:::::::::::::::*ninz;:;;:#:;#nzz#nxzxn;;:::::,,,::::*x#++#z###nn#nzzn#*+zz#+z*zzz#iz+,,:,;+zi:*zzi::::::::::::::::::;;;;iiiiiii;;;;;;;::::,,,,,,:
,,::::,:::::::::::::*z:ixx#+::#::+z+*+###nz#:;;;;i**;,,,,,#x###z#+#nzzzz#zz+#zzz+#z*+#z#z:,:*#+:,+z+*;;::;:::::::::::::::;;::;;;*ii;:;;::;::::,,,,,,,:
,,,,:,:::,,::::,::::*#::i##n*iz;;*z+xznMnxMMn##nxn*;###i:::zn*+#*++#####*###*z+**++***zMi*#+i,:##iii*;;;;;;;;:::::::::::::::;;ii;i;i;:::::::,,,,,:,,::
,,,::,::::,:::::::::#n:::i*nMMMzMWMxz###x##nMnnnzzx+;,i*zn*;xxz#**+**+#++#zzz*+#+++#zMMM+i,,izzi**i;iiiiii;;:::::;:::::::;::;ii;;;;i;:::;:::,,,,,:,,,:
,,,,::::,:::::,:,:::#n::,+:+;*n#*#z:,,,,:++*nMx#nMMMM#i:,:*zxMWxnzz+**+#z##z#zzzznnxx##;:;*##**i*;iii;;;*i::::;:;;::::::::;;;::;;i:;:;;::::::,,,,,,,,:
,,,,,,,:::,,:,,,:,::zz:::+ii::#i:;nz#i:::::*nWM+:*xnnMMMn#i,,:i*++znnnnnxxnxnz##**i;:;:iz##;;*+i*ii;iii;;;;::::;i::::::::;;;:;;:;;;:;;:::::,,,,,,,,,,:
,,,,,,:::::::,:,:::in*::i;+:::#i::z:;+nn+;:;z:zM*zxz##xzx++n#+i::,,,,,,,,,,,,,,,::i+zz#*:;*i***;;i*+iiii;;:;;:;i::::::::::;;:::;i;:;i::::,:,,::,,,,,,:
,,,,,::,:::,,,:::::#n:::+;*i;:+ii+n::::;+#+ni:iMMM#+zzznxx#;;i*+zz#z+*+ii**+#z#zzz#*;:;ii;i*ii;iii*;ii;;;:;;;i*::::::::::::;::;i;::;::::,,,,,,,,,,,,,:
,,::,:,::,::::::::;ni::iii;i::*+::n#*;::::+#::;*WM;::*znznMx*:;;;ii*+#+#zn##+*;;;;:;:;;ii;;+#*i;;;;;ii;:;::i##::::::::::::::;;;;;;:::::,,,,:,,,,,,,,,:
,,::,:,,,:::::::::#n:::*:+;;::i+::#:;i#+;;#:::**WMz;:;:i+z#nM+:;::;::::::;:::::::;:;::;;*i*i;;;;;i;;;;:;;:;*+::::::::::::::;;;;::;::::,,,,,,,,,,,,,,,:
,,,::::,,:::::::::x*::;iii*:;:iz::#::::;+n:::;i#n*Mn;:::::i#z#n+;;:::::::;:;:::::::;;;;;;;;i;:;;;;i:::;;;iiz::::::::,::::::;i;;:;:::::,,,,,,,,,,,,,,,:
,,,::::,:::::::::*x;::+;+;*i*:iz;+x*;:::#;::;;;nz:;nx+:::::#x+nxM+:::::::::::::::;::;;;;;;;;;;;:;;;:;;;;i+z;:::::::,:::::::;;;::::::,,:,,,,,,,,,,,,,,:
,,,::::,,::::::::+#::;#;+*;+::;n::zi*+i+*::;+i:xz:::*MMzz#zz+:;+xxn#:::::::::::::::::::;;i;::;;::::ii;ii##i::::::::::::::::;::;:::::::,,,,,,,,,::,,,,:
,,,,:,,,,,:,:::::z+::#i*;+:+:::x::z:::#z:::;ii:xz::::;#xMxn+::::;#zxx+:::::::::::::::;:::::;;;;::iii;i*#ni:::::::::::::::;;;:::::::,,,:,,,,,,,,,,,,,,:
,,,,:,,:,,:::::,:x+:;z;+ii*;i::n:izi:;n;:;;i;*:xz::::;;;;;:::::::::*nzz*:::::::::::::::::;;;;;:;;i;;iiz#;::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,:
,,,,,:::::::::::iMi:#+**+:*;*:;n;*xzizi::i;*;;:nz::::::::::::::::::::*xM#+;::::::::::;;;;;;::;:;;;;i*z#;:::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,:
,,,,,::,,:::::::*M::n;#;+:*i;::zi:+in#:::*i;i;:zz:;::;;:::;::::;;:::::;*znz*::::;;;::::::::;::::;i*#z+:::::::::::::::::::::::::,,,:,,,,,,,,,,,,,,,,,,:
,,,,,,,,,:,,::::+M:*+:+;*ii*;;:#+;+#z:;;:+i:i;:nz::::;::;::;::;::::::::::izx#*::::;::;;;::;;::;i*##+*::::::::,::::::::::::,,,:,,,,,,,,,,,,,,,,,,,,,,,:
,,,,,,,::,,,,::,#n:#;i**i*:*;::#+:in;:i::*i:*::x+::::::::;:::::::::::::::::izxz;::::::;;;;:;;;**+z*;::::::::,,::::::::::::,:,:,,,,,,,,,,,,,,,,,,,,,,,:
,,,,,,,,:,::,:::z#;#:+:*:i:*;::++:zi::i:;*i:xW@#@W@W@@@@@@@@@@W@@@WWWWWWWWWWW@#@@WWWW@@@@W@@@@@@@@@WWWWWWWWWWWWz:::::::::,:::,,,,:,,,,,,,,,,,,,,,,,,,:
,,,,,,,::,,:::::n*+i:+:+;i:*;::##++:::i:i;*:M##################################################################n:::::::,,:,,,,,,:,,,,,,,,,,,,,,,,,,,,:
,,,,,,,,,,,:::,:Miz::*:+*;ii;::*Mz:::;;:+;*;W##################################################################n::::::::,,,,,,,,,,,,,,,,,,,,,:,,,,,,,:
,,,,,,,,,:,,::,iM;#:ii*;+:*;:::iM;:::*::+;+iM@@##W@###@W#WWWWWWW#WWWWWWW#@W####W@##@MMMW##@W###@WMMW###@W####@@n:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:
,,,,,,,,,::::,,+ni*,+;+:z;+;:::;+::::*:;iii+xWM#@xM###@M#WWWxWWW#MMWWWW@#WxW###MW#@x@@@MW#@x##@xW@@Mx@#WxM###WWn:::,,:,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,:
,,,,,,,,,:,,,,,n++i,#:*:zi*;::::;:::;i:*;+:*xWM#@MMW##@M####x@###MW######WWx@##MW#MW###@@#@x##xW####MM#WMx@##WWn::,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,:
,,,,,,,,,:,,,,iM;i;:*i;iz*i;::::::::*::*;+;iWWM#@M@x@#@M####x@###MW######WWWM##MW#Wx@#####@x#@x#####@x#WM@x##WWz:,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:
,,,,,,,,,,,,,,zz,*;;:*:+*+;;::::::::#:;**i*+@WM#@M#WM#@M####x@###Mxxxxx@#WW#M@#MW##WxxMW##@x#WM######x#WM#MW#WWn,,,:,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,:
,,,,,,,,,,,,,*zi,+:i:*:ni#;::::::::;+:*;*:*x@WM#@M##M@@M####x@###MW######WW#@x#MW#####@MM#@x#@x#####@x#WM##x@WWz,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:
,,,,,,,,,,,,:nz,,+i;;;in**;::::::::;*,*:+;*MMWM#@M##@xWM####x@###MW######WW##MMMW######@x#@x##x@####WM#WM##WMWWz,:,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,:
,,,,,,,,,,,,*xi,:+*,*:#*#i;::::::::*;;i;*i+xMWM#@M###WMM####x@###MW######WW###xxW#MW###@x#@x##WM@##@x@#WM###MMWz,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:
,,,,,,,,,,,,zn,,:+i,*:z:#;;::::::::#:i;ii+#zxWM#@M####xM####x@###Mxxxxxx#WW###@xW#@MxMMx@#@x###WxMMxW##WM###@xWz,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:
,,,,,,,,,,,;M*,,i+::;i+:#;;::::::::+:*:*:*z#x########################################@###########@@############z,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:
,,,,,,,,,,,#x:,,+*,;,*;;*;::::::::ii:+,*:ixix##################################################################z,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:
,,,,,,,,,,,zn,,,+i,;,#:*i::,::::,,*:;i;i*;M:nWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:
,,,,,,,,,,:x#,,;+;,;:+:*;::::::,,,*,*;i;+iM::::::,:,::,:,::,:,:,:::::::::::::::,,,,::,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,:
,,,,,,,,,,ixi,,*i;;;;*,+;:,::::,,,*,*,#:izz,::,::::,:::,,,::,,,,::::,:::,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::
,,,,,,,,,,ix;,,+::;,i*,+;,,:,::::;i:*,+;;xi:::,:,,::,:,:,,,:::,,::,,::,,,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:i:
......,,,,i+:,,i,,:,;;,i:,,,,,,,,;::;,i;;#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,