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