\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-
\,++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,-
\,+**************************************************************************************************************************+,-
\,+*((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((*+,-
\,+*))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))*+,-
\,+*)**********************************************************************************************************************)*+,-
\,+*)**********************************************************************************************************************)*+,-
\,+*)**********************************************************************************************************************)*+,-
\,+*)**********************************************************************************************************************)*+,-
\,+*)**********************************************************************************************************************)*+,-
\,+*)**********************************************************************************************************************)*+,-
\,+*)**********************************************************************************************************************)*+,-
\,+*)**********************************************************************************************************************)*+,-
\,+*)**********************************************************************************************************************)*+,-
\,+*)**********************************************************************************************************************)*+,-
\,+*)************************************************************************************************************************+,-
\,+**************************************************************************************************************************+,-
\,++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,-
\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-
--------------------------------------------------------------------------------------------------------------------------------
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
********************************************************************************************************************************
********************************************************************************************************************************
***+*))))))))))))))))))))))))))))))))))))))))))))))))))))))*+*******************************************************************
***+,******************************************************,+******+++++**********+++++**********+++++**********+++++***********
***+,**MMMMMMM**MM***********MMMMMMMMMMMMMM*******MM*MMMM**,+*****++,,,++********++,,,++********++,,,++********++,,,++**********
***+,**MMMMMMM**MM***********MMMMMMMMMMMMMM*******MM*MMMM**,+****+-------+******+-------+******+-------+******+-------+*********
***+,**+++++++**++***********M++MMM++MMM++M*******++*++++**,+***+-//-+****+-//-+****+-//-+****+-//-+********
***+,******************************************************,+***-yy-****-Oy-****-.x-****-..-********
***+,)))))))))))))))))))))))))))))))))))))))))))))))))))))),+**+-xxx-+**+-/xx-+**+-xxx-+**+-x>-+*******
***+,+)(((((((((((((((((((((((((((((((((((((((((((((((((()+,+**+-///x-+**+-^///.-+**+-x///x-+**+-///>-+*******
***+,,****************************************************,,+**+-yxyyy?y-+**+-:y:y:y:xx-+**+-xyxyxmlky-+**+-jjil-+*******
***+,,***--**--**--**--**--***++++++++++++**++++++++++++**,,+**+-ݬihk?x-+**+-=y=y=y=/.-+**+-xMKN-+**+-yyyyyyyzx-+*******
***+,,*****LL**LL**LL*****+LLLLLLLLLL+**+LLLLLLLLLL+**,,+**+-xy?y-+**+-?y?y?y?xx-+**+-xyxyxxxxy-+**+-jx/./xjil-+*******
***+,,*****LL*********+LJJJJL+**+LJJJJJJJL+**,,+**+-y??x-+**+-?y?y?y?/.-+**+-xNNNNMKIL-+**+-yyyyyyyzx-+*******
***+,,***LL****LL****LL***+LJIIJL+**+LJIIJL+**,,+**+-yxx/-+**+-k?k?k??xx-+**+--+**+-jjil-+*******
***+,,***LL******LL**LL***+LIIL+**+LIIL+**,,+**+-yxx.N-+**+-hyhyhyyxx-+**+-NNNNNMKIL-+**+-xy:-+*******
***+,,***LL**LL****LL**LL***+LLLLLLLLLL+**+LLLLLLLLLL+**,,+**+-?MyyyyyM-+**+-=M=y=y=M.-+**+-xMx/;9:M9-+**+-?M=y=y=M=-+*******
***+,,***))**))**))**))**))****))))))))))****))))))))))***,,+***-?MLMMMLM-****-?MLMMMLMx-****-xMLMMMLM--****-yMLMMMLM?-********
***+,,****************************************************,,+***+-NMJJJMN-+****+-NMJJJMN-+****+-NMJJJMN-+****+-NMJJJMN-+********
***+,,++++++++++++++++++++++++++++++++++++++++++++++++++++,,+****+-------+******+-------+******+-------+******+-------+*********
***+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+*****+++++++********+++++++********+++++++********+++++++**********
***+-------------------------------------------------------,+****)*******)******)*******)******)*******)******)*******)*********
****.......................................................+******)))()))********)))()))********)))()))********)))()))**********
*****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+********)((()**********)((()**********)((()**********)((()***********
********************************************************************************************************************************
***************************+++**++++++***++++++++++++++++++++******+++++**********+++++**********+++++**********+++++***********
********************************+------------------+*****++,,,++********++,,,++********++,,,++********++,,,++**********
********************************+-,,,,,,,,,,,,,,,,-+****+-------+******+-------+******+-------+******+-------+*********
*****************************************+-,77,77,77,++,77,-+***+-//-+****+-//-+****+-//-+****+-//-+********
*****************************************+-,h9,h9,h9,++,h9,-+***-..-****-Oy-****-.x-****-..-********
****+++++++++++++++++++++++++++++++++++**+-,,,,,,,,,,++,,,,-+**+-x>-+**+-/xx-+**+-xxx-+**+-x>-+*******
***+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+*+-,77,77,77,++,77,-+**+-///>-+**+-^///.-+**+-x///x-+**+-///>-+*******
***+,.................................,+*+-,h9,h9,h9,++,h9,-+**+-NMNN-+**+-KMKMKMKM-+**+--+**+-NMNN-+*******
***+,-,+++++++++++++++++++++++++++++,-,+*+-,,,,,,,,,,++,,,,-+**+-xxx-+**+-LMLMLMLM-+**+-y-+**+-xxx-+*******
***+,-,+)))))))))))))))))))))))))))+,-,+*+-,77,77,77,++,77,-+**+-xNxxN-+**+-MMMMx-+**+-??xyyyy-+**+-xNxxN-+*******
***+,-,+***************************+,-,+*+-,h9,h9,h9,++,h9,-+**+-xLKN-+**+-NNNNx-+**+-???xyyy-+**+-xLKN-+*******
***+,-,+++++++++++++++++++++++++++++,-,+*+-,,,,,,,,,,++,,,,-+**+-xNN-+**+-NNNNx-+**+-????yyyyy-+**+-xNN-+*******
***+,-,+++++++++++++++++++++++++++++,-,+*+-,77,77,77,++,77,-+**+-yyyyyyyyy-+**+-yyyyyyyxx-+**+-????y?y?y-+**+-yyyyyyyyy-+*******
***+,-,++..++..+++++++++++++++++++++,-,+*+-,h9,h9,h9,++,h9,-+**+-yyyyyyyyy-+**+-yyyyyyyxx-+**+-???xy?yxy-+**+-yyyyyyyyy-+*******
***+,-,++..++..++++,,,,,,,,,,,,,,,++,-,+*+-,,,,,,,,,,,,,,,,-+**+-=:^^^//xx-+**+-^^^//xxxx-+**+-??xxx:-99-+**+-=:^^^//xx-+*******
***+,-,++++++++++++,OOO,,...,,...,++,-,+*+------------------+**+-yy/xxyyyx-+**+-/xxyyyxxx-+**+-xyyxx:----+**+-yy/xxyyyx-+*******
***+,-,++..++..++++,OOO,,.,,.,++,-,+*++++++++++++++++++++**+-=:^/yyyx/-+**+-^/yyyx//.-+**+-xxx//999:-+**+-=:^/yyyx/-+*******
***+,-,++..++..++++,OOO,,.,,.,++,-,+***********************+-yy:y:y:y:-+**+-:y:y:y:xx-+**+-xxx//,----+**+-yy:y:y:y:-+*******
***+,-,++..++..++++,.,,.,,.,++,-,+****,,,,+***+++++******+-?M=y=y=M=-+**+-=M=y=y=M.-+**+-xMx/;9:M9-+**+-?M=y=y=M=-+*******
***+,-,++..++..++++,.,,.,,.,++,-,+***,-..,+**++++++++++++*-yMLMMMLM?-****-?MLMMMLMx-****-xMLMMMLM--****-yMLMMMLM?-********
***+,-,++++++++++++,...,,...,,...,++,-,+**+**))*,+*+----------+*+-NMJJJMN-+****+-NMJJJMN-+****+-NMJJJMN-+****+-NMJJJMN-+********
***+,-,++++++++++++,,,,,,,,,,,,,,,++,-,+**+,)***,+*+-,,,,,,,,-+**+-------+******+-------+******+-------+******+-------+*********
***+,-,+++++++++++++++++++++++++++++,-,+**+,***+,+*+-,--,,--,-+***+++++++********+++++++********+++++++********+++++++**********
***+,-,+++++++++++++++++++++++++++++,-,+**+,+**+,+*+-,+-,,+-,-+**)*******)******)*******)******)*******)******)*******)*********
***+,-,+++++++++++++++++++++++++++++,-,+*++,+**+,+*+-,,,,,,,,-+***)))()))********)))()))********)))()))********)))()))**********
***+,-,++,,,,,,,++,,,,,,,,,,,,,,,,++,-,+**+,,++,,+*+-,,,,,,,,-+****)((()**********)((()**********)((()**********)((()***********
***+,-,++,*****,++,))**********)),++,-,+**+,-.--,+*+-,,,,,,,,-+*****************************************************************
***+,-,++,+++++,++,++++++++++++++,++,-,+**+,++++,+*+-,--,,--,-+*****************************************************************
***+,-,++,+++++,++,+++++++,,,,,++,++,-,+**+,****,+*+-,+-,,+-,-+*+))))))))))))))))))))))))))))))))))))++))))))))))))))))+********
***+,-,++,+++++,++,+++++++,,,,,++,++,-,+**+,****,+*+-,,,,,,,,-++,+)(((((((((((((((((((((((((((((((()+,,+)(((((((((((()+,+*******
***+,-,++,+++++,++,++++++++++++++,++,-,+**+,*,)*,+*+----------++,+**********************************+,,+**************+,+*******
***+,-,++,+++++,++,++++++++++++++,++,-,+**+,*-,*,+*+*))))))))*++,+**********************************+,,+**************+,+*******
***+,-,++,+++++,++,++++++++++++++,++,-,+**+,*++*,+*+++++++++++++,+*:*:::::::**\\\\\\\\\\\\\\\\\\\\**+,,+*\\\\*\\\\\\\*+,+*******
***+,-,++,+++++,++,++++++++++++++,++,-,+**+,****,+*+----------++,+*:*::*::*:**\^^^^^\**+,,+*\\*\^\*+,+*******
***+,-,++,+++++,++,++++++++++++++,++,-,+**+,****,+*+-,*))))*,-++,+*:*::*::*:**\^^^^^^\**+,,+*\\*\^\*+,+*******
***+,-,++,+++++,++,++++++++++++++,++,-,+**+,*,)*,+*+-,++++++,-++,+*:*::*::*:**\]]]]]]]]]]]]]]]]]]\**+,,+*\]]\*\]]]]\*+,+*******
***+,-,++,,,,,,,++,,,,,,,,,,,,,,,,++,-,+**+,*-,*,+*+-,++++++,-++,+*:*:::::*:**\[[[[[[[[[[[[[[[[[[\**+,,+*\[[\*\[[[[[\*+,+*******
***+,-,+++*****++++**************+++,-,+**+,*++*,+*+-,++++++,-++,+************))))))))))))))))))))**+,,+*))))*)))))))*+,+*******
***+,-,+++++++++++++++++++++++++++++,-,+**+,****,+*+-,++++++,-++,,**********************************,,,,**************+,+*******
***+,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,+**+,,,,,,+*+-,++++++,-++,,++++++++++++++++++++++++++++++++++,,,,++++++++++++++,,+*******
***+,.................................,+**++++++++*+-,++++++,-++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+*******
****+++++++++++++++++++++++++++++++++++************+-,,,,,,,,-++-------------------------------------------------------,+*******
***************************************************+----------+*.......................................................+********
***************************************************+*))))))))*+**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+*********
********************************************************************************************************************************
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
,++++++++++++++++++++++++++++++++++++++++++++++,++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,-
,+++++++++++++++++++++++++++++++++++++++++++++,-,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,-
,+*******************************************+,-,+***************************************************************************+,-
\,+*((((((((((((((((((((((((((((((((((((((()*+,-,+*)((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((*+,-
\,+*))))))))))))))))))))))))))))))))))))))))*+,-,+*)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+*)**************************************)*+,-,+*)***********************************************************************)*+,-
\,+******************************************+,-,+***************************************************************************+,-
\,+******************************************+,-,+***************************************************************************+,-
\,++++++++++++++++++++++++++++++++++++++++++++,-,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,-
\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-
--------------------------------------------------------------------------------------------------------------------------------