;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;///////////////////////tcp****kwOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO;;
;;/////////////////////b************bOOOOOOOOOOOOOOOOOOOOOOOOOOO;;
;;///////////////////h****************aOOOOOOOOOOOOOOOOOOOOOOOOO;;
;;/////////////////|********************pOOOOOOOOOOOOOOOOOOOOOOO;;
;;////////////////c***********************OOOOOOOOOOOOOOOOOOOOOO;;
;;///////////////0*************hbkka*******wOOOOOOOOOOOOOOOOOOOO;;
;;//////////////Q********awO0XnuU0OOOOZo****hOOOOOOOOOOOOOOOOOOO;;
;;/////////////x******pOft-++f/////|OOOO0****oOOOOOOOOOOOOOOOOOO;;
;;/////////////****dC1>>>>>>>>]//////OOOOO****oOOOOOOOOOOOOOOOOO;;
;;////////////****O{_-l:;;;;;+_//////OOOOOa****aOOOOOOOOOOOOOOOO;;
;;///////////C***Q~+I;;;;;;;;;~t/////tOOOO0*****dOOOOOOOOOOOOOOO;;
;;///////////***O??;;;;;;;;;;;:]//////OOOOO******ZOOOOOOOOOOOOOO;;
;;//////////a**Z/~;;;;;;;;;;;;;-t//////OOOO*******OOOOOOOOOOOOOO;;
;;//////////**ou+;;;;;;;;;;;;;;;+//////QOOOp******kOOOOOOOOOOOOO;;
;;/////////k**Ot~;;;;;;;;;;;;;;;>?//////OOOOOk*****OOOOOOOOOOOOO;;
;;/////////**bO/+:;;;;;;;;;;;;;;;+///////OOOOh*****bOOOOOOOOOOOO;;
;;////////U**OO/?>;;;;;;;;;;;;;;;+)///t/tjOOOqa*****OOOOOOOOOOOO;;
;;////////***OO//];;;;;;;;;;;;;~;[tf0do****0OOo*****OOOOOOOOOOOO;;
;;////////**hOO//~;;;;;;;;;;;;~t!/Z*********hOhb****ZOOOOOOOOOOO;;
;;///////u**OOO//_;;;;;;;;>]_:_t/J*******o****Om****dOOOOOOOOOOO;;
;;///////q**OOU/_~;;;;:~+fvj/>~//****k0czpww**pOq***hOOOOOOOOOOO;;
;;///////***OO//~~;;;1k*****Q_+~/**************OO***hOOOOOOOOOOO;;
;;///////***OO/|?);[a*******0);;|p**a*j***h****oOO**hOOOOOOOOOOO;;
;;///////***OU/]t1_*******hO/-:;?c**oo}chmmmh*pOOO**hOOOOOOOOOOO;;
;;///////***Ot/(//o*bf-Z***oO};;>f*omr/OwZOOOOOOOOk*kOOOOOOOOOOO;;
;;///////***O////u*O1m*****ZQ[;;:|*kOOOOOOOOOOOOOOO*b**OOOOOOOOO;;
;;///////***O1}//*b(oh***mOj/I;;;>ZkOOOOOOOOOOOOO0b*****OOOOOOOO;;
;;///////***O{_//z/QZa_LtOO/1;;;;-v*OOOOOOOOOOOOOO****h*qOOOOOOO;;
;;///////***w)-t///bh/t/jx[|;;;;;-/O*OOOOOOOOOOOOO****O**OOOOOOO;;
;;///////C***f?-t//X)-?t+!?:;;;;;?//0*OOOOOOOOOObO***oLd*OOOOOOO;;
;;////////***c???(/?!::;;?:;;;;;;l{/LY0OOOOOOOOO******hC*mOOOOOO;;
;;////////***Z_~~>;;;;;;;;;;;;;;I>/woOr0OOOOOOOO*******O*bOOOOOO;;
;;////////m**o/_-;;;;;;;;;;;;;:]?/Q*****OOOOOOOO******0mokOOOOOO;;
;;////////x***j?-:;;;;;;;;;;;>tL/0******bOOOOOOOh*****p0obOOOOOO;;
;;///////#b***m/-?;;;;;;;;;;;j**p******oOOOOOOOOOo****oO*pOOOOOO;;
;;//////dk*n)|*//]];;;;;;;;!]oorfmwUO0OOOOOOOOOOOO*******ZOOOOOO;;
;;//////**o*O|XO//>~~I;;;;;~;J0iItt_XOOOOOOOOOOOOOa***0**OOOOOOO;;
;;//////**Q/LOZhr//|~~:;;;~~;:I;;|/~uOOOOOOOOOOOOOa***Oa*OOOOOOO;;
;;//////b*O/+?**O////++;;:+I;;;;_//thap0OOOOpOOOOO******mOOOOOOO;;
;;//////vod~+m*kwx////++;~+;;;l+(]~#*****dOOOhOOOO***aowOOOOOOOO;;
;;///////*atr**x*O////[]]][;;!]um***********bkOOO0**aOOOOOOOOOOO;;
;;///////aa/O**O*0/////---];~-v******cOO**mpdOOOOh**kOOOOOOOOOOO;;
;;////////kCO**O*oz////++-!!/[***J}_1/OqbOOOOOOO0***aOOOOOOOOOOO;;
;;////////dztoa/**O////~+[+}/d*o/~+(jo**oOOOOOOO*****OOOOOOOOOOO;;
;;/////////*n/bYw*d////_~_?ta*m(/]z****wOOO*OOw*******OOOOOOOOOO;;
;;//////////qYO0/**Q///|__traiI-//OZ*qOOO**OO0********kOOOOOOOOO;;
;;//////////0ff//*hp////]]//];:+]//fOOOmOZOOOZ*********OOOOOOOOO;;
;;///////////dx/O*/*Y///-+?/+++[t///vw*OOOOOOm**********OOOOOOOO;;
;;////////////Jb*//zk////)//}/////YLQQX///vOOh*************okwOO;;
;;//////////////////*L/////////////i>/////OOO*******************;;
;;///////////////////*O//////+_l;;:___///OOb********************;;
;;///////////////////p*O////t-?;;;;--{/YOO*********a************;;
;;////////////////////**ZY///_--_--_(fOO***********r************;;
;;////////////////////u0**w0f/}__)//Yk************vO************;;
;;/////////////////////dL****wt//rOZ*************b/a************;;
;;///////////////////////tp****oo****************//*************;;
;;////////////////////U*b//Od*******************//v*************;;
;;//////////////////k****t//OO*****************///k*************;;
;;///////////////v#******a///Om***************t///**************;;
;;/////////////k**********j///JOOo***********/////**************;;
;;///////////*************o///t/zOOO********/////p**************;;
;;/////////p***************L//]?t/OOo******//////***************;;
;;///////j*****************tt//__//O*****a|1////|***************;;
;;//////k******************lZ///t//O****O:;;;;+td***************;;
;;////|********************]:C////vO***n;;;;;;;:****************;;
;;///f*********************Q;?////OO**t;;;;;;;;+****************;;
;;//f***********************;;X///OO*|;;;;;;;;;p****************;;
;;//************************;;;u/jOh/;;;;;;;;;;*****************;;
;;/*************************:;;;!z0+;;;;;;;;;;_******a//|J******;;
;;c*************************t;;:L)t/:;;;;;;;;;******u//////*****;;
;;h*************************p;:*OOOOO+;;;;;;;;*****b//0*a///****;;
;;h**************************;cmOOOOOOu;;;;;;)*****|/q****//****;;
;;h**************************;oOOOOOOOOO:;;;;k*****//*****j/k***;;
;;h**************************,mOOOOOOOOhb;;;;******/YOOOO0Qjh***;;
;;h**************************|OOOOOOOOOb*o;;+******Of::;)ff-****;;
;;h**************************YOOOOOOOOO*Y/kiw******ofOOZf>I!****;;
;;h**************************oOOOOOOOOq*/?l]********ht::UOO*****;;
;;h***************************OOOOOOOO**/::l**********mZmo******;;
;;h*************************************************************;;
;;h**####*****###*******aufrw*******########******###########***;;
;;h**|///*****///m****J///////f*****//////////h**#//////////|***;;
;;h**|///*****///m***t//////////****///////////**#//////////|***;;
;;h**|///*****///m**u////////////***///fjjj/////*#//////////|***;;
;;h**|///*****///m*#////J****////C**///L****////*#///#**********;;
;;h**|///*****///m*v///J******////**///L****x///*#///#**********;;
;;h**|///////////m*////*******////**///L****////*#//////////U***;;
;;h**|///////////m*////*******X///#*////////////*#//////////U***;;
;;h**|///////////m*////*******j///**///////////#*#//////////U***;;
;;h**|///*****///m*f///#******////**/////////t***#///#**********;;
;;h**|///*****///m*a////#****////r**///L*********#///#**********;;
;;h**|///*****///m**/////rQc/////***///L*********#///UYYYYYYX***;;
;;h**|///*****///m***///////////m***///L*********#//////////|***;;
;;h**|///*****///m****/////////b****///L*********#//////////|***;;
;;h**YUUU*****UUUd*****h|////J******UUUw**********UUUUUUUUUUY***;;
;;h*************************************************************;;
;;zYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;///////////////////////tcp****kwOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO;;
;;/////////////////////b************bOOOOOOOOOOOOOOOOOOOOOOOOOOO;;
;;///////////////////h****************aOOOOOOOOOOOOOOOOOOOOOOOOO;;
;;/////////////////|********************pOOOOOOOOOOOOOOOOOOOOOOO;;
;;////////////////c***********************OOOOOOOOOOOOOOOOOOOOOO;;
;;///////////////0*************hbkka*******wOOOOOOOOOOOOOOOOOOOO;;
;;//////////////Q********awO0XnuU0OOOOZo****hOOOOOOOOOOOOOOOOOOO;;
;;/////////////x******pOft-++f/////|OOOO0****oOOOOOOOOOOOOOOOOOO;;
;;/////////////****dC1>>>>>>>>]//////OOOOO****oOOOOOOOOOOOOOOOOO;;
;;////////////****O{_-l:;;;;;+_//////OOOOOa****aOOOOOOOOOOOOOOOO;;
;;///////////C***Q~+I;;;;;;;;;~t/////tOOOO0*****dOOOOOOOOOOOOOOO;;
;;///////////***O??;;;;;;;;;;;:]//////OOOOO******ZOOOOOOOOOOOOOO;;
;;//////////a**Z/~;;;;;;;;;;;;;-t//////OOOO*******OOOOOOOOOOOOOO;;
;;//////////**ou+;;;;;;;;;;;;;;;+//////QOOOp******kOOOOOOOOOOOOO;;
;;/////////k**Ot~;;;;;;;;;;;;;;;>?//////OOOOOk*****OOOOOOOOOOOOO;;
;;/////////**bO/+:;;;;;;;;;;;;;;;+///////OOOOh*****bOOOOOOOOOOOO;;
;;////////U**OO/?>;;;;;;;;;;;;;;;+)///t/tjOOOqa*****OOOOOOOOOOOO;;
;;////////***OO//];;;;;;;;;;;;;~;[tf0do****0OOo*****OOOOOOOOOOOO;;
;;////////**hOO//~;;;;;;;;;;;;~t!/Z*********hOhb****ZOOOOOOOOOOO;;
;;///////u**OOO//_;;;;;;;;>]_:_t/J*******o****Om****dOOOOOOOOOOO;;
;;///////q**OOU/_~;;;;:~+fvj/>~//****k0czpww**pOq***hOOOOOOOOOOO;;
;;///////***OO//~~;;;1k*****Q_+~/**************OO***hOOOOOOOOOOO;;
;;///////***OO/|?);[a*******0);;|p**a*j***h****oOO**hOOOOOOOOOOO;;
;;///////***OU/]t1_*******hO/-:;?c**oo}chmmmh*pOOO**hOOOOOOOOOOO;;
;;///////***Ot/(//o*bf-Z***oO};;>f*omr/OwZOOOOOOOOk*kOOOOOOOOOOO;;
;;///////***O////u*O1m*****ZQ[;;:|*kOOOOOOOOOOOOOOO*b**OOOOOOOOO;;
;;///////***O1}//*b(oh***mOj/I;;;>ZkOOOOOOOOOOOOO0b*****OOOOOOOO;;
;;///////***O{_//z/QZa_LtOO/1;;;;-v*OOOOOOOOOOOOOO****h*qOOOOOOO;;
;;///////***w)-t///bh/t/jx[|;;;;;-/O*OOOOOOOOOOOOO****O**OOOOOOO;;
;;///////C***f?-t//X)-?t+!?:;;;;;?//0*OOOOOOOOOObO***oLd*OOOOOOO;;
;;////////***c???(/?!::;;?:;;;;;;l{/LY0OOOOOOOOO******hC*mOOOOOO;;
;;////////***Z_~~>;;;;;;;;;;;;;;I>/woOr0OOOOOOOO*******O*bOOOOOO;;
;;////////m**o/_-;;;;;;;;;;;;;:]?/Q*****OOOOOOOO******0mokOOOOOO;;
;;////////x***j?-:;;;;;;;;;;;>tL/0******bOOOOOOOh*****p0obOOOOOO;;
;;///////#b***m/-?;;;;;;;;;;;j**p******oOOOOOOOOOo****oO*pOOOOOO;;
;;//////dk*n)|*//]];;;;;;;;!]oorfmwUO0OOOOOOOOOOOO*******ZOOOOOO;;
;;//////**o*O|XO//>~~I;;;;;~;J0iItt_XOOOOOOOOOOOOOa***0**OOOOOOO;;
;;//////**Q/LOZhr//|~~:;;;~~;:I;;|/~uOOOOOOOOOOOOOa***Oa*OOOOOOO;;
;;//////b*O/+?**O////++;;:+I;;;;_//thap0OOOOpOOOOO******mOOOOOOO;;
;;//////vod~+m*kwx////++;~+;;;l+(]~#*****dOOOhOOOO***aowOOOOOOOO;;
;;///////*atr**x*O////[]]][;;!]um***********bkOOO0**aOOOOOOOOOOO;;
;;///////aa/O**O*0/////---];~-v******cOO**mpdOOOOh**kOOOOOOOOOOO;;
;;////////kCO**O*oz////++-!!/[***J}_1/OqbOOOOOOO0***aOOOOOOOOOOO;;
;;////////dztoa/**O////~+[+}/d*o/~+(jo**oOOOOOOO*****OOOOOOOOOOO;;
;;/////////*n/bYw*d////_~_?ta*m(/]z****wOOO*OOw*******OOOOOOOOOO;;
;;//////////qYO0/**Q///|__traiI-//OZ*qOOO**OO0********kOOOOOOOOO;;
;;//////////0ff//*hp////]]//];:+]//fOOOmOZOOOZ*********OOOOOOOOO;;
;;///////////dx/O*/*Y///-+?/+++[t///vw*OOOOOOm**********OOOOOOOO;;
;;////////////Jb*//zk////)//}/////YLQQX///vOOh*************okwOO;;
;;//////////////////*L/////////////i>/////OOO*******************;;
;;///////////////////*O//////+_l;;:___///OOb********************;;
;;///////////////////p*O////t-?;;;;--{/YOO*********a************;;
;;////////////////////**ZY///_--_--_(fOO***********r************;;
;;////////////////////u0**w0f/}__)//Yk************vO************;;
;;/////////////////////dL****wt//rOZ*************b/a************;;
;;///////////////////////tp****oo****************//*************;;
;;////////////////////U*b//Od*******************//v*************;;
;;//////////////////k****t//OO*****************///k*************;;
;;///////////////v#******a///Om***************t///**************;;
;;/////////////k**********j///JOOo***********/////**************;;
;;///////////*************o///t/zOOO********/////p**************;;
;;/////////p***************L//]?t/OOo******//////***************;;
;;///////j*****************tt//__//O*****a|1////|***************;;
;;//////k******************lZ///t//O****O:;;;;+td***************;;
;;////|********************]:C////vO***n;;;;;;;:****************;;
;;///f*********************Q;?////OO**t;;;;;;;;+****************;;
;;//f***********************;;X///OO*|;;;;;;;;;p****************;;
;;//************************;;;u/jOh/;;;;;;;;;;*****************;;
;;/*************************:;;;!z0+;;;;;;;;;;_******a//|J******;;
;;c*************************t;;:L)t/:;;;;;;;;;******u//////*****;;
;;h*************************p;:*OOOOO+;;;;;;;;*****b//0*a///****;;
;;h**************************;cmOOOOOOu;;;;;;)*****|/q****//****;;
;;h**************************;oOOOOOOOOO:;;;;k*****//*****j/k***;;
;;h**************************,mOOOOOOOOhb;;;;******/YOOOO0Qjh***;;
;;h**************************|OOOOOOOOOb*o;;+******Of::;)ff-****;;
;;h**************************YOOOOOOOOO*Y/kiw******ofOOZf>I!****;;
;;h**************************oOOOOOOOOq*/?l]********ht::UOO*****;;
;;h***************************OOOOOOOO**/::l**********mZmo******;;
;;h*************************************************************;;
;;h**####*****###*******aufrw*******########******###########***;;
;;h**|///*****///m****J///////f*****//////////h**#//////////|***;;
;;h**|///*****///m***t//////////****///////////**#//////////|***;;
;;h**|///*****///m**u////////////***///fjjj/////*#//////////|***;;
;;h**|///*****///m*#////J****////C**///L****////*#///#**********;;
;;h**|///*****///m*v///J******////**///L****x///*#///#**********;;
;;h**|///////////m*////*******////**///L****////*#//////////U***;;
;;h**|///////////m*////*******X///#*////////////*#//////////U***;;
;;h**|///////////m*////*******j///**///////////#*#//////////U***;;
;;h**|///*****///m*f///#******////**/////////t***#///#**********;;
;;h**|///*****///m*a////#****////r**///L*********#///#**********;;
;;h**|///*****///m**/////rQc/////***///L*********#///UYYYYYYX***;;
;;h**|///*****///m***///////////m***///L*********#//////////|***;;
;;h**|///*****///m****/////////b****///L*********#//////////|***;;
;;h**YUUU*****UUUd*****h|////J******UUUw**********UUUUUUUUUUY***;;
;;h*************************************************************;;
;;zYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;