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