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