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