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