######################################################################################################################################################
######################################################################################################################################################
########    ###################################    ###################################################################################################
##### ###   ## ############################# ###  ### ################################################################################################
######`,,,,,,.`##############################`.,,,,,`#################################################################################################
## #`,:******i,.  #########################`,:i*****;,. ##############################################################################################
###.:**********;,` ###################### .:**********;.`#############################################################################################
##.;*************,`##################### .;************i,`############################################################################################
 .;***************,` ###################`;**************i.`###########################################################################################
`:****************i` ################# `:****************i.###########################################################################################
.i*****************:  #########  ` ####.i*****************,`##########################################################################################
:********:,i*******i`########## .;.`  #:*******;,,.:******i. #########################################################################################
i********,`;*******i,# #########,*i;.``;******;`.,.`:******. #########################################################################################
*********,`i********:`.````````.,***i;,;******..i*i..;*****. ######                   ############   `````   ###########             #################
*********,`i*********iiiiiiiiiii*************i.,***:`:*****,`#####`.,,,,,,,,,,,,,,,,,. ########## `,,;*+*;,,` ######### `,,,,,,,,,,.`  ###############
*********,`i*********iiiiiiiiiiii*****i******i.,***:`:*****:`#####.zWWWWWWWWWWWWWWWWWi` ####### `,ixW@@@@@@xi,`########`;WWWWWWWWWMz*:,`  ############
*********,`i********:```````````,***i:.;******..i*i..;*****. #####.n################@i` ###### `:x@#########@x:`#######`;@##########@@xi,  ###########
i********,`;*******i.           ,*i:.``;******;`.,.`:******. #####.z################@i` ######`;M####@WWW@####M:`######`;@#############@n:` ##########
,********:,i*******;`###########.:.`  #:*******;,,,:******i. #####`i######W###x#####+, #####  ,x###@x*:,:*x@###x, #####`;@##@z##znxM@####M;` #########
`i*****************,  ########## ` ####`i*****************,`###### ``````.x##@*```````#######.####@#.` # `.#@##@#`#####`;@##M,```..,*x@###M:`#########
`,****************;`##################  ,****************i. #######      .x##@+`      ###### :W###z.  ###  .z###W;  ###`;@##M,      `.#@###n.#########
 `;**************i, ####################`:**************i. ############# .x##@+` ########## `+###W;  #####  :W###+` ###`;@##M,######  .#@##Wi` #######
# .;************i,` #################### `:************i. ############## .x##@+` ########## ,x###z. ####### .z###n,# ##`;@##M,#######  ,x###n. #######
#  .:i*********ii,`# ################### .:*i*********:. ############### .x##@+` ########## :W##@*` ####### `*@##W;# ##`;@##M,######## `i@##M:# ######
##  `.:ii***i:,:**;.`################# `:i*i,,;i***i:,`################# .x##@+` ##########`i@##W;  #######  ;W##@i  ##`;@##M,######### ,M##@*  ######
#### #`..,,,.` ,***i:.`############# `,;***;` .,,,,.`################### .x##@+` ##########`+###M,# #######  :M###+` ##`;@##M,######### .n####` ######
#####  ####### .*****i, ############.;*****:` ####### ################## .x##@+` ##########.####x.#########  ,x####.###`;@##M,##########.####z. ######
#########  ####.*****i. ############`:*****:`###  ###################### .x##@+` ######### .z###n.###########.n####.###`;@##M,##########`*###n.#######
############## .i***;` ############# `,****,`########################### .x##@+` ######### .z###n.###########.z###z.###`;@##M,##########`*@##x,#######
###############`i*i*i. ############# `:*ii*. ########################### .x##@+` ######### .n###z`###########.z###z,###`;@##M,##########`i@##x,#######
###############`;:.:*;`#############`,*i.,i.############################ .x##@+` ######### .n###z.###########.z###z.###`;@##M,##########`i@##x,#######
###############```#.;*,`############.i*, ```############################ .x##@+` ######### .z###n.###########,n###z.###`;@##M,##########`*###n.#######
################### ,*i.# ##   ##  `:*:`################################ .x##@+` ######### .####n.######### #,n####.###`;@##M,##########`+###n.#######
####################`:*;`#`..,,.` `,*i.################################# .x##@+` ##########.+###x,# #######  ,x###+` ##`;@##M,######### .z###z` ######
#####################.;*,,:i***i;,,i*, ################################# .x##@+` ##########`i@##M:# #######  :W##@i  ##`;@##M,######### ,x##@+` ######
######################.ii***********:` ################################# .x##@+` ########## ;@##@i  #######  i@##W;  ##`;@##M,######### :W##Wi  ######
#####################`.i************:`################################## .x##@+` ########## ,M####` ########`+###x,# ##`;@##M,######## `+@##M,# ######
#################### .i**************:`################################# .x##@+` ########## .####x,# #####  ,x####` ###`;@##M,######## ,M##@#` #######
####################.i****************,################################# .x##@+` ###########`i@##@*`  ###  `*@##W;  ###`;@##M,######  .####W;  #######
################### ,*****************;`###########################      .x##@+`      ###### ,n###M;`     `:M###z.# ###`;@##M,      `.#@##@#`#########
###################.i*****:,,.:i*******,########################## ``````.x##@*```````#######`iW###Mi.```.iM###W;  ####`;@##M,````..in@###x, #########
#################  ,******,`,.`.i******:`#########################`i######W###x#####+, ###### .+@###@xz#zxW###@*`######`;@##@z###znMW####M:` #########
#################  ,******,`i*:`,******;.#########################.z################@i` #####  .#@###########@+. ######`;@#############@x:` ##########
##################`,******,.i*i`,******i.#########################.n################@i` ######  .iM@#######@x;.  ######`;@###########@M*,  ###########
##################`:******,.i*i.,******i,#########################.zWWWWWWWWWWWWWWWWWi` ######## `,;zMWWWMz;,` ########`;WWWWWWWWWWx#;:` #############
#################  ,******,.i*:`,******i.#########################`.,,,,,,,,,,,,,,,,,. ##########  `.,,,,,.` ########## `,,,,,,,,,,..`  ##############
#################  ,******,`,,`.i******:`##########################                   ##############       #############             #################
################# #.i*****,...,i*******, #############################################################################################################
###################`:*****************i.##############################################################################################################
################## #.i****************,`##############################################################################################################
####################`,***************;.###############################################################################################################
#####################`,*************;.################################################################################################################
######################`,i**********:.# ###############################################################################################################
####################### .:i*****i;,`# ################################################################################################################
######################### .,,,,,.`####################################################################################################################
######################### ######## ###################################################################################################################
###########################     ######################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################