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