******** ****** **** *** ***** ****** ********* ********* ** ******* *** ** ** *********
*** ************** *** *** ******** ******* *** *** ****** *** ***** ********** * ************ **** ** ********* *** ********** ****** ********** **** ******* ** ********
** ***** ******** ** ** ********** ******** *** *********** ****** ** **** ** ***** ********
************** ******** *** *** ** ***** ** ********* ** ** *** ***** ******* ** ***** ***** *** *** **** ****** ********* ********* **** ***** ******** ************ *** **********