..::::::::::::::::::::..
.,,,:1ifLLLfCCCCCCCCCCCLLCCCCCLCLLffiii,,,
,.,ttttLCLCCGGCCCLCLLLLLLLLLLffffffffffLLLLCGGCLLt11:;.
.:itCLLCCCCCC00GCLLLLLLLLLLCLLLLLfffffLfffffffffLLG0GGCCCCLf1i:, .
.,1LLGLCCCG0888@8CLLLLCCLLLLLLCCCCCLfffLffffffffffffffL8@@800GCCCCLff;,
.;1LLCLCG088@@8@@@GLLLCCLLLLLLLCCLftt111111fC08880GLtffLfffG@@@@@8800GCCCLt1.
:ifCCCG08@@@@@@8888GLLLLCCLLLLLLLti;:,,,,,:,t8@@@@@@@@CffffLftC@@8@@@@@@880GCCffi;.
:fLCCG08@@@8@@@@@@@@GfCLLLCCCLLLf1;:,,,,::::,;8@8@@@@@@@@CfffffftC@88@@@@@@@@@80GCLCf:
:tfLLC08@@@@@@@@@@@@@@0LCLLLLCCCLLt::::,,,,,:::,:8@8@88888@@Lffffffff0@@@@@@@@@@@@@@80CCLft,
.itCCLG8@@@88@@@@@@@@@@@8CLCCLLLLLLC1:,::,:,,,,,,,:,i0@@@@@@@8CtffffffffL8@@@@@@@@@@@@@@@80GLCC1
.tCCLC8@@@@@@@@@@@@@@@@@@0fCLCLLLLLLf:,:,::,::::,,,:,,:1LCGGLtitffffffffft0@@@@@@@@@@@@8@@8@@0CLCf,
iCLLG@@8@@@@@888@@@@@@@@@GLLLLLLLLLLi,::::,:::::::,:::,,,,,,,,,tLLLLffffftG@@@@@@@@@@888@@@@@@8CLCCi
LLLL8@@@@@88@@@@@@@@@@@@@GLLLLLLLLLLi,::::,:::::,,,,:::::::::::1LLLLffffftG@@@@@@@@@@@@@@88@@8@0LLC;
:CCLC8@@8@@@@@@@@@@@@@@@@0LLLLLLLLLL1::,,,:::::::::::::::::::::tLLLLLfffft0@@@@@@@@@@@@@8@@8@@0LLCL.
.iLCLC8@@8@@@@@@@@@@@@@@@8LLLLLLLLLLL;,:,,,,:::::::::,,,,,:::,;LLLLLLffftf8@@@@@@@@@@@@8@@@@8GLCCL:
:tLCLG8@@@@888@@@@@@@@@@CLLLLLLLLLLf;,::,,,,::::,::::,,,::,;fLLLLLLffftC@@@@@@@@@@@@@@@@8GCLL1;.
,tLLLG08@@@88@@@@@@@8@8LLLLLLLLLLLLi::,:::::::,,:::::,::1LLLLLLLLffff8@8@@@@@88@@@@80CLLC1,
.tLCCCG08@@@@@@@@@88@0LLLLLLLLLLLLf1::,,,,,,::,,,,:;1fLLLLLLLLLfff0@88@@8@@@@@80CCCLfi.
.i1LLCCC088@@@@@888@0LfLLLLLLLLLLLLt1i;::::::;i1fLLLLLLCLLLCftf0@@8@@@@@80GCLCLt;,
.,tfCLCCG00888@@@@8CfLLCLLfC0GLLLLLLLLLLLLLCCLLLLCG0GLLLftC8@@@@880GCCCLLt;.
. ,;1ffCCLGGG0088@0CLLLLLLCG00CCLLLLLLLLLLLLCG00GLfLLfL0@800GGCCCLLti:.
..:;ttfLCCCCGGGGCLLLLffLG00000GGGGGG00000CLLLLLfCGGCCCCLLt1;..
.,;11CfLCLCCCCCCCCLLCCGG0000000GGGCCLCCCCCLfft11,,,
. ,;:::;t1ttfCLLffLLLLLLLLLLfttt1::;:,.
..,.............