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