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