----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNKXNNNNXoKNNNKddKN0NNNXOKKXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNXNK.xNNN0XdcONNNk.xNNNl ,kO;oddx'xodXoNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNo;k.odOlxlk:;:lod ONNxNN0oxco;;l'0;:l;.dkOKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNN;occkoOxdlOxcolx0xONXoxkKNNOkkXXdO0XKkKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNXXXNNXOO0NNN0kk0NNNX0OO0XNNNNX0OOKNN0OOkOXNNXK0XNNNNNX0OkOKNN0XNNNXOOXNNNNNNX
XNNNNNNNNNX0OO0KXNNkllldxxOXklll0NOlldxNNxoddollON0olokKoK0llkXxoOXdlllkNNNkloOdllKdooXXxookXNNNNNNX
XNNNNNNNKlllkXX0koOdc::k0Okx:,''';...,;Ol;,dkx::lOcloKNN0NkllK0dldxlldoldO0llKNdxxXKolllloKNNNNNNNNX
XNNNNNNNNolldKOxdc,,.......'.........,'c',:O00llooolONNNNNxlcccdkk::;ll;,cc'':ccc:::,. . ....cNNNNNX
XNNNNXl... ....,:cx0ccldlllOlllXc:;ll:'';''..... .''....''':ONNNNNX
XNNNN; ....,lkkdxXXlllllodXdokNkxKNOolXKxoclldO0xc;;ccoOxlcxXocckdc0XXKdloOlcoclkOOO::;d00KNNNNNNNX
XNNNNKOKNNollxkkKNNNXXNNNNNNNNNNNNNNNXNNNNNNNNNNNNNXXXNNNNNXXNXdldX0NNNNNNXNNNNNNNNNNXXXNNNNNNNNNNNX
XNNNNNNNNNX0KNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXOOKNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNddOkONNNNNNNNNNNNNNXKXXXXKKKXXKXKKXXKKXNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXkxxO0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXxk0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKxoc,coo;:ld0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0. .xNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNo. 'NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNkxd. ldOXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNxlOl.''';,',KxkKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKOOc;cldodooOKKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNkc::cc::::kNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKcccccloddddXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------