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