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