________________,d888888888b,
___________________________d8888888888888b________- - - _________________,ad8ba,_
__________________________d88888888888888 _____________________,d888888888b,
__________________________I8888888888888888_______- - - _____________,8888888888888b
__________________________`Y88888888888888P"""""""- - - """"baaa,___,888888888888888,
____________,adP"""""""""""9888888888P""^_________- - - ________^""Y8888888888888888I
_________,a8"^___________,d888P"888P^_____________- - - ______________^"Y8888888888P'
_______,a8^____________,d8888'____________________- - - _________________^Y8888888P'
______a88'___________,d8888P'_____________________- - - ___________________I88P"^
____,d88'___________d88888P'____Pure __________________- - ____________________"b,
___,d88'___________d888888'_______________________- - - _____________________`b,
__,d88'___________d888888I________________________- - - ______________________`b,
__d88I___________,8888888'________________________- - - _______________________`b,
_,888'___________d8888888__________,d88888b,______- - - ________________________`b,
_d888___________,8888888I_________d88888888b,_____- - - ______,d8888b,___________`b
,8888___________I8888888I________d8888888888I_____- - - _____,88888888b___________8,
I8888___________88888888b_______d88888888888'_____- - - _____8888888888b__________8I
d8886___________888888888_______Y888888888P'______- - - _____Y8888888888,________,8b
88888b__________I88888888b______`Y8888888^________- - - _____`Y888888888I________d88,
Y88888b_________`888888888b,______`""""^__________- - - ______`Y8888888P'_______d888I
`888888b_________88888888888b,____________________- - - _______`Y8888P^________d88888
_Y888888b_______,8888888888888ba,_________________- - - _________`""^________,d888888
_I8888888b,____,888888888888888888ba,______d888888- - - 88b_______________,ad8888888I
_`888888888b,__I8888888888888888888888b,____^"Y888- - - P"^__________.,ad88888888888I
__88888888888b,`888888888888888888888888b,_____""_- - - _____ad888888888888888888888'
__8888888888888698888888888888888888888888b_,ad88b- - - a,_,d88888888888888888888888
__88888888888888888888888888888888888888888b,`"""^- - - _d8888888888888888888888888I
__8888888888888888888888888888888888888888888baaad- - - 888888888888888888888888888'
__Y88888888888888888888888888888888888888888888888- - - 88888888888888888888888888P
__I888888888888888888888888888888888888888888888P Y8888888888888888888888'
__`Y88888888888888888P88888888888888888888888888'_- - - ____^88888888888888888888I
___`Y8888888888888888_`8888888888888888888888888__- - - _____8888888888888888888P'
____`Y888888888888888__`888888888888888888888888,_- - - ____,888888888888888888P'
_____`Y88888888888888b__`88888888888888888888888I_- - - ____I888888888888888888'
_______"Y8888888888888b__`8888888888888888888888I_- - - ____I88888888888888888'
_________"Y88888888888P___`888888888888888888888b_- - - ____d8888888888888888'
____________^""""""""^_____`Y88888888888888888888,- - - ____888888888888888P'