xxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxWWWWxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnn
xxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxW+,:Mxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnn
xxxxxxxxxxxxxxnnnnnnnnnnnxxnnnnnnnnnnnnnnnnxxxnnnxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnxxxMx`,MWxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxnnnnnnnxWxnnMWxWMWWWWMWWWMMWxnxWMxxxWMnnM@MxxxxWWWWWWWWWWWWWMMnxWWWWWWWWWWMWWWWWMxWWWWWxM@+:nWWxxMWWWWWWxxxxMWWWWMxxxxxxnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxnnnnnxW:   `*Wx```z@.``*@x.   .zWx@i`   ;WMxxxW```n*``,@n```MnMi``:n```nW`````.zWn```MWx,   `+@xWi````+MxxxM+``,Wxxxxxnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxnnnnnW:  `   zW`  #W`  #@`  `  `MW+  ``  ;WxxxW`  n*  ,@n   MnW;  ,n   nW      `Mn   MW.  `   zMW:    ;WxxxM*  ,Wxxxxnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxnnnnM`  n;  i@.  *x   nz  `M`  z@:  iz  `WxxxW`  n*  ,@n   MnW;  ,n   nW   #;  nn   Mx   W;  iWW.    ,WxxxM*  ,Wxxxnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxnnnM   M;  :#,  ;n   x#  .@.  +@,  *n   WxxxW`  n*  ,@n   MnW;  ,n   nW   n*  nn   Mz  `@;  :WW` `. .WxxxM*  ,Wxxnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxnnx   M;  ,#i  ,z  `@#  .@.  *@.  *x,,,WxxxW`  *;  ,@n   MnW;  ,n   nW   n*  nn   M#  `@;  ,@M  ,: `MxxxM*  ,Wxxnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxnx   M;  ,@+  .#  `@#  .@.  *@.  *####@xxxW`      ,@n   MnW;  ,n   nW   i,  nn   M#  `@+;;*@n  :;  xxxxM*  ,Wxnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxx   M;  ,@z  .i  ,@#  .@.  *@.  *:,,,WxxxW`      ,@n   MnW;  ,n   nW      `Mn   M#  `WWWWWW#  *i  #MxxM*  ,Wnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxx   M;  ,@M  `:  iW#  .@.  *@.  *.   WxxxW`  :,  ,@n   MnW;  ,n   nW   `.:z@n   M#  `WWWWW@*  #+  *MxxM*  ,Wnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxx   M;  ,WM` `.  *W#  .@.  *@.  *x   WxxxW`  n*  ,@n   MnW;  ,n   nW   nWWMxn   M#  `@;``:#;  ::  ;WxxM*  ,Wnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxM   M;  :WW.     #M#  .@.  *@.  *M   WxxxW`  n*  ,@n   WMW;  ,n   MW   nxnnxn   Mz  `@;  :#,      .WxxM*  ,Wnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxM   x;  ;WW:     xMz  `W`  #@:  *x   WxxxW`  n*  ,@n   +#Wi  ,n   MW   nxnnxn   Mx   W;  i@.  ..  `WxxM*  ,Wnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxx@,  ,`  #MMi     MxM`  ,  `xW*  `,   WxxxW`  n*  ,@n     nz  `,  .WW   nxnnxn   MW`  ,`  #W`  #n   MxxM*  ,Wnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxMx.    iWxM#    `WnW#`   `#WxW,   ;  MxxxW`  n*  ,@n     n@i    `nMM   nxnnxn   MW#`    i@x   nM   nxxM*  ,Wnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxMWz*+xWxnxWxxxxxMnnWM#*#MWxnxWz*n@xxWxxxWxxxWMxxMWWxxxxxWxWx+*#MMnWxxxWxnnxWxxxWxWMz*+xWMWxxxWWxxxWxxxMxxxMnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxMMMxnnnnnnnnnnnnnnxxMxxnnnnnxMxxxxxxxxxxxxxxxxxxxxxnnnnnnxxMxxnnnnnnnnnnxxxxxxxxxMMMxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnxxMMxxxMxxxxxMMMxxxnnxMMMxnnnxxxxxnnnnxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnxMnnMWMnnWxWnnnnnWxxWn***nWxWnnnnnMWxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnx#  :#*  nMW`    MxWi     iWW`     ;Wxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnx#  `W*  nMM     zMM   ;   MW`  `   xxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnM#   #*  nMn     +Mx  .W.  xW`  #+  #Mxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnM#   :*  nW#  ;  iWx  `Mi;;xW`  ##  #Mxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnx#   `i  nW*  *  ,WM`  ,n#WMW`  ##  #Mxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnx#    .  n@:  z` .WWi    *WxW`  ,.  zMxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnx#       n@,  x. `WxW*`   :WW`     `Wxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnx#  :    n@` `W,  xW@#x.   nW`  :*+MWxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnx
nnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnx#  +`   nM`  ,`  zM,,:M.  *W`  #MMxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxx
nnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnx#  #;   nx       +M  `@;  *W`  #xxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxx
nnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnx#  ##   nz  `*,  iW` `M:  *W`  #Mxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxx
nnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnx#  #W   n*  `@i  ,#,  `   nW`  #WMMMMxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxx
nnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnxz..z@:..n*..:@+..,@W:`  .#@W...zWWWWWWMzzxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxx
nnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnxWWWWMWWWWWWMWW@@@@@@#WMM@@W@@@@@WWW@@@WWznxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxx
nnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnxxxxx#nxMMMW@@@@@@@@@@@@@@@@@@W@W@WWxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnxxxxxxxxxnznxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnxxxznMxMMWMW@@@@W@WWWW@@@@@@@WW@@@WWxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnxxxxxxx#i;i#xxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnxxzzMnnMWWMMMxnnnxnznnxxMMWW@@@@@@@WWxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnnxxxxx+iii+xxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnxz+xxnM@@x#####+##+++++##zznxW@#@@@@WMnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnnnnxxzi***+xxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnn+zxxMWW#*+++++******+++++##zzxW@#@@@WMnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnn++#nnnnx#;***#xxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnn#+xxxMW#****************++++##znM@@@@WWxnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnz;i*nnnnn#;***#xxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnn##xxM@z******************+++++##zM@@W@WMxnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnn+i**nnnnn#;i**#xxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnn+nnM@n*++**************++++++++##nWWWWWWxnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnii**#nnnn#;;i*#xxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnz#nnWW+******************++++++++##xWWWWWMnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnn+ii*#nnnn#;;ii*nxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnn+#zxW#**********************++++++#zMMWWWWMnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnz;i*+nnnn#;;i**nnxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnn+#zMx*****+++********+++++**++++++#nxMWWWWWxnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnz;i*+nnnn#;;i**#nnnxxxxxxxxxxxxxxxxxxxxxnnnnnnnz*#xM#*i*+#zz#+******#zznzz##+++*++#nMMM@@WWMnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnz;;i*znnnz;;;i*nnnnnxxxxxxxxxxxxxxxxxxxxxnnnnnn+*zxn+*#nMMxz#+***+++##nxMMxn#++**+#zMMMW@@WWznnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnn+;;i*znnnn;;;iinnnnnnnxxxxxxxxxxxxxxxxxxxxnnnnn*+nxz*+znnnz###+**++###+++#zzz#++++#znMMMWWWWxnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnn;;;i*znnnn;:;i*nnnnnnnnnxxxxxxxxxxxxxxxxxxxnnnn*znx#*+##++++#z+**++##++++++#z#++*++znMMWW@@WMnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnni;;;iznnnn;;;iinnnnnnnnnnnxxxxxxxxxxxxxxxxxxnnn*zxx+*##zzzzzz#++++###znz#####z#++++#zxMWWW@@Mnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnn+;;;iznnnni::;innnnnnnnnnnnxxxxxxxxxxxxxxxxxnnn+nxn*++nxxMxxn#++++#znxMWWMnnz##++++#znMMW@W@Mxnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnznnnnz;;;iznnnz;:;iinnnnnnnnnnnnnnxxxxxxxxxxxxxxxxnnznxz*+zMWW@xxn+*++++#zxnxMMMMxz#+++++znMMW@@WWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnn#:innnn;;;;+nnn#;;;i*nnnn+;i*zznnnnnnxxxxxxxxxxxxxxxnnzn#*#nMnnzzz+++++++++###+##zzz#++*++#nMMMW@WMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnn+::*nnn;;;:innn#;;i*+nnn+;:::::i*+nnnnn#xxxxxxxxxxxxxnzz+*#z####++***++++++++++++++##++***#nMxxMWWMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnni;;znn#i;;;izn#;i**zn#i;;;;;;;;ii*i*;;.nxxxxxxxxxxxxn##**+++#+++**ii*++++*+*+++++*+******#nxxxMWWWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnn#***nnnii;;;+z*;i*+*iii;;;;;iiii;::;;;:nnxxxxxxxxxxxn##iii******i**+++++#**+****i********#znxxxMMWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnn+**i+*;i;;;;:iiii**iiii+#**z#+*ii;i;i:nnnnxxxxxxxxxn##ii*******####zn#++#*******ii******+#nxxMMMMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxnnnnnnnn++*iiii;;;;;;::;i;;i;i+zznnnn#+*++ii;+nnnnnxxxxxxxn++iii****#zWWnzW@Wnzz+*******ii*****+#zxxMWWMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnn
xxxxxxxxxnnn+#**iii;:;;::;;;i;i++##nnnnnnn+;*i**;nnnnnnxxxxxxx+iiiii***#zxxxnnxMxn##**i*****i******+#xxMWWWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnn
xxxxxxxxxxxxnz#**ii;:::::;;iii*#z#znnnnnnnn#ii**iinnnnnnnxxxxxniiiii**#++###z####+**+ii***********+++xxMWWWxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxz#**ii;;;;;;;i***+znnnnnnnnnn*i*++*;+nnnnnnnnxxxx+iiii*+#+++#+#+###++*+**************+#nxMxMMxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxn#**ii;;;;;ii*++*#nnnnnnnnnz+*+#+*i+nnnnnnnnnxxxniiii*+++++#+##+###++++******i**++***#znnnnnxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxz++*i;;;;iii**+##znnnnnnnz#i*##++*+znnnnnnnnnnxx*iii*#++++++#+++#++++#******i**+*****+#n#zxnxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxx#++*;;;;;ii*ii*+znnxnnnnz+ii*+#++#znnnnnnnnnnnx*iii+++++znzznz##+#+++****i***********+z+#nnxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxn#+i;;;;;;iiii*+**+++#z#+iii*+###znnnnnnnnnnnnniii*++##zMMxxxxxz##++#+****i********ii+#*+#xnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxx#+ii;;;;iiiii*i;;;:::;;;;iii*++znnnnnnnnnnnnnniii*+##zxMWWWWWWMxz##++*i**i********i#z+*+znnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxz***i;:;;;;iii;:;:::::;;;i***+#zxxxxnnnnnnnnnniii*+#nxW@@@W@@@@WMn#++*************+Mn+*+xnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxx++*i;:::;;ii;;;:::::::;;ii**+#zxxxxxxxxxnnnnniii*+#znnnzzz#zz####z#+**************#z+*#Mnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxn**i;::::;;;i;::::::::;;;i**+#nxxxxxxxxxxxxxn;ii**##++######+###+##+**************i*++xMxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxx#*ii;:::;;;;;:::;;:::;;ii*+##nxxxxxxxxxxxxxn;ii*+++++#zznnzzz#+++++************++i*+nWMxnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxx#ii;;::;;;;;::::::::;ii**##zxxxxxxxxxxxxxx+ii*+++++++##zzzz##+++++++++********++i*#WWMnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxn*i;;;;::;;;:::::::;;ii**#znxxxxxxxxxxxxxx*ii*++++++++++++++++++++++++******++##*+W@WMzznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxzii;;;::::;;;;::;;;iii**#nxxxxxxxxxxxxnnniii*++++++++++++++++*+++++#+******++zxnW@@Wxznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxx*iii;;:::;;;i;::;;;iii+#nxxxxxxxnnnnnnnn*ii+++++++++++++++++*+++++#++***++++n@@@WWWxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxx#ii;;;:::;;;i;;;;iii**+#nxnnnnnnnnnnnnnn*ii*+++++++++++++++++**+++++***+++++x##@WWMxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxzii;;;;;;;;iii;;;i****#znnnnnnnnnnnnnnnn*i*+++*++++++*+++*+++++++#++*+++++++x##@@WMxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxnii;;;;;;;;iii*ii****#nnnnnnnnnnnnnnnnnn***+++*++##++*++++++++####++++++++++M###WWxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxn*ii;;;;;;;iii****+++nnnnnnnnnnnnnnnnnnn+*+#####+###+++++++###############++M###WWxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxn#i*iii;;iiii***++##nnnnnnnnnnnnnnnnnnxxn++zzznnzzzz####zzzzzzz###z######+++x###@Mxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxnnz#+***iiiiiii**+++#znnnnnnnnnnnnnnnnnnznx+#znnnxxxxnnnnnnnnnzzzzzzzzzz###+++M###Wxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxnnnnnnnnnz+***iiiiii***++*+znnnnnnnnnnnnnnxMWWWWMM#znxxxxxMMMxxxxxnnnnnzzzzzzz###+++x@#@Mxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnn
xxxxxxxxxnnnnnnnnnnnnnz+xn*iiiiii******+*+nnnnnnnnnnnnnxM@#####@W*#nnxxMxxxxxxxxnnnnnnzznnzzz###++*xMM@Mxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnn
xxxxnnnnnnnnnnnnnnnnnnznxW*;;;ii***+***++nnnnnnnnnnnnnxMW#####Wxx#i#nnxxMMMMMxxxxxxxxnnnzzzzz###++*MW#xMnznxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnn
nnnnnnnnnnnnnnnnnnnnn*nxxW*;;;i**++*****#nnnnnnnnnnnnxMW@#####MxMn*i*zxMMWMMMMMMxxxxxnzzzzzzz####++MWz*Mnnnxxnnznxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnnnzii*nM*;;;;**+++***+nnnnz##zznnxxMW@######MxMM+*ii*zMMWMMMMMMxMMxxnzzzzz######+WWnix####@WMnzznxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnnn+xn+zzi;;;i*+++++**#nnzznnnxxxMMWW@@#####@MxMWz**i;;*#xMMMMMxxxxxnnzz#########+WWzi#@@#####@WMnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnnz*xMxxn+*i;i**+++++#*+xxxxxMMMMWWWW@@#####@MxMWM*+i;;;*+zxxxxnnzznnzzz##+++####z@W#ii@@@@@###@@@Wxnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnnn*+nxxxxxzzz#++*#zn#,#WMMMMMMMWWWW@@######@WMW@W#*+i;zMx+*#zzzzzzzzzz#####++##zx@W+i;M@@@@@@##@@@WWMnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnnnzzxxxxMxxxMMMxxMWMnnMW@WWWWWWWWW@@@@####@@@W@#@x*++*MMx+iii+#z########z##++#znx@M*;:xWW@@@@@@@@@@@WWMxnxxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnnnzzxxxxMxxMMMMMWWWMxMWW@@@WWWWWWW@@@#####@@@W@#@W#+++Wxz#**ii+###############znMWzi::zWW@@@@@@@@@@@@WWWMMxxxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnnn##xxxxMxxMMMMMWWxxxMWW@@@@@WWWWW@@@@####@@@@@##@M#+*Mx+*:;*i*##z#########zzznnxxi;i:+WWW@@@@@@@@@@@@WWWWMMxxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnnn++#MMMxxxMMMMMWWxMxW@@@@@@@WWW@@@@@@####@@@@###@@z#+nx+i:;+i;+#z#+#######zznnnx**M@x*MWW@@@@@@@@@@@@@WWWWMMxxxxxxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnnn+;i+xWMxxMMMMMW@WMMWW@@@@@WWWW@@@@@@####@@@#####@W###n#**#+*i*zz#+#######zznxxz*M@@M#nWWW@@@@@@@@@@@@WWWWMMMMMxxnxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnnz;:;::+zzznxxMMM@WMMW@W@@@@WWW@@@@@@@@###@@@@####@@n#+z#***i***zz#########znxxnixW@@M#zWWWW@@@@@@@@@@@@WWWWMMMMMxxnnnxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnn+,::::,:i**+#zznxMzMW@W@@@@WWWWWW@@@@####@@@@@###@@@z+##+*****i+z########zznxM*#MW@Wx+zWWWWWW@@@@@@@##@@WWWMMMMMxxxxxnnxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnn:::::::::::i*+#nn#+WWWWW@@@@@@WW@@@@@###@@@@@@@###@@M#+#i;i***i*zz#######zznx+*nMW@Wn*n@WWWWW@@@@@@@#@@@WWWWMMMMMxxxxxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnn*i::::::::;;;;;ii;i+@@@@W@@@@@@@WW@@@@###@@@@@@@###@@@n+**::;i*ii+z#+####zznnzi+zx@@Wn*x@W@@@@@@@@@@##@@@WWWWWMMMMMMMMxxxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnn#*,,,:::;::;;;;i;;;#@@@@WW@@@@@@@W@@@@###@@@@@@@###@@@M++ii:::iiiiz##z##zznnn+i+zM@WWz*W@W@@@@@@@@@@@@@@@@WWWWMMMMMMMMMMxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnnMi:,,,,:::;;;;iii*i#@@@@WW@@@@@@@@@@@@##@@@@@@@@@##@@W@nziii:::;ii+zzzzzznnzz**+nMMMWz*@@@@@@@@@@@@@@W@@@@@WWWWMMMMMMMMMxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnxMi::,::::;;;iiii****W@@WWW@@@@@@@@@@@@#@@@@@@@@@@##@@@@Mn+;;;:::;iizzzzzznzzzi+#nznMMz+#@@@@@@@@@@@@@WWW@@@WWWWWMMMMMMMMxxxxxxxxxxxx
nnnnnnnnnnnnnnnnnWx;::::::;;i;;iii;i**M@@@WW@@@@@@@@@@@@@@@@@@@@@@@@#@@@@Wzz*;;:::;ii#zzznnzz#**+nznnxWz###@@@@@@@@@@@@W@@@@@@@WWWWWMMMMWWMxxxxxxxxxxx
nnnnnnnnnnnnnnnnxWzi::::::;;;;;;;:,:**W@WWWW@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@n##*i;:::;i*zzznn#*i*+#zznnxWnz##@@@@@@@@@@WWW@@@@@@@WWW@WWWWMWWMxxxxxxxxxxx
nnnnnnnnnnnnnnnxWW#i::::::::;iii;;:;i+@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@M+##*i;:::;iznn#i;;++##zzznxWn#@@@@@@@@@@@W@@@@@@@@@@WWW@@WWWWWWMxxxxxxxxxxx
nnnnnnnnnnnnnnnM@Wzi;:::::;;;;iiiiiiiz@@@@@@@@@@@@@@W@@@@#@@@@@@@@@@@@@@@@@*+++*i;::;;+z*;i*+++++#zznnMz+W@@W@@@@@@W@@@@@@@@@@#WW@@@@@WWWWMxxxxxxxxxxx
nnnnnnnnnnnnnnM@@Wn+;::::;;;iii*****in@@@@@@@@@@@@@@W@@@@#@@@@@@@W@W@@@@@@@zi+***i;::;i+######+++#zzzz#++x@@W@@@@@WWWWWW@@@@@@#@W@@@@@@WWWMxxxxxxxxxxx
nnnnnnnnnnnnnzW@@Wn#i;;;;;;i***++++*+M@@@@@@@W@@WWWWWWWWW@@WWW@@WWWWWWWWWWWxi*****i;;;*#zz####+++++**ii*+#MWWWWWWWWWWWWWWWWWWW@WWW@@WWWWWWMxxxxxxxxxxx
nnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxx
nnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxx
nnnnnnnnnxxxxxxxxxxxxxxxMWWMMWWWxMWWWWWxMWWWMMxnnMWWMxMWWMMMWWWWMMWWWWMWWWWxnnnMWWMnxWWWWMxWWWWWWWMxMWWWMxxnnxMWMxMWMxxMWWWMxnnnnnnnnnnnnnnnnnxxxxxxxx
nnnnnnnxxxxxxxxxxxxxxxxxWi;z@*;*WWi;;;#MW*;;i*zWxx;;+MM;;*@+;;;;Mx;;;#@i;;;WnnMz;;nWx;..;x@+;;;;;iW@#,.:zWxxnW*;*@#;iWM+;;;*Wnnnnnnnnnnnnnnnnnnnxxxxxx
nnnnnxxxxxxxxxxxxxxxxxxxW` ,@, ,WW`   ;WW,     *@n  ;Wx  ,#;    nn   ;W`  `WnnM*  #W`    `W;     `W*     #MxxW, `W* `WW:   .Wnnnnnnnnnnnnnnnnnnnnxxxxx
nnnxxxxxxxxxxxxxxxxxxxxxW`  M, ,WM    .WW,  +` `@n  ;Wx  ,#;  :;Mn   ,M   `WnnM*  #n  i*  n+;`  :iW` `n  ,WxxW,  z* `WW.    Mnnnnnnnnnnnnnnnnnnnnnnxxx
nnxxxxxxxxxxxxxxxxxxxxxxW`  +, ,@x  , `WW,  M, `Wn  ;Wx  ,#;  xWWn   `z   `WnnM*  #n  *z..nW@.  MWW` `W` .WxxW,  ;* `WM` ,  xxnnnnnnnnnnnnnnnnnnnnnnnx
xxxxxxxxxxxxxxxxxxxxxxxxW`  ,, ,##  i  x@,  x, `@n  ;Wx  ,#;  nWWn  . * ` `WnnM*  #x  `z@@WxW.  MxW` `W` `WxxW,  `i `@x  i  #xnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxW`   ` ,#* `z  n@,  ` .n@n  ;Wx  ,#;  ``Mn  : . , `WnnM*  #@,   :WMxW.  MxW` `W` `WxxW,   ` `@z  #  +Mnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxW`     ,#; `x  +@,  .  ;@n  ;Wx  ,#;    Mn  *  `; `WnnM*  #WWi   .WxW.  MxW` `W` `WxxW,     `@#  x` ;Wnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxW` ;   ,#, .x` i#,  M,  xn  ;Wx  ,#;  zM@n  #  `* `WnnM*  #WWWz`  #MW.  MxW` `W` `WxxW, :`  `@*  x. ,Wnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxW` +`  ,@`  `  :#,  M,  nn  ;Wx  ,#;  xxMn  n` ,* `WnnM*  #n``*z  iMW.  MxW` `W` `WxxW, ;:  `@:  `  `Wnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxW` #;  ,W`  `  .@,  M,  nn  ;@x  ,#;  zMWn  x` i* `WnnM*  #n  *x  ;MW.  MxW` `M` .WxxW, ;+  `@,  `   Mnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxW` ##  ,x  .W. `W,  .   xn  ;z`  :#;    *n  x, ** `WnnM*  #W` .:  +MW.  MxW,  ;  ;WxxW, ;M  `W`  M:  nxnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxW` #W` ,n  :#,  M,    `;@n  ;#  `z@;    *n  Mi z* `WnnM*  #@+`   ,WxW. `MxMx.   .MMxxW, ;#. `M` `@;  #xnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxWMMWWMMMWxxMWMxxWMMMMxWWMWxMMWxMWWMMMMMMWWMMWMMWMMMWnnxMxxMxWMz#nWMnMMMMWxxWWn#nWMxxxMMMM@MMM@xMMWMxxMxnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnxxnnxxxnnxxxxnnnnxxxnxxxxxxxxxxxxxxxxxxxxxnnnnnxxnnnxxxxnnnnxxxxxxxxxMxxxxxxxxxxxxxxxxxxnnxxnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnxMMMxMMMMMMMMMMMxMMMMxxnnnxxMMxxnnnxMMMxnnxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnW##z@n##Wz##Wz##WM##nnxWxxM####MxxWx**+MMnxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnW` .@. .@.  x.  Wn     :Wxn    zxW+    `nMxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnxW` .x  i@.  x.  Wn  ,,  nM#    +MM` .+  ,Wnxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxW` .+  x@.  x.  Wn  *#  #W* `` ;Wx  ,W  .Wnxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxW` ., .WW.  x.  Wn  *#  #@; .: ,Wx  ,W  .Wnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxW`    iWW.  x.  Wn  .. `x@, ,i .Wx  ,W,,:Wnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxW`    iWW.  x.  Wn     *@W` :*  MM  ,@@@@Mnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxW` `` .WW.  x.  Wn  i*  nW  i#  xM  ,@nnnWnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxW` .:  x@.  x.  Wn  *#  #x  .,  #M  ,W  .Wnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxW` .+  +@.  x.  Wn  *#  #z      *M  ,W  .Wnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxW` .n  ,#:  +` `Wn  *#  ##  ;+  ;W` .#  ,Wnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxW` .W` `Wn`    *@n  *#  #i  #M  .@i    `nMnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxW##z@z##MWM*;iz@MM##xM##Mn##MW###WWz;;*xWnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnn
xxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxMMMxMMMMxMWWWMxxMMMMxxxxxxxxxxMxxnMMMMxnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnznnnnnnnnnnnnzn
xxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxx#+*+n+z**+#++n**z+#*+z++z*z+#in*++*n+*+#*#in
xxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxx+n+*+##*#n+*#z#+###*n#*+#z##++#n*+nn+n**#z+x
xxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxzxz#n#n#zxzz#x**n#n#xn##nxz#n+n+zzx#zn#z+x+n
xxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxx#zMxxxxxxxxxxxxxxxnnnnnnnnnnnn