OOkxkkOO00KKKKKKKKKK00OkkxdddddddddddddddddddddddddddddoooddodoollloodxxkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkkkkkkkkkkkkkkkkkkOOO0K00Okkkxxxxkkxkxxxddddooodoodooooloooollc:;,,,,',,;;::ccccccclllcllllllllllllllllllllllollollllllllooooooooooolooooolloooollllllollooooooooooollllloooooooooooooooollllllllllooolllllllllllllllllllllloo
OOkkkkOO000KKKKKKK000OOkxxdddddddddddddddddddddddddddddddodddddoooooddxkkOOOOOOOOOOOOOOOOOOOOOOOOOkkOOkOOkkkOOkkkkkkkkkkkkO00000OOkkkkkxkOkkkxddddddddoodoooooololccc:;;,,,'',;::::cccccccclllcllllllllllllllllollllllllllllllllloollooooolollooooooloooolllolllloooooooollllllllllllooooooooooooollllllllllollllllllllllllllllllllloo
0OkkkkkOO000KK0000000OkkxxdddddddddddddddddddddddddddoodoodddooooloooddxkkOOOOOOkkOOkkOkkOOOOkkkkkkkOkkkkkkkkkkkkkkkkkkkkO0000OOkdoollodxkxxxxddddooooooooooolollc:;;;,,,,,,,;::::ccccccllclllccclllllclollolllllllllllllllllllllloololllllllolc:::::cllllllllllllllollllllllllllllllllooooooooooolllllllllllllllllllllllllllllllllooo
OOkkkkkOOO0000000000OOkxxxdddddddddddddddddddddddddddoooodoc;,'''''',,,;:clc:;::cooc::::coxkdl::::;;:cdkxlc;;;;;;;;;;;:cccccoxkdc;'''',;:cdddddddoc;,',,,,;:l:,'..............,;;'''..,:cllc:,''.'''''',;,''''''''',,,''''''''''',,,,'''';:loc,'.....',;col:,'''',;;;,''',;clollllllllloooooooooooollllllllllllllllllllllllllllllloooo
OOkkkkkkOOO0000000OOOkkxxddddddddddddddddddddddddddddodddoc;;,,,,,,,,,,,;;;;,,;;:;;:;;,,:cooc:;,,,,,,:col:;,,;;,,,,,,;;;;;;;;::;;ldddddo:';ldddodl;;,,,,,,;,,,,,,',,,,,'',,,,,,'',,,,,;;:llc,,,,,,,,,,;,',,,,,,,,,;'',,,,,,,,,,,,;,,;,,,,;,:;',ldddddo:''::,;;,,,;'';,,,,;;;lolllllllllooooooooooolllllllllllllllllllllllllllllllooooo
OOkkkkkkkOOOOOOOOOOOkkxxxdddddddddddddddddddddddddddddoddo;:k000000000000xdO0000O;:O00O00dlccx00000K0Oc::l00K0000000000Ok000d''cONWWWWWN0d:;ldddd:ck00000K0c.,x0000K000dd00000l.'x0000k:;cl;,o000000000k:o000000000dlk000000000000dx00000k:.':OXWWWWWWKd:,':k0000O;;k0OO00o;clloollllllloooooooooolllllllllllllllllllllllllllllllollll
OkkkkkkkkkOOOOOOOOkkkkxxdddddddddddddddddddddddddddddooddo,cXMMMMMMMMMMMM0kNMMMMX::NMWWMWxc:c0WMMWMMMNo;;oNMMMMMMMMMMMWXXWMMk.'kMMWWWMWWWNo':dddo;cKMMWWMMNl.:XMMMMMWWWkkWWWWWd.,KMMWW0::lc;'kWMMMMMMWWKcxWMMWWWMMMOdXWMMMMMMMMMMWOOMMMMMXc.'xWWWMWWWWMWx'.:KWMMMN:;XMWWMWx,:lloollllllloooooooooolllllllllllllllllllllllllllllllollll
OkkkkkkkkkkOOOOOOkkkkxxxdddddddddddddddddddddddddddddooodo,:KWMWMMMMMMMWWOxNWWWMN::NMWWWWx::cKWWMMWWWNl;,lNWMMMMMMMMMWWXXWWWx.:XWWWWWWWWWNk;:oddd;cKWMMWMMWo.:XWWWWMWWWdoNWWWWx.:XWWWWk;;ll;'kWWMMWWMWMKcxWWWWWWWWMOdXWWMMMMMMMMMWkOWWMMMX:.cKWWWMWWWMWWO;.:KWMWWN:;XMWWWWx,clllllllllllooooooooollllllllllllllllllllllllllllllllollll
kkkkkkkkkkkkkkkkkkkkxxxxxddddddddddddddddddddddddddddooood,;KWMMWWWMWWWWWkxNWWWMN::XMWWWNd;;oXWWWMMWWNl,'lNWMWWWWMWWMWNKXWWWd'xWWWWWWWWMWWXl;oddd;:KWWMMMWWk.cNWWWWMWWWo;0WMWWO.cWWWMNo':ll;'xWWWMWMMWM0cxWWWMWWWWWkoXWWMWWMWWWWWWkxNWMMWK;.kWWWMWWWWMWWNo.;KWMWWNc;KWMWWWd'collllllllllloooooooollllllllllllllllllllllllllllllllollll
kkkkkkkkkkkkkkkkkkxxxxxxxxxxxddddddddddddddddddddddddooddo,:XMMMMWWWWWWWWOxNMMMMN:;XMWMMNd;,dNMMMWMMMWd,'oNWWWWWWMWWWWNKKWWWxc0WWWWXkKWWWWWx,cddo;cKMMMMMMWO'lWMMMMMMMWd'xWMWW0;oWWWWX:'cll,'xWMMWWMWMMKcxWWWWWWWWWOdXWWMMWWWWWWWWOkWWWWWX;,KWWMMNO0NWWWWx.;KWMMWN:;KWMMWWd,colllllllllllloooloooollllllllllllllllllllllllllloolooolll
kkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxddddddddddddddddddddddooddo:;dxxKWMWWWNOdxldNMMMMN:;XMMMMWd,'dWMMMWMWWMk;,cxdxXWWMWWXkxdoOWNWxlXWWWWO,lNWWWWx,:odo;cKMMMMMMM0,lWMMMMMMMWd.lWMWW0cxWWWWO;,cll,'xWMMWWKxddo;xWMWWWKxdxc:odxKMMWWWNkdxlxWMWWWK;:XWWWM0;lNWNWWk.;XWWWMNc;KWMWMWd,cololllllllllloolloollllllllllllllllllllllllllllloooooolll
kkkkkkOkkkkkkkkkkkkxxxxxxxxxxxxddddddddddddddddddddddoooodl;,..oWMWWWK:.''lNMMMMN::XMWMMWd''xWMMMWWMWMO:;:,..xWWWMM0;.''xWWNooNWWWWk.cNWWWWx,cdoo;cKMMMMMMM0:dWMMMMMMWWx.:XWWWKx0MWWWd';cll,'xMMMWWx..'..xWWMMWx........xMWWWW0;...dWMMMWK;:NWMWWO.cNWWNWk.;XWWMMNc;KMWWMWd,cooollllllllllolloollllllllllllllllllllllllllllllooooollll
kkOOOOOOOOOOOkkkkkkkkkkkxxxxxxxxdddddddddddddddddddddoooooolc;.oWMWWWK:,c,oNMMMMX::XMMWWNd',OMMMWNWMWW0;:do:'xMWWWW0;;l;l0KO:lNWWWWO':0KXKKd,cooo;cKMMMMMMMXdOMMMMMMMWWx.'OWWMNOXMWWNc.:lll,'kMMMWWd.':'.xMWWWMx..;;:;'.dMMWWW0,.,'dWMWWWK;:NWMWW0,:00K00d.,KMMMMNc;KMWWWWd,coooolllllllllllloollllllllllllllllllllllllooollloolllllll
OOOOOOOOOOOOOOOkkkkkkkkkkkxxxxxxxddddddddddddddddddddooooodddl'oWMMMWKc:o;oNMMMMX:;XWMWWNd.:0MMMWXNMMWK:ckOd,xMMWWW0coOl::;:'cNWWWWXo',;;;;;;lool,:KWMMMMMMNOKMMMMMMMWWx..xWWWWXNMWW0;'clll,'kMMMWWd..,..xMWWWWd..';cl:'dWMMWW0;;:,xWMWWWK,:XWWWWNd,,;,,;;.;KWWMMN:;KWWWWWd,coooolllllllllllloolllllllllllllllllllllllloooollolllllloo
OOOOOOOOOOOOOkOkkkkkkkkkkkkxxxxxxddddddddddddddddddddooooddodl'oWWWWWKc;:'oNMMMMNooXWMWWNo.:KMMMN0XMMMNl:kOd;xWWWWMO:lOxo:;:,cKWWWNWXd,..',;clllc':KMMMMWWMWKXMMWWMMMMWx'.lNWWWNWMWWx';llll,'kMMMWWk;';'.xWWMMWk;',,;c:.dWWWWW0;;:'dWMMWWK,,KMWWWWNx;. .',.;KWWMMNolXWMWWWd'coloolllllllllllloolllllllllllllllllllllllooooollllllllooo
OOOOOkkOOOkkkkkkkkkkkkkkkxxxxxxxxddddddddddddddddddddooodooddl'oWWWWMKc,;.oNMMMMWXKWWWMMNo.;KMMMNOKMMMWo:kKk:xWWWWWO:lOOkkxxc;kWWWNWWW0o,,:lllc:;.;KMWWWNWMWNNMWWWMMMMWx'.;0WWMWMMMNo.:lcll,'kMMMWMX000l.xMWWWMNK00d;::.dWWWWW0:;:,xWWMMWK;.xWWWWWWWKo,';c';KWWMMWXKWWWWWWd'clloolllllllllooloolllllllloollllllllllllloooollloollllooo
kkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxdddddddddddddddddddddooooodddl'oWMMMMKc'..oWMMMMMMWWWWMMWo.:XWWMXkKMWWWd;ONk:xWMMWWO:lkOOkxxo,cKWWWWWWWNx;';cc:;,.;KMMMWXNMWWWMWNNMMMMWd'',xWWWMMMMK:'clcll,'kMMWWMWWWWd.xMWWWMWWWWk,::'dWMMMW0;,:,xWMMMWK;.cKWWMWWWWNk;';':KMMWMWWMMWWMMWd':lllllllllllllooooollllllllloooooolllllllllooollooollllooo
kkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxddddddddddddddddddddddooooodddl'oWMMMMX:...oWMMMWWMWWWWMWWl.lNWWMKdOWWWWx:ONk;xWMMMW0:lkkkxdddc,c0WWWWWWWNO:',:;,,.;KMMMWXXMMMWMWXNMMMMWd,,'dWWWMMMMO,,cllll,'kMMWWWWWWWd.xWWWWWWWWWk';:'dMMMMM0;;:,dWMMMM0;.'c0WWWWWWMW0c'.;KMMMWWWWWWMMWMx':lllllllllllllooooollllllllloooooolllllllllloooooolllllooo
kkkkkkkkxxxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddooooodddl'oWMMMMX:.. lWMMMWWMWWWWWWWl.oWMWW0cxWWWWOckNx;xWWMMWO:lkxxddddo:':ONMMWWWWW0;.,,,,.;KMMMWKXWMMMMNKXMMMMWd,;'cXWWMMWWd';lllll,'kMMMWWWWWWd'xWWMWWWWWWk;::'dMMMMM0;;:,dWMMMW0;,;':ONWWWWWWN0:.;KMMMWWWWWWWWMMx':lllllllllllllooooolllllllllloooooollllllllloooooolllllooo
xxxxxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddddooooodddl'oWMMMMK:.. lNMMMMMWWWNNWMWl.dMMWWO:xMWWW0cxXx;xWWMMWO:cxxddxdodl'.lXWMWWMWWXc.',,,.;KMMMWKKWMMMMN0XMMMMWx,:';KWWMMWNo.:lllll,'kMMMWWWWMWd'dNWMWWWWMWO:c:'dMMMMM0;;:,dWMMMWKc,l,.lXWNNWWWWNl.;KMWMWWWWWWWWMWx':lllllllllllllooooollllllllllloooooollllllllooooooollooooo
xxxxxxxxxxxxxxxxxxxxdddddddddddddddddddddddddddddddddooooodddl'oWMMMMK:. lWMMMMW00NWWWMWl.dMMWMO,dWWWWKcdKd,xWMMMWO:cxxddddool;.,oKWWWMWNNo..,,,.;KMMMW0KWWWMMX0XMMMMWx,:,,OWWMMWXc'clllll,'kMMMWWKxxx:.xWWMWWKxdxl;::'dWMMMW0;;:,dWMMMWK:,c,.'oKWWWWWWNd.;XMWWMW0ONWWWMWx':lllllllllllllooooollllllllllllooooolllllllllooooooooooooo
xxxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddddddooooodddl'oWMMMMK:. lWMMMMXccXMMMMWl.xMWMMO.cNWWNKcl0d,xMMMMW0:cddddddo:,....:0NWMWNWO,.,,,.;KMMMW00WWWMMX0XMMMMWd,:;'dWWMWW0,'llclll,'kMMMWWx..'..xMMWWWx...';c;'dWMMMW0;;:,dWMMMMK;.'.. .;kNWWWWW0';KMWWMNl:KMWMMWd':lllllllllllllllollllllllllllllloooolllllllllooooooooooooo
xxxxxxxxxxxxxxxxxxxxdddddddddddddddddddddddddddddddddooooodddl'oWMMMMK:.. oWMMMMX::NWWMMWl'OMWMMKokNNNNXc:Od,xWWMMW0::dddddoc:clccl:;kWWWWWK;.,;;':KWMMWOOWMWMMKONMMMMWd'::'lNWWWWk',lccccl,'xMMMWWd.';'.xWWWWWd..;:cl:'dWMMMW0;;:,dWMMMMX;'lcclc:;xNWNWWX;,KMMMMNc;KWWMMMd':llllllllllllllllllllllllllllllloooolllllllllooooooooooooo
xxxxxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddddooooodddl'oWMMMMK:.. lWMMMWX::XWWMMNl;0MMMMWNWWNWWNo;xd;xWWMMM0::dddodd:lXNNNWO.:XWWWWXc.;::':KWMMMOxNMMMM0xXMMMMWx':c'lNWWMWx.;lccccl,'xMMMWWd.;c,.xWWWWWd';llll:.dWMMMW0;;:,dWMMMWX;;XWNNWO';0NWWWNc;KMMMWNc;KWWMMMd':llllllllllllllllllllllllllllllllllllllllllllllooooooooooo
xxxxxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddddooooodddl'oWMMMMK:.. lWMMMWX:;KWWWWNlcXMMMMWWWWWMWWd'cl,xWWMMM0::oddodo;lXWWWW0''0WWWWXc.;:c,:KWMMMkoXMMMMkoXMMMMWx,:c,oNWMMWx',llcccl,'xMMMWWd..,..xWWWWWd..;;:c;.dMMMMM0;;:,dWMMMWK;:XMWWW0,'OWWWWN:,KWWWWX:;KMWWMMd':llllllllllllllllllllllllllllllllllllllllllllllooooooooooo
xxxxxxxxxxxxxxxxxxxdddddddddddddddddddddddddddddddddoooooodddl'oWMMWWX:.. lWMMMMX::XWWWMNlcXMMMMMWWWWWMMx.','xWWMMMO;:dddddl;cKWWWWO''OWMMMXc'::c':KWWMMxlKWMWWxlXMMMWWd,:c,oNWWMMx';llcccl,'kMMWWWd.....xMWMMWx'..',:;.dMMMMM0;;:'dWMWMMX;;KWWWWK,'OWWMMN:,KWWWWX:;KWWWMWd':llllllllllllllllllllllllllllllllllllllllllllloooooolloooo
xxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddoddooooooodddl'oWWMWWX:.. lWMMMWX::XWWMMNolNMMMMXk0WWWMMk....xWMWMMO::ddoooo;;0MWWW0;;KMMWWNc':c:':KMMWWx:OWMWWdlXMMWWWd,:c,oNMWMMx',ccllcl,.xMWWWWd.....xWWWWWKkxxxc,;.dMMMMM0;,:,dWMWWMX;'OMMWWK:;0WWWWN:;KWWMMN:;KWMWMWd':llllllllllllllllllllllllllllllllllllllllllolllooolllloooo
xxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddoddooooooddddl'oWWWWWKc...lNWMWWN:;XWMMWNodWMMMMO,lNWMWWO' .xWMMWW0::oooooo;'kMMWWNOONWWWW0:':cc,:KWMMWx;kWWWNllNMMWWWd':c'lNWMWWx';ccllcl,.xMMMMWd.....xWWMWWWWWWWo',.xMMWWW0;;:,dWMMMMK;.kWWWWNOONWWWWK;;KWWWWNc;KWMMWWd,:lllllllllllllllllllllllloolllllllllllllllllllllollllooooo
xxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddoddooooooddool'oWWWWWKc'. lNWMMWN::XWWWWNxkWMMMMk.:NWMMWK; .xWMMWWO;:oooool:'oNWWWWWWWWWWWx',ccc':KWWMWk;kMWWX:cNWMMWWx,:c'lNWWMWx';lccccl;.xWMWWWd.....xWWWWWWWWWNl','dMMMWW0;;:'dWWMMMK;.oXWWNWWWWWWWWk.;KWWMWNc;XMMWWWd,cllllllllllllllllllllllllooolllllllllllllllllllllllllllloo
xxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddoddoooooodoodl'oWWWWMXc,'.oWMWWMN::XWWMMNk0MWMMWk.;XMMWWNc .xMMMWW0;;olllll:.,kNWWWWWWWNNO;':ccc':XWWWWk'oWWWK;cNWWWWWx,:c,oNWWMWx';lccccc,'kWWWWWd.....xWWWWWWWWWWo','dWWWMM0:;:'xWWWWMK:.;kNWWWWWWWWW0:.:KWMMWNc;XMMWWWd,:lllllllllllllllllllllllllolllllllllllllllllllllllllllllll
xxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddoddooooooooodl,lOOOOOkc;,.cOOOOOO;;kOOOOkdxOOOOOo.'x0OOOO: .lO00OOd;;llllcc;'.,o0NWWWWN0d;.;ccc:,:kOOOOo.:OOOd,:OOOOOOo;:c,lOOOOOo,;cccccc;'oOO0OOc.....lOOOOOOOOOOc';'l0OOOOx;;:;oOOOOOx;',;o0NWWWWWXkc'.;xOOOOk;,xOOOOOo;cllllllllllllllllllllllllllllllllllllllllolloooolooooooooo
xxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddoddooooooooddo:,,'',';:c;..''''',.',,'',,'',''''....'''''. . .''''''.':ccc;;;;'..;looooo;..,:cccc:,,''',,'',',,.','',',,;cc;,,''',,,:lccccl:'''''''.......''''''''',',;,','''',,:c;,,''',,,::'':loooooc,';;,,,''','',,''',,;llllllllllllllllllllllllllllllllllllllllooolooollloooooooo
xxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddoddooooooodddoc'. .;l:. .... .. . ..;:::;,;;,'. .... .;:::clc:,. .'.. ..... .':ll:'. .,:lcccclc'. ..... ..;:,. .,:c;.. .,cc;'... .....;lc'.. .'... .;llllllllllllllllllllllllllllllllllllllloooolooollloooooooo
xxxxxxxxxxxxxxxxxxxdddddddddddddddddddddddddddddoddoooooooddool:,'',,:lo:... ...';,'',,;;,''...... . ..',;;,,,;,''........,::cccccc;,'.'',;;,'',;;,'''',;:ccc;,'''';:cccccccc;................ ....,::;,'.''',;ccc;,'''',:clc;,'.....';clc:;,,'',;;,,'',';clllllllllllllllllllllllllllllllllllllllooooloollllloolllll
xxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddodooooooooddooolllloodxdl,....',,;cccloooddlcc:;,.......................'',,,,,,;;;;,;;;:ccccccccccccccccccclccllccccclccccllcccccccccccccc:;'.''''''......'.....',;::::c::ccccccclccccccccllllcc::::ccllllolllllllolllclllllllllllllllllllllllllllllllllllllllllllooolllollllllllllll
xxxxxxxxxxxxxxxxxdddddddddddddddddddddddddddddddooooooooooodoooollloodxxd:.....',;:cclolloooolc:;'............. ..........'',,;;::cccccccccccccccccccccccccccccccccccccccccccccccccccccccc:,'..''''''............',;:::::::cccccccccccccccllllllllllllllllllllllllllllllllllllllllllllllllllllolllllllllllllllloooollllooolllllllllll
xxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddddoooooooooddooollloodxxdc'.....',::cllcccclodolc;,........... ...... ....',;;;::::ccc:cccccccccccccccccccccccccccccccccccccccccccccccccc:,'.'''''''''''.........',;:::::::ccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllloooollllooolllllllllll
xxxkkxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddoooooooooddooollloodxxxl,.....',::cllc:::clodolc:,..... ... ........ .....',;:::cccccccccccccccccccccccccccccccccccccccccccccccccccccc:;,'.'''''''''''..........';;:::::::cccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllloooollllloolllllllllll
xkkkkkkxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddoooooooooddooollloodxxxl,......,::cccc:::clodddolc;'.........................',,;::cccccccccccccccccccccccccccccccccccccccccccccccccc::::;'..'''''''''''...........,;;;:::::cccccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllloooolllllollllloolllll
kkkkkkkkkkxxxxxxxxxxxxxxxxxxxddddddddddddddddddoddoooooooooddooollloodxxxl;......,;:ccccccclodxxxddol;'........ ...............',;::cccccccccccccccccccccccccccccccccccccccccccccc::::::;,'..'''''''''''...........',;;;::::::cccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllloooollllllllllooolllll
kkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxddddddddddddddooddoooooooooddooollloddxxxd:'.....';:cccccccodxxxxdddoc:,....... ... ........',;:::cccccccccccccccccccccccccccccccccccccccccc::::;;;;,''''''''''''''............,,;;;:::::::cccccccccccccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllloooollllllllllooolllll
kkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxddddddddddddoooddoooooooooddooollloddxxxxc,.....',:cccc:::cloddxxxddol:,'...... ... .........'',::cccccccccccccccccccccccccccccccccccccccc:::;;;;;,,''''''''''''''..'''.......',;;;::::::::ccccccccccccllllllllllllllllllllllllllllllllllllllllllllllllolllllllllllllllloooollllllllllooolllll
kkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxddddoodddddoooooooooooooooddooollooddxxkxo;......,;::c::::;::codddddoolc:,....... .... ..........,;ccccccccccccccccccccccccccccccccccccccc:::;;;;;;,,,'''''''''''''..'''.......',;;;;::::::::cccccccccccclllllllllllllllllllllllllllllllllllllllllllllllollllllllllllllllllllllllllllllllllllll
kkkkkkkkkkkOOkkkkkkkkkkkkkkkxxxxxxdddoodddddoooooooooooooodddooollloodxkkkxl,.....';;::::::;;;:cllooooolll:;'...... ...... ..........',:::ccccccccccccccccccccccccccccccccc::::;;;;;;;,,,',,,'''''''''''''.........',;;;;;::::::ccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
kkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxddddddddddoooooooooooooodddoooollodxkkkO0kl'....',;;::c::;;;;:cclooooooolc;'......... ....... ..........';::ccccccccccccccccccccccccccccccc::::;;;;;;;;,,,'',,,''''''''''''..........',;;;;;;::::::cccccccccccccccllllllllllllllllllllllllllllllllllllllllooollllllllllllllllllllllllllllllllllllll
kkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxddddddddddoooooooooooooodddoooollodxkkk0KKd,.....,;;::cc:;;;;;:cloodddooll:'....... ...... . ........,;:ccccccccccccccccccccccccccccccc:::;;;;;;;;;,,,,',,,''''''''''''..........',;;;;;;;:::::cccccccccccccccclllllllllllllllllllllllllllllllllllllloooollllllllllllllllllllllllllllllllllllll
kkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxdddddddddddoooooooooooooodddooooloddxkkOKXXk:.....,;;;:cc:;::;::llodddddolc:,........ .... . ........',;:ccccccccccccccccccccccccccccc:::;;;;;;;;;;,,,'',,,''''''''''''...........',;;;;;;:::::cccccccccccccccclllllllllllllllllllllllllllllllllllllloooollllllllllllllllllllllllllllllllllllll
xxxxxxxxxkkkkxxxxxxxxxxxxxxxxxxxddddddddddddoooooooooooooodddooooloddxk0KNNN0l'....',;;;:c:;::::clodxxxxdolc:;,........ ... ............';::ccccccccccccccccccccccccccc::;;;;;;;;;;,,,,''''''''''',,'''''..........',;;;;;;::::::ccccccccccccccccclllllllllllllllllllllllllllllllllllooooollllllllllllllllllllllllllllllllllllll
xxxxxxxxxxxxxxxxxxxxxxxdddddddddddddddddddddoooooooooooooodddooooooddxOKNWNNKx;....',;;;:c::::::codxxkkkxdlc:;;,....... ................',:cclccccccccccccccccccccc:::;;;;;;;;;;;,,,,'''''''',,,,,,''''...........',,;;;;;::::::::cccccccccccccccclllllllllllllllllllllllllllllllllooollllllllllllllllllllllllllllllllllllllll
xxxxxxxxxxxxxxxxxxxdddddddddddddddddddddddddoooooooooooooodddoooooodxOKNWWNXKOc'...',;;::c:::::clodxkkkkkxolc:;,,.......... ......... .......',;:cccccccccccccccccccc:::::;;;;,;;;;;;,,,,''',',,,,,,,,,'''''..........'',;;;;;;:::::::ccccccccccccccccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
xxxxxxxxxxxxxxxdddddddddddddddddddddddddddddoooooooooooooodddoooooodkKNWWWNXK0d,...',;;::::::::cldxkOOOOkxddlc:;;,'......... ...................'';:ccccccccccccccc::::::::;;;;,;;;;;;;,,,,'',,,,,,,,;;,,,'''''.'''.....'',;;;;;;;::::::ccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
xxxxxxxxxxxxxxdddddddddddddddddddddddddddddddddoooooooooooddddoooodkKNWWWNXXK0xc...',;:::::::::cloxkkOOOOkkxdolc::;,......... ... .... ...........';;:cllccccccccc:::::::;;;;;;;;;;;;;;,,,,,',,,,;;;;;;;,,,,'''''''....'''',;;;;;;::::::::ccccccccccccclllllccccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
xxxxxxxxxxxxxdddddddddddddddddddddddddddoooooooooooooooooooddddoodx0NWWNNNXKK0Oo,.'',;:::::::::cllodxkOOOkkxxdolcc:;,'........... .................'',;:cccccccccccc:::::;;;;;;;;;,,;;;;;,,,,,,;;;;;;::;;;;,,,,''''''''''''',;;;;;:::;:::::::cccccccccccllccccccccllllllllllllllllllllollllllllllllllllllllllllllllllllllllllllllllll
xxxxxxxxxxxxxxxxxdddddddddddddddddddddoooooooooooooooooooooddddoox0NWNNNXXKKK0Od:.',,;::::::::::cclodxxkxxxxxdoolcc:;;,..............................',;;::cllccccccc::::;;;;;;;;;,;;;;;;;;;;;;,;;:::::c::;;;;;,,,,'''',,''''',;::::::::::::::cccccccccccccccccccccllllllllllllllllllllollllllllllllllllllllllllllllllllllllllllllllll
xxxxxxxxxxxxxxxxxxxxdddddddddddddddddddddddddddddddoooooooodddddx0XWWNNXXXK000Oxc'.,,;::::::::::ccloddxxkkkxxddoollcc:;,'...........................'',,,,;:cllccc::::::;;;;;;;;;;;;;;;;;;;;;;;;;::ccccccc:;;:;;;;,,''',,,,''',;;:::::::::::::ccccccccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxddddddddddddddddddddddddddddddddxk0NNNNNXKKKK00OOxo;'',;:ccc::::::cloddxkkkkkkxxddooolcc:,'......................'''''',,,,,,;:clccc::::;;;;;;;;;;;;;;;;;:;:::;;::ccclllllllc::c::::;;;,,,,,,,'',;;;:::::::::::::cccccccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
kkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdddddddddxk0NWWNNXXKKK00OOkxdc,',;::cc:::::cclodxkkkOkkkkxxxdoolccc;,'....................'''',',,,,,,,,;:ccccc:::;;;;;;;;;;;;;;;:::::c:::cllllooodooolllllccccccc::;;;;,,,,;;:::::::::::::::cccccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
kkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxddxxxkKNWWNNXKKKK00Okkxddl;'';;::c:::cc:cclodxxkkkkkkkxxdoolllcc:;,'..................'',,,,,,,,,,,;;;::ccccc:;;;;;;;;;;;;;::cccccclccclodddddxddddoodooooodddoolcccc:;,;:::::::::::::::::ccccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
kkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdxxkOXWWNNNXKKK00OOkxxddl;'',;::ccccccccclloddxkkkkkkxxdoollllcc:;,'.................'',,,,,,,,,,;;;,;::cccc::;;;;;;;;;;;::cccllclllclodddddxxddxxddddddddxxxxddooool:;;::::::::::::::::::cccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
kkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdxxk0NWWNNXKKKK00Okkxxddo:,',;::ccccccc:cclloddxxxkkxxddooolllcc:;,''...........''...'',,,,,,,,,,,;,,;;::cccc:;;;;;;;;;;;::ccllllooollodddxxxxxxxxxxxxxxxxxkkxxxdddxdl::ccc::c::::::::::::cccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
kkkkkxxxxxkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxOKNWWWNXXKKK00Okkxxdddol;,,;::clloolcc:ccllooddxxxxxdddddoolcc::;,,'...........''.''',,,,,,,;;,,;,,,,;::cccc:;;;;;;;;;::cllooodddxdddxxxxxxxxxxxkkkkkkkkkkkkkkkkkOkxdoooolllcccc::::::::cccccccccccccccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdddddddddxxxxxk0NWWWNNXXKK00Okkxxxdddooc;,;:clloddolcc:ccllooddxxxxxxxddoooollcc:;,'............''.'',,,,,,,;;;;,,,,;;;::ccc::::::::::coodddddxxxxxxxxxxxxxxkkkkkkkkkkkOOOOOOOOOOOkkkkxxdddollccccc:::::cccccccccccccccllllllcccllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
ddddddddddddddddddddddddddddddddddddddddddddddddddddddddxk0XWWNNNXXKK00OOkxxxddddool:;;:cloodddolc:::cllooddxxxxddooddddooolc:;,''.....''''''''''',,,,,;;;;;;;,;;;;::cccccllccccclodxxkkxxxxxxkkkkkkkkkkkkkkkkkkOOOOOOOOOOOOkkkkkkkkkkkxddooolcc::::cccccccccccccccccccccccccllllllllllllllllllllllllllllllllllllllllllllllllllllllloo
oodddooooooooooddddddddoooooooooooooooooooooooooooooooddk0XNWNNNXXKKK0OOkxxxxdddooooc;;;cloodddolc:::::ccllooooooodddddddddolcc:;,''''.''''''''''',,,,,;;;;;;;;;;:::::ccloooooooddxxkkkkkxxxxxkkkkkkkkkkkkkkkkOOOOOOkkkkOOOOOkkkxkkkkkkkkkxxdolccccccccccccccccccccccccccccccllllccllllllllllllllllllllllllllllllllllllllllllllllllooo
oooooooooooooooooooooooooooooooooooooooooooooooooooooodx0XNNNNNXXXKK0OOkxxxxxdddooooc:,;:clooddolc::;;::cclllooddxxxxdddxxddoollc;,,,''',,,,'''''',,,,,;;;;;;;;;;;:::ccclloddddxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOkkkkkkkkkkkkkxddoollccccccccccccccccccccccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllooo
ooooooooooooooooooooooooooolllllooooooooooooooooooooodxOXNNNXNXXXXKK0Okxxxxxxdddooolc:,,;:cloodool:;;;::clooddxxkxxdddddddddoooolc:;,,,,,,,,,,,,,,,,,,,;;;;::::;;;;;:cccllodddxxxxkkkkkkkkkkkkkkkkkkkkkkxxkkkkkkxxxxxxxkkkkkkkkkkxxxxxxxxxdooolllllccccccccccccccccccccccllcccccccccclllllllllllllllllllllllllllllllllllllllllllllllll
oooooooooooooooooooooooooooooooooooooooooooooooooooddxOXNNNXXXXXXKK0OOkxxxxxdddddollc:,,,;:cloddolc;;;:cloddxxkkxxddddxxddddoooollc:;,,,,,;;,,,,,,;;;,,;;;:::::::;;:::ccloddxxkkkkkkkkkkkOOOOkkkkkkkkkkkxxxkkxxxxxddddddxxxxxxxxxxxdddxxxxdoollllollccccc:cccccccccccccccllcccccccccclllllllllllllllllllllllllllllllllllllllllllllllll
oooooooooooooooooooooooooooooooooooooooooooooooododdxOXNNNXXXKKKKK00Okxxxxxxdddddolc:;;,,,;:clodolc:;;;:coddddddddxxxkkkkxxddoolllcc:;;;;;;;;;;;;;;;,,;;;::::::;::::cccllodxxkkkkkkOOOOOOOOOOkkkkkkkkxxxxdddddddddooollooodddddddddddddddddddooooollccccc:ccccccccccccccccccccccccccclllllllllllllllllllllllllllllllllllllllllllllllll
ooddddooddooooooddddooooooooooooooooooooooddoddddddxOXNWNXXXKKKK00Okkxxxxxxdddddolc::;;,,',;:cloool:;;;;:coddddxxkkkOOOOkkxxddooollcc::::;;,;;;;;;;;,,;;;:::c:::::cclloooddxxkkkkkkOOOOOOOOOkkkkxxxdddddoooooooololllcclllooodddoooooooloooddooolccccc::::ccccccccccccccccccccccccccccllllllllllllllllllllllllllllllllllllllllllllllll
dddddddddddddddddddddddddddddddddddddddddddddddxdxxOXNWNNXXKKKK00Okkxxxxxxdddddolc:;::;;,'',;:cloolc;;;;:clodxxkkkOOOOOOOkkkkkxxddollccc::;,,;;;::;;;;;;;;:::ccccclloodddddxkkkkkOOOOOkkkkkkkxxddddooooolllllllccccc:::cclllllooolllollcccclllllc:;:cc:;;:::::cccccccccccccccccccccccccllccccccccllllllllllllllllllllllllllllllllllllo
ddddddddddddxxxxxxxddddddddddddddddddddxdddxxxxxxkOXNWNNNXKKKK0OOkkxxxxxxddddoolc:;;:::;,'.',;:coolc:;;;:clodxxkOOOOOOOOOOOOOkkxxddoollc:c:;;;;;:::;;;;;::;;::cllloooddxxxkkkkkOOOOkkkxxxxxxxdoooooollccccccccc:::;;;;;;:ccccccllcclllcc:::::::::;,;::;,,,;;::ccccccccccccccccccccccccclcccccccclllllllllllllllllllllllllllllllllllllo
ddddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkOKNWWNNXXKKK00Okkxxxxxxdddddool::;;::::;'..';;clooc:;;;:clodxxkOOOOOOOOOOOOOkkxddddoolcccc:;;;;:::;;;::::;;;:cllloooddxxkkkkkkkOOkkkxxdddddddoolloolc:::cc:::::;;;,,,,;;:::::cccccclcc::::::;;::;',;;;,'',,;:c:ccccccccccccccccccccccclcccccccclllllllllllllllllllllllllllllllllllllo
dddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkk0XNWNNXXXKKK0OOkxxxxxxxddddoolc:;;;::::;,..',;:lool:;;;:clodxkkOO000OOOOOOOkkxxddddoollccc:::;;:::;;:::::::;:clllooodxxkkkkkkkkOkkkxxdddddoooolllllc:;;;:;;;;;;;,,,,',,;;:::::cccccccc::;;;;,,;;,'',,,'''',;::ccccccccccccccccccccccccccccccccccllllllllllllllllllllllllllllllllllllo
xddddxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkO0XNWNNXXXXKK0OOkxxxxxxxdddooolc:;;;;::ccc:,..';:clolc:;;;:clodkOO00000000OOkxxxxxxxddooolccccc:;;::::::::ccccccllooodxxkkkkkkkkkkkxxddddoolllccc:;;;;,,,''''''''''''''''',;;;;:::::cc:::;;;,,''',,''..'''...';::cccccccccccccccccccccccccccccccccclllllllllllllllllllllllllllllllllllo
xxddxxxkkkkOOOOkkkkkkkkkkkkkkkkkkkkkkkkkkkkOkOO0XNWNNNXXXKK0OOkkxxxxxxdddoollc:;;;:::ccccc;'.',;:looc:;;;;:cloxkO00000000OOkkkkkkkxxddooolllccc:::::::::cccclllooodddxkkkOOkkkOkkkxxdddolllcc::;,'''''...................',,,,;;;;::::;;;;,,'...''''.........',::ccccccccccccccccccccccccccccccccclllllllllllllllllllllllllllllllllllo
xxxxxxkkkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOKXNNNNNXXKXK00Okxxxxxxxdddoollc:;;;:::cccccc:,..',;coolc:;:cloddxkOO000000OOOOOOOkkxxdddddooolccc:::::::::ccccloodddxxxkkkkOOOkkkkkxxddoolc:::;;,,'.........................',,,,,;;;;;;;;;,,,'.....'............,;:ccc:cccccccccccccccccccccccccccccllllllllllllllllllllllllllllllllllo
xxxxxkkkOOO00OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOKXNNNNXXXXKKK0Okxxxdddddddoolcc:::::::ccccccc:;'..';:ldolccccodxkkOOO0000000OOOOOkxdddddxxdddoolc:::::::::ccclloodddxxxkkkkkOOOkkkxxddoolc:;,,'''............................''''',,,;;;,,;;,,,'..................';::c::cccccccccccccccccccccccccccccccllllllllllllllllllllllllllllllllo
xxxxkkkOO00000000OOOOOOOOOOOOOOOOOOOOOOOO0O0KXNNNNNXKKKKK0Okxxddddddddoollc::;::::cccccccc:;'...,;ldddolccllodkkkOO00000000OOkxdoddxxxxxxxdollc::::::::clloooddddxxkkkkkkkOkkxxxddollc:;,'................................''''',,,;;,,,,,,,,''..................,;::::cccccccccccccccccccccccccccccccllllllllllllllllllllllllllllllllo
xxxxkkOO00000000000OOOOOOOOOOOOOOOOOOOOOO00KXNNNNNXXKKK00Okxxddddddddoollc:;;;;::ccccclcccc;,...';coxxdoollllodxkO00000000OOkxddxkkkkxxxxxdollcc:;:cccccllooddddxxxxkkkkkkkxxxxdolccc:;,,'...............................''',,,',,;,,,,,,,,,,'..................';::::ccccccccccccccccccccccccccccccclllllllccllllllllllllllllllllllll
xxxxkkOO000000000000OOOOOOOOOOOOOOOOOOOOOO0XNNNNXXXKKK00Okxxxddddddddoolc:;;;:::cccccccclcc:;'...':lxkxxxddoooodkO0000000OOkkkkkOOOOkkxxxxdollcc::::cclllooddddddxxxxxxxxxxxxxdolc:::;,'.................................'',,,,,,,,,,'',,,,,,,''''...'''''.......,;::::ccccccccccccccccccccccccccccccllllllllcllllllclllllllllllllllll
xxxkkOO0000000000000OOOOOOOOOOOOOOOOOOOOO0XNNNNXXXKKK00Okxxxddddddddoolc:;;;:::ccclcccclllcc:;'...,coxkOOkkxdooodxkO0000OOOOOOOOOOkkkkkxddoollccc::::cloooddddoddxxxxxxxxxxxddolcc:;,'...........'.......'''''''.''''''''',,,,,,,,,,''',,,,,,,''''''''''''''''....,::::ccccccccccccccccccccccccccccclllllllllclllllcccllllllllllllllll
xxxkkOO0000000000000OOOOOOOOOOOOOOOOOOOO0XNNNNXXXKKK00Okxxxddddddddool::::::::ccclllllllllccc:,'..';clxkOOkkxdooodxkOOOOOOOOOOOOkkkkkkxxdollccccc:::ccodddddddddxxxxxxxxxxxddolcc:;'.........''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''',,,',,,,,,,,'',,,,,''',''...';:::::ccccccccccccccccccccccccccclllccllllllllllcccllllllllllllllll
xxxkOOO00000000000000OOOOOOOOOOOOOOOOO00KNNNNNXXXK00OOkxxxdddddooooolc:;:::::cccclllllllllcllc;,'''';codkkkkkxddddxkkOOOOOOOkkkkkkkkxxddolccccc::::ccllodddddddxxxxxxxdddxxdoolc;,'.....''',,,,,;;;;;;;;;;;;;;;;,,,;;,,,,,,,,,,,''''',,,'',,,,,,,,,,,,,,,,,,,,''...,::::::ccccccccccccccccccccccccccllcccllllllllllcccllllllllllllllll
xxkkOOO00000000000000OOOOOOOOOOOOOOOO00KXNNNXXXKKK0Okkxxxdddddooooolc:;;::::cccccllllllllllllc:,'''';cloxxkkxxdddxxkkOOkkkkkkkxxxxxxxddollcccccccccllooddddddddxxxxxxxdddddoolc:,...''''',,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,'''',,,'',,,,,,,,,,,,,,,,,,,,,'...,;:::::cccccccccccccccccccccccccclccccllllllllllcccllllllllllllllll
xxkkOOO000000000000000OOOOOOOOOOO0OOO0KXNNNNXXXKK00Okxxxddddddoooolc:;;;:::ccccclllllllllllcllc,'''',:lodxxxxxddddxxkOOkkkkkxxxxddddddoollclccccccllooddddddddddddxxxxxxdddolc:;,...'''',,,;;;;:::::::::::;:::;;;;;;;;;;;;;;,,,,,,''',,,'',,,',,,,,,,,,,,,,,,,,''..';::::::ccccccccccccccccccccccccclcccccllllllllccccclllllllllllllll
xxkkOOO000000000000000OOOOOOOOOOOOOO00KXNNNNXXKKK00Okxxdddddddoooolc:;;;::cccccllllllllllllcllc;'.'',;codxxxxddooddxkkOkkkkkkxxdddddddoollcccccccclloodddddddddddxxxxxdddddolc:;'..''',,,,;;;;:::::::::::::::::;;;;;;;;;;;;;;,,,,,''',,''',,,',,,,,,,,,,,,,,,,,,''.';::::::ccccccccccccccccccccccccllcccccllllllllccccclllllllllllllll
xxkkOO000000000000000OOOOOOOOOOOOOOO0KXNNNNXXKKK00Okxxxddddddoooolc:;;;:::cccclllllllllllllllllc;''''':lodddddolllloxkkkkkkkxxdddddddooollcccccccclloodddddxxddddxxxxdddddollc:,..'',,,;;;;::::::::::::::::::::::;;;;;;;;;;;,,,,,,'''''''',,,,,,,,,,,,,,,,,,,,,,,''';:::::::ccccccccccccccccccccccccccccccllllccccccccclllllllllllllll
xkkOOO000000000000000OOOOOOOOOOOOOO0KXNNNNXXKKK00Okxxxxdddddooollc:;;:::ccccclllllllllllllllllll:,'''',cloodddolcccodxkkOOkkxxdddddddooollcccccclloodddddxxxddddddxxxddddolllc,'.'',;;;;;:::::::::ccc::::::::::::::;;;;;;;;;,,,,,,,,''''''',,,,,;;,,,,,,,,,,,,,,,''';:::::::::ccccccccccccccccccccccccccccccccccccccclllllllllllllllll
xkkOOO000000000000000OOOOOOOOOOOOO00XNNNNXXKKK00Okxxxxdddooooolc::;;;::cccccllllllllllllllllllllc;,'''';coooooolcccodxxkkkkkkxxxdddddooollllllllloodddddxxxdddooddddddddooool:'.',;;:::::::::::cccccc::::::::::::::::::::;;;,,,,,,,,,,''''',,,,,,,,,,,,,,,,,,,,,,,',;::::::::::cccccccccccccccccccccccccccccccccccccllllllllllllllllll
xkkOOOO00000000000000OOOOOOO000O000XNNNXXKKKKK0Okkxxxxdddoooolc:;;;;::cccccllllllllllllllllllllllc;'''',:llooolcccclddxxkkkOOOkkxxxddoooollllllllooddxxxxxddooooddddddddooolc;',;;::::::::::::ccccccccc::::::::::::::::::;;;;,,,,,,,,,''''',,,,,,,,,,,,,,,,,,,,,,,,,;;:::::::::::::cccccccccccccccccccccccccccccccclllllllllllllllllll
xkkOOOO00000000000000OOOOO0000000KXNNNXXXKKKK0Okkxxxxdddooollc::;;;::ccccccllccllllllllllllllllllc:,'''',:looollcccclodxkkkOOOOkkxxddoolllcccllllooddxxxddddoooodddddddolllc;,,;:::ccccccc:::ccccccccccc::::::::::::::::::;;;;,,,,,''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,;:::::::::::::cccccccccccccccccccccccccccccccclllllllllllllllllll
kkkOOOO00000000000000OOOO00000000KNNNNXXKKKK00Okxxddddddoollc::;;;:::ccccclllcccllllllllllllllllllc:,'''';coddoolccccloxxkkkkkkkxxxddoolccccclllooddxxxxdooooooddddddddolll:;;;::cccccccccccccccccccccccc:::::::::::::::::;;;;;,,,,''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,;::::::::::::::ccccccccccccccccccccccccccccccllllllllllllllllllll
kkOOOOOO0000000000000OOO00000000KXNNNXXKKKK00Okxxddddddooolc::;;;::::ccclllllllllllllllllllllllllllc;'''',:lodoollcclodxxkkkkkkkxxxxddoolllllllooddxxxxddoooooodddddddooolc:;;:::cccccccccccccccccccccccc::::::::::::::::::;;;;,,,,''''''',,'',,,,,,,,,,,,,,,,,,,,,,,;:::::::::::::::cccccccccccccccccccccccccccclllllllllllllllllllll
kkOOOOOOO000000000000OOO0000000KXNNNXXKKKK00Okxxxdddddooolc:;;:;;:::cccllllllllllllllllllllllllllllc:,'..';cllllllllodxkkkkOOkkkkkkxxdooollcclloddxxxxddoooolldddddddooool:;;:::cccccccccccccccccccccccc:::::::::::::::::::;;;;;,,,''',,''''''',,,,,,,,,,,,,,,,,,,,,,,;:::::::::::::::::ccccccccccccccclccccccccllllllllllllllllllllll
kkOOOOOO000000000000000OO00000KXNNNNXXKKKK0Okkxxddddooooolc:;;;:::ccccllllllllllllllllllllllllllllllc:,'.',:cclcclloodxkOO00OOOOOkkxxdoollcclloddxxxxdddoooolodddddddooooc;;:::cccccc:::cccccccc::::::::::::::::::::::::::::;;;;,,,'',,,''''''',,;;,,,,,,''''''',,,,,,;::::::::::::::::::cccccccccccccccccccccccclllllllllllllllllllll
kkOOOOOO000000000000000OO00000XNNNNXXKKKK0Okkxxxddddoooolc:;;;;::ccclllllllllllllllllllllllllllllllllc;'..',::cccccloxkkOO00000OOkkxxdoolllllooddxxxddddoooooodddddddoolcc::cccccccc:::::ccccccc::::::::cc::::::::::::c::::::;;;,,,,,,,'''''''',,;;,,,,,,'''...''',,',;::::::::::::::::::cccccccccccccccccccccccclllllllllllllllllllll
kOOOOOOO000000000000000OOO00KXNNNNXXKKKK0OOkxxxddddoooll::;;;;::ccccllllllllllllllllllllllllllllllllll:,'..',;:::::coxOO000O00OOOkxxxdooooloooddxxxddddooooooddooddddollclcccccccccc::ccccccccccccccccccc:::::::::::::ccc:::::;;,,,,,,,''''''',,,,;,,,,,''........'''',;::::::::::::::::::ccccccccccccccccccccccclllllllllllllllllllll
kOOOOOOO0000000000000000OO00KXNNNXXKKKK00Okkxxxddddooolc:;;;;:::ccclllllllllllllllllllllllllllllllllllc;'...',;:::ccoxO00000OOOkkxxxxddoooooodddxxxddddoooooddoooddddolllllcclccccccccccccccccccccccccccc:::::::::::::::cc::::;;,,,,,,,''''',',,,,;,,,,,''........'''',;:::::::::::::::::::cccccccccccccccccccccclllllllllllllllllllll
kOOOOOOOO0000000000000000O0KXXNNNXKKKKK0Okkxxxddddooollc;;;;;::cccclllllllllllllllllllllllllllllllllllc:,'..';:ccllloxkO000000OOkxxxxxdooooodddxxxxddddoooooddoodddddoolllllllcccccc:ccccccccccccccccccccc::::::::::::::cc::::;;,,,,,,,,''',,,,,,,;,,,,,'..........''',;::::::::::::::::::::ccccccccccccccccccccccllllllllllllllllllll
kOOOOOOOOO00000000000000000KXNNNXXKKKK00Okxxxxddddooolc;;;;;::cccclllllllllllllllllllllllllllllllllllllc:'.',:cllllldkOO0000000OOkkkxdoollooddxxxxdddddoooooododdddddoooolllllcccccc:cccccccllllccccccccccc::::::::::::::cc:::;;;,,,,,,,''',,,,,,,;;,,,''...........'',,;::::::::::::::::::::cccccccccccccccccccccclllllllllllllllllll
kOOOOOOOOOO000000000000000KXNNNXXKKKK00Okxxxxxddddoolc:;;;;;::cccccllllllllllllllllllllllllllllllllllllc:,',;::::;;cdk000KK0000OOOkkxdollloddxxxxxddddddddddddddddddooooolllllcccccccccccclllcc::;;,,,,,;::::::::::::::::cc::::;;,,,,,,,,'',,,,,,,;;,,,'....'''......'',;::::::::::::::::::::cccccccccccccccccccccccllllllllllllllllll
kOOOOOOOOOOOOOO0000000000KXNNNXXKKKK0OOkxxxxxxdddoolc:;,;;;::cccccclllllllllllllllllllllllllllllllllllllc:;;;,,,,;:coxOO0KKKK0Okkkxxdoooooddxxxxdddddddddddddddddddddoooolllllcccccccccllllc:;,'.........'',;;;;;::::::::ccc:::;;;,,,,,,,,',,,,,,,;;,,''..';:cc:,....''';::::::::::::::::::::cccccccccccccccccccccccclllllllllllllllll
kOOOOOOOOOOOOOOO00000000KXNNNXXKKKK00Okxxxxxxdddoool:;;;;;::cccllllllllllllllllllllllllllllllllllllllllllc::;,,,;:cloxkO0000000Okxxdddoddddxxxxdddddddddooddddddddoooooooollllcccccccllllc:,'................',;;;:::::::cccc:::;;,,,,,,,,'',',,,,;,,''..,:loddol;....'',;:::::::::::::::::::ccccccccccccccccccccccccclllllllcccclllll
OOOOOOOOOOOOOOO00000000KXNNNXXKKKK00Okkxxxxxdddooolc;;;;;::ccclllllllllllllllllllllllllllllllllllllllllllllc:::;;;:cokO0000000OOkxxddddddxxxxxdddddddddoooddxdddddoooooooolllcccccccclllc;'....',;;;;;,'.......',;;;;;:::ccccc::;;,,,,,,,,,,''',,,;,,'..,codxxxxdl,...'',;::::::::::::::::::::cccccccccccccccccccccccclcllllccccclllll
OOOOOOOOOOOO00O00000O00KNNNXXKKKK00Okkxxxxxdddooolc:;;;;::cccclllllllllllllllllllllllllllllllllllllllllllloollcc:::cdk00KKKKK00Okxxddddddxxxxdddddddddoodddxxxxxddoooooolllllccccccllllc,...';codddxxddoc:,'.....',;;;;:::cccc::;;;;;,,'',,,,''',,,,''.,codxxkkkkxl,...'',::::::::::::::::::::::ccccccccccccccccccccccccccccccccclllll
OOOOOOOOOOOOOOOO000000KXNNNXKKKKK0Okkxxxxxdddooolc:;;;;::cccclllllllllllllllllllllllllllllllllllllllllllllodxddolllloxO0KKKKK00Okkxdooddxxxxdddddddddddddddxxxxxddoooooollllccccccllolc,..';lxkO000000OOkxdl:'....',,;;;::::ccc:;;;;,,,'',,,,'''',,,'.':odxkkkkkkkdc'..'',;:::::::::::::::::::::ccccccccccccccccccccccccccccccccclllll
OOOOOOOOOOOOOOOO00000KXNNXXXKKKK00Okxxxxxxdddoolc:;;;:::ccccllllllllllllllllllllllllllllllllllllllllllllllokOkxollccoxO000KKK00Okxdooodxxxxxddddddxxxxxxxxxxxxxdddoooooollllcccccllllc,..;lxOKXXXXXXKKKK00Okdl:'....,;;;;::::cc::;;;;,,,,,,,,,''',,,.',cdxkkkOOOOOkd;...',;:::::::::::::::::::::ccccccccccccccccccccccccccccccccclllll
OOOOOOOOOOOOOOOOOO00KXNNNXKKKKK00Okxxxxxxdddoolc::;;;::cccclllllllllllllllllllllllllllllllllllllllllllllllokOOxolccloxkO00KK00Okxdoooddxxxxdddddxxxxxxxxxxxxxddddoooooolllllccccllolc;.':oOKXXNNNNNNNXXXKKK0Okdl;...',,,;;:::cc::;;;;,,,,,,,,,,'',;,.';lxxkkOOOOOOOkl'..'',;;::::::::::::::::::::cccccccccccccccccccccccccccccccclllll
OOOOOOOOOOOOOOO0000KXNNNXKKKKK00Okxxxxxxddddoll:;;;;::cccclllllllllllllllllllllllllllllllllllllllllllllllloxkkdollloodkO0KKK00Okdoooddxxxddxxxxxxxxxxxxxxxxxdddoooooooollllccccclllc;'':dOKXXNNNNNNNNNXXXXKK0OOxo:'...,,,;;::ccc::;;;,,,,,,,,,,,,,,,',cdxkkOOO0OOOOOx:...',;;;:::::::::::::::::::::cccccccccccccccccccccccccccccclllll
OOOOOOOOOOOOOOO000KXNNNXXKKKK00Okkxxxxxddddolc:;;;;::cccccllllllllllllllllllllllllllllllllllllllllllllllllldxkxdddooodxO00K00OOxdooddxxxxdxxxxxxxxxxxxxxxxxdddooooooooollllcccclllc:,':x0XXXNNNNNNNNNNNNXXXKKK0Oko:'..',,;;::ccc::;;;,,,,,,,,,,,,,,,';loddxkkO00OOOOkl,..'',;;:::::::::::::::::::::::cccccccccccccccccccccccccccclllll
OOOOOOOOOOOOOOO000KXNNXXKKKK00Okkxxxxxdddddolc:;;;;::cccclllllllllllllllllllllllllllllllllllllllllllllllllldkOkxdddoodxkO0000Okxdddddxxxxdxxxxxxxxxxxxxxxxdddoooooooooollllcccclllc;',oOXXXXNNNNNNNNNNNNXXXXXK0OOxl,...',,;;:ccc::;;;,,,,,,,,,,,,',,';lollodxO000OOOkd;..'',;;:::::::::::::::::::::::cccccccccccccccccccccccccccclllll
OOOOOOOOOOOOOOO00KXNNNXXKKKK00Okkxxxxxddddool:;;;;;:ccccclllllllllllllllllllllllllllllllllllllllllllllllllldkOOkxdooodxkO0000Okxddddxxxxxxxxxxxxxxxxxxxxxxdddoooooooooollllcccclllc;';xKXXNNNNNNNNNNNNNNNXXXXKK0Okd:'..',,;;:ccc::;;,,,,,,,,,,,,,,,,',::;;:coxOO0OOOOxc..'',;;;:::::::::::::::::::::::ccccccccccccccccccccccccccllllll
OOOOOOOOOOOOO0O00XNNNXXKKKK00Okkxxxxxddddool:;;;;;::ccclllllllllllllllllllllllllllllllllllllllllllllllllllldk00kxdddxxxkOO0OOOkxdddxxxxxxxxxxxxxxddxxxxxxdddddoooooooooolllccclllc;',o0NNNNNNNNNWNNNNNNNNNXXXKKK0Okd:...',;;::cc::;;,,,,,,,,,,,,,',,''''..'';cdO00OOOko,..',,;;::::::::::::::::::::::::cccccccccccccccccccccccccclllll
OOOOOOOOOOO00000KNNNXXKKKK0OOkxxxxxxddddoolc;,,;;::cccclllclllllllllllllllllllllllllllllllllllllllllllllllloxkkxxkkkkkkkkOOOOOOkxxxxxxxxxxxxkxxxxxxxxxxxddddddoooooooooollccccllc:,'ckKNWWNNNWWNWNNNNNNXKK000KKK00Oko;..',,;;:cc::;;;,,,,,,,,,,,,',,'........,:dOOOOOkx:..',,;;::::;;:::::::::::::::::::ccccccccccccccccccccccccclllll
OOOOOOOOOOO0000KXNNXXKKK00OOkxxxxxxddddoolc;;,,;::ccccllllllllllllllllllllllllllllllllllllllllllllllllllllllodddxkOOOkkkkOOO00OOkkxxxxxxxxkkkkkxxxxxxxxxddddddooooooooolllccccccc;,,d0XNNWWWWWWWWNNNNNKOdolloxk0K0Okxl,..,,,;:cc::;;;,,,,,,,,,,,,',,,''. .,:ldOOOOOxl'.',,;;;::::::::::::::::::::::::cccccccccccccccccccccccccccccc
OOOOOOOOOOO0000XNNXXKKK00OOkxxxxxxddddoolc:,,;;;:ccccclllllllllllllllllllllllllllllllllllllllllllllllllllcllloodxkO0OkkkkO0000OOkkxkkkkkkkkkkxxxxxxxxxxxxddddddooooooooolllccccc:;':kXNNNWWWWWWWWNNWN0dc;;;;;:lxO00Okd:..',,;::c:::;;;,,,,,,,,,,,',,,,. ,ddokOOOOkd;.',,;;;:::::::::::::::::::::::::ccccccccccccccccccccccccccccc
OOOOOOOOOOO0O0XNNNXKKK000Okxxxxxxxddddool:;,,;;::ccccccllllllllllllllllllllllllllllllllllllllllllllllllllclllloodxk00OkOO0000OOkkxkkkkkkkxxxxxxxxxxxxxxxxxdddoooooooooooolllllcc:,,l0XNNNWWWWWNNWNNN0o:;,''',,:cdO00Oxl,.'',;::::::;;;,,,,,''',,,',,,'. 'ddcdOOOOkx:..',,;;::::::::::::::::::::::::::cccccccccccccccccccccccccccc
OOOOOOOOOOO00KXNNXKKK000Okxxxxxddddddoolc;,;;;:cccccccclllllllllllllllllllllllllllllllllllllllllllllllllcclllllooxO000O000K00OOkkxkkkkkkkkkkxxxxxxxxxxxxxxddoooooooooooooollllcc:,;xKNNNNWWWWWWNNNN0d:;'.. .':cldO0Okd:'.',;::::::;;;,,,,,,'',,,',,,'. . ...,::lkOOOkxl'.',;;;;;;:::::::::::::::::::::::::cccccccccccccccccccccccccc
OOOOOOOOOOO0KXNNXKKKK00Okxxxxddddooooolc;,,;;;:ccccccccllllllllllllllllllllllllllllllllllllllllllllllllllclllllloxkOOO0KKKK0OkkkxxxkxxxkkOOkxxxxxxxxxxxxxdddoooooooooooooolllllc:,:kXNNNNWWWWWWNNNXxc;'. .:xdlxOOkxc,.',;;::c::;;;;,;,,,,,,,,',,,'... ....,:dOOOkko,.',;;;;;;;::::::::::::::::::::::::cccccccccccccccccccccccccc
OOOOOOOOOOO0XNNXXKKKK0Okxxxxxddddoooolc;;;;;;:cccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllloddxkO0KXKK0OkxxxxxkxxkkOkkkxxxxxxxxxxxxxdddddoooooooooooollllcc:,cOXNNNNNNNWWWNNN0dc;. ..;ddcok0Oko;.'',;::cc:;;;;;;;,,,,,,,,,,,'.... ....';oOkkkkd;.',;;;;;;;:::::::::::::::::::::::::ccccccccccccccccccccccccc
OOOOOOOOOO0XNNXXKK000Okkxxxxxddddooolc;;;;;;:ccccclcccllllllllllllllllllllllllllllllllllllllllllllllccllllllllllooodxOKXXK0Okkxkkkkkkkkkkkxxxddddxxxxxxxdddddddddooddooooollllcc:,cOKXNNNNNNNNNNNXOoc,. ...;cccx0Okd:'.',;:ccc::;;;;;,,,,,,,,,,,,'...........,lkkkkkd:.',;;;;;;;::::::::::::::::::::::::::cccccccccccccccccccccccc
kkkOOOOOO0KNNXXKKK000Okxxxdddddooollc:;;;;:::ccllllllllllllllllllllllllllllllllllllllllllllllllllllcccclllllllllllldxOKXKK0Okkkkxkkkkkkkxxxxxxxxxxxxxxxddddddddddddddoooooollllc:,lOXXNNNNNNNNNNNXkl:'.. ....'::dOOkxl,.',;:ccc::;;;,,,,,;,,,,,,,,'.. .....;lkOkkkd:..,;;;;;;;::::::::::::::::::::::::::::cccccccccccccccccccccc
kkOOOOOOOKXNNXKKKK00Okxxxdddddoolllc:;;;;:::ccclllllllllllllllllllllllllllllllllllllllllllllllllllcccccllllcccccccloxO0KK00OkkkkxkkOkkkxxxxkxxxxxxxxxxddddddddddddddddoooolllllc:,lOKXNNNNNNNNNNNXxl:... ....;:oOOkxl,.',;:cc:::;;;,,,,,;;,,,,,,,,.. ...;okOkkxxc..,;;;;;;;::::::::::::::::::::::::::::cccccccccccccccccccccc
kkOOOOOO0XNNXXKKK00OOkxxxdddddoollc:;,;;;::cccclllllllllllllllllllllllllllllllllllllllllllllllllllccccccllcccccccclodk0KK00OkkkkkkkOkkxxxxkkkxxdxxxxxxddddddddddddddddoooollllll:,cOKXXNNNNNNNNNNKxl:... . .;:oO0kxo;.',;:cc:::;;,,,,,,;;,,,,,,,,'. ... ..;okkkkxxc..,;;;;;;;;::::::::::::::::::::::::::::ccccccccccccccccccccc
kOOOOOOO0XNNXKKKK00Okxxxxddddooollc:;,;;;::ccccllllllllllllllllllllllllllllllllllllllllllllllllllllccccclccccccccclldxO000OOkkkkkkkkkxxxkxxxxxddxxxxxxxxxdddddddddddddoooollllll:,ckKXXXNNNNNNNNNKkl:... .;:oOOkxo;.'';:ccc::;;;,,,,,;;,,,,,,,,'.. ..':dkkkxxxc..,;;;;;;;;::::::::::::::::::::::::::::ccccccccccccccccccccc
OOOOOOO0XNNXXKK000Okxxxxdddddoollc:;;,;;::cccccllllllllllllllllllllllllllllllllllllllllllllllllllllllccclccccccccccllodkO0OOkkkkkkkkkxxkkxxxxxxxxxxxxxkxxxxxxddddddddooooollllllc;:xKXXXXNNNNNNNXXOo:'. .;:dOOkxo:'.';:ccc:::;;;,,,,,;,,,,,,,;,'. ...',cxkkkxxdc..,;;;;;;,,;::::::::::::::::::::::::::::cccccccccccccccccccc
OOOkOO0KNNXKKKK00Okkxxxxdddddollc:;;;;;;:cccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllccllccccccccccllodkOOOkkkkkkkkkkkkkxxxxkkkkkkkkkkkkxxxxxxdddddooooooollllll:;d0KXXXXXXNXXXXXOoc;. .';cxOOkkd:'.';:cccc::;;;;,,,,;;;,,;,,,,'.......,:okkkxxxd:..,;;;;;;,,;::::::::::::::::::::::::::::::cccccccccccccccccc
OOOOO0KXNXXKK000Okkxxxddddddooll:;,;;;;::cccccllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccclloxOOOOOkkkkkkkxxkkkkkkkkkkkkkkkkkkxxxxxdddddoooooooollllllc:lk0KXXXXXXXXXXX0dl:'. ..,:lkOkkxd:'.',:ccccc::;;;;,,;;;;;;;;,,,,'..'..';lxkkxxxxo;..,,;;;;;,,,;;::::::::::::::::::::::::::::cccccccccccccccccc
kOOOOKXNNXKK000Okkxxxxddddooollc:;,;;::cccclllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccclodO0OOOkkkkkkxxxkkkkkkkxxkkxxxxxxxxxxxdddddoooooloollllllllccoOKKXXXXXXXXXXKOoc;.. ..,;cdOOOkxd:'.',:cclcc:::;;;;;;;;;;;;;;;,,,''',;:lxxxxxxxdl;.',,;;;;,,,,,;;::::::::::::::::::::::::::::ccccccccccccccccc
kOOO0XNNXKKK00OOkxxxxddddoooolc:;,,;;:cccclllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccclldkOOOOkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxddddddoooolllllllllllllclx0KKKXXXXXXXKKKxc;;'....',;:okOOkkxo:..';:cllcc:::;;;;;;;;;;;;:;;;,;:::clddxxdddddo:,.',,;;,,,''',,;;::::::::::::::::::::::::::::cccccccccccccccc
kOO0KXNXKKK000Okkxxddddooooolc:;,,;;::cclllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccclldkOOOOkxxxxxddddooodxxxdddxxxxdxxxdddddooooooooollllllllllllcoxO0KKKKXXXXKKK0xc:;,,,,,;coxOOkkxdo:..,;clllcc:::;;;;;;;;;;:::;;;;;cloodddddddddoc,'.'',,,,,'''',,,;:::::::::::::::::::::::::::::ccccccccccccccc
OO0KXNXXKKK000Okxxxdddooollll:;,,;;::ccclllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccclxOOOOOkxxxxdddddddddxxxddddddxddddddddooooooooooollllllllllllcoxO00KKKKKKKKKK0koc::::cldxkOkkxxdl;.',:clccc::::::;;;;;;::::;;;;;;:cloodooddoolc;'...',,,,,,''''',;;::::::::::::::::::::::::::::ccccccccccccccc
OOKXNXXKKK000Okkxxddddoolllc:;,,,;;:cccllllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccclxO00OkxxxxxdxxxxxxxxxxxxxdddxdddddddddoooooooooolllllllllllllccoxkO000000KKK000Oxddodxkkkkkkxxdoc,.';:clccc::::::::;;;:::;;;;;;;;;:ccllllllc:;,....'',,,,,,''''',;;::::::::::::::::::::::::::::ccccccccccccccc
O0XNNXKK0000Okxxxddddooollc:;,,,;;::ccllllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccclxO00OOkxxxxxxxxkxxxxxxxxxxxxxddddddddddooddddoooollllllloollolllldxkO000000000000OOOOOOOkkxxxdol;'',:clllccc:::::::;;:::::::::::;;::::::;;;,''....'',,,,,,''''''',;;;::::::::::::::::::::::::::ccccccccccccccc
0KNNXKKKK00Okxxdddddooolllc;,,,;;::cccllllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccloxO00OOkkkkkkxxkkkkkkkxxxxxxxxddddddddddooooooooollllllllllooooolllodxkOO00000OOOOOOOkkkkkxxddlc;,,,:clllllccc::::::::::::::::::::::;;,'''''....'''',,,,,,,,''.''',;;;::::;;::::::::::::::::::::ccccccccccccccc
KXNXXKKKK00Okxdddddooolllc:;,,;;::cccclllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccclok0000OOkkkkkxkkkkxxxxddxxxxxdddddddddooooooolllllllllllllloolloollllooddxkkkkkkkOkkxxkxxddolc:,,,;:cllllllcccc::::::::::::::::::::::;;,'''''''''',,,,,,,,,,'''.'',;;;:::;;;;:::::::::::::::::::ccccccccccccccc
XNNXKKKK00Okxxdddddooollc:;,,;;;:ccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccccldk0000OOkkkkkkkkkkxxxddodxxxxddddddddoooooollllllllllllllllollllollllllloddxxxxxkkkxxxxxdoolc:,,',:cclllollccccc::::::::::::::::::::::;,,'''',,,,,,,;;,,,,,,,'''''',;;::;;;;;;::::::::::::::::::cc:cccccccccccc
XNXXKKK000Okxdddddoooollc:;,,;;::ccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccccldO0000OOkkkkkkkkkxxxxddddxxxddddxddddoooollllllllllooollllllllllllllllllllooodddddddoooollc:;,,,,;ccllllollccccc::::::::::::::::::::::;;;,,,,,,,;;;;;;;,,,,,,'''''',;;::;;;;;;::::::::::::::::::cc::ccccccccccc
XXXKKKK00Okxxdddddooolll:;;,;;::cccccllllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccccoxO0000OOOOOkkkkkxxxxxdddxxdddddxxxxdddoolllllllllllllllllllllllllllllllllcccccccc::c::;;;;,,,,,;:cllllooollcccccccccc:::ccc::::::::::;;;:;;,,,;;;;;;;;;,,,,,,'''''',;;::;;:;;;::::::::::::::::::::::ccccccccccc
XXKKKKK0Okxxdddddooolllc:;;;;;:ccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccclokO000OOOOkkkkkkkxxxxdddxxxdddxxxxxxdddoooollooollllllllllllllllllllllllllllcc::::;;;;;,,,,,;;;:cclllloollllccccccccccccccc:::::::::::;;;;;;;,,,,;;;;;;;,,,,,,,,,,',,;;:::::;;;:::::::::::::::::::::::::::cccccc
XKK0000Okkxxddddoooollc:;;;;;::cccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccclxO00000OOkkxxxkkkxdddddxxxxxdxxkkxxddddoooooooollllllllllclllllllllllllllllllccccc:::::::::::cccllllllllllllccccccccccccccc:::::::::::;;;,,;;;,,,,,;;;;,,,,,,,,,,,,,;;;:::::;;::::::::::::::::::::::::::::cccccc
KK00000Oxxxddddoooollc:;;;;;::ccccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccccoxO00000OOkxxxxkkxddddxxxxxxxxkkkxxddoooooooooollllllllllcccllllllccccllllllllllllccccccccccccccllllllllcccllcccllcccccccccccc:::cc:::::;;,,;;;;,,,,;;,,,,,,,,,,,,,,,;;;;;;;;;:::::::::::::::::::::::::::::cccccc
K0000OOkxxdddddoolllc:;,;;;::cccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccloxOO000OOOkkxxkkkxddxxxxddxkkkkkkxddooooooollllllllllllllccccccccccccllllllllllllllllllllllccccccclllcccccllllllllllcccccccclcccccc::::::;;;;;;;,,,,,,,,,,,,,,,;;;;,,;;;;;;;;;:::::::::::::::::::::::::::::::cccc
00000Okxxxddddooollc:;,,;;::cccclllccccllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccccloxkO00OOkkkxxkkkxdddxxdddxxkOOOkxdddoooooolllllllllllllllccccccccllllllllllllccclllllllllllcccccccccccccllllllllllllllllllllllcccccccc::::::;;;;;,,,,,;;;;;,,,,,,;;;;;;::::;;;::::::::::::::::::::::::::::::::ccc
0000Okxxxdddddooolc:;;,,;:::cccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccclldkO0OOkkkkxxkkkxddxxxdodxkOOOkxddddoooooolllllllllllllllccclllllllllcccccllcccccllllllllccccccc::::cclllllllllllllllllllllllllllllllccccc:::;;;;;,;;;:;;,,''''''',,;;::::;;;;::::::::::::::::::::::::::::::::ccc
000Okxxxddddddoollc:;,;;;::cccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccc:cccccldOOOOOOkkkxxkkkxddxxdddxkkOOkxddddoooooollllllllccllllllllllllllllcccccccccccccccccccccccc::::::::ccllllllllllloooooooooooooollllllllcccccc::;;;::::;,,''.........',;;::;;;;;::::::::::::::::::::::::::::::::ccc
00Okkxxddddddooolc:;,;;;;:cccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccc:cccccoxOOOOOOOkkkkkkxdddddddxkkkOOkxdoddooooooollllllllllllllllllllllllcccccccccccc:ccccc::::::::;;;;:ccllllllloolllloooooooooooooooooolllllllcc:::::::::;,'.............',;::;;;;;::::::::::::::::::::::::::::::::ccc
0OOkxxdddddoooollc;,,;;;::cccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccccoxOOOOOOOkkkkkxdddddddxkkkkOkxdoodooolooooolllllllloooooollllllllllccccccccccc::::::::::::::;::clllooooooooooloooooooooooooooddoooooooollc:;;:::cc:,'................';;::;;;;::::::::::::::::::::::::::::::::ccc
OOkxxxddddoooollc:;,;;;::cccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccccloxkkOOOOOOkkkkxdddddddxkkkkkkxdoooooloooooooooooooooooooooooooooooolllolllccccccc:::::::::::cclooooddooooddooooodddddoodddddodddddddddolcc:::ccc:;,'..................,;::;;;;:::::::::::::::::::::::::::::::::cc
Okkxxdddddoooollc;,,;;:::ccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccccccloxkkOOOOOOkkkkxdddxdddxkkkkkxdooooolloooooooooooooddooooooooooooooooooooolllllccccc::::;:::cllooodddddoddddoooooddddddddddddddddddxxddolc:::cccc:;'...................,;:;;;;;:::::::::::::::::::::::::::::::::cc
Okxxxdddddooollc:;,,;;::cccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccccccloxxxkOOOOOOkkkxxdxxdddxxkkkkxdooooolloooooooooooooddooooooddoddddddooooooollolllllcccc::ccclooodddxdddddddddoooddddddddddddddddddddxdolccc:ccccc:,'...................,;;;:;;;:::::::::::::::::::::::::::::::::cc
kxxxddddddoollc:;,,;;::cccclccllllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccccccccclooddkkOOOOOOkkkxxxddddxxxkkxddoooolloooooooooooooooooooooodoooddddddooloodddddddooollllooodddxxxxxxxddddddddddddddddddxxxxdddddddddddolc:ccllcc:,'....................';;;::;;::::::::::::::::::::::::::::::::::c
xxxddddddooolcc;,,;;::ccccccccllllllllllllllllllllllllllllllllllllllllllllllllllllllclllcccccccccccccccccccccccccccccllodxkOOOOOOOkkxxddodxxxxxxxdoooollloooooolllooooooooooooooooooodddoolcccldxxxxxxdddddxxxxkxxkkkxxxxxxxxxxxxdddddddddddxxxddddddddddolccccccc:;,'.....................';;;:;;;:::::::::::::::::::::::::::::::::::
xxddddddooolc::;,;;::cccccccccllllllllllllllllllllllllllllllllllllllllllllllllllllccclllccccccccccccccccccccccccccccccclodxkO00OOOOkxxdooxxxxdxxdoooollllloooolllloooooooooooooooooodddddddlc:codxkkkkkkkkkkkkkkOOkkkkkkkkkkxxxxxxxxddddddddxxddddddddddolc:::::;;,''......................,;;;;;;;:::::::::::::::::::::::::::::::::::
xxxddddooolcc:;,;;;:ccccccclcllllllllllllllllllllllllllllllllllllllllllllllllllllccccllllccccccccccccc:cccc:ccccccccccclodxkO00OOOOkxdoodxxdoddddollllllllooollooooooooooooooooooooodddxxxddocc:ldxkOOkOOkkOOOOOOOOkkOOOOkkkkxxkkxxxxddxxxxxxxxxddddddddoc::::;,,,''.......................,;;:;;;;:::::::::::::::::::::::::::::::::::
xxddddooollc:;;;;;::ccccclllllllllllllllllllllllllllllllllllllllllllllllllllllccccccllllcccccccccccccc::ccccccccccccccclodxkO00OOOOkxdooxxdolloddolllccclloollooooooooooooodddoooooddddxxxxxxdlcccoxkOOOOOOOOOO0OOOOOOOOOOkkkkkkkkkxxxxxxxxxxxxxddddddddol:;;;,,''''......................';;;;;;;;;::::::::::::::::::::::::::::::::::
xddddooollc:;;;;;::ccccclllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccclccccccccccccccc:ccccccccccc::ccclodxkOOOOOOOkxdodxxdlllodooolccccllolllooooooooooddddddddoodddddxxxxxkxdolccoxkOOOOOO000000000OOOOOOkkkOOkkkkkkxxxxxxxxxddxxxxddolc:;;,,'''........................,;;;;;;;;;;::::;::::::::::::::::::::::::::::
ddddooollc:;;,,;:::cccccclllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccccccccccccccc:::ccccodxkkOOOOOOkxdodddollodoooolccccllllloooooooooddddddddddoooddddxxxkkkkkxdlccldxOOOOO00000000000OOOOOOOOkkkkkkkkkkkxxxxxxxxxxddoolc;;,,'''.................... ..,;;;;;;;;;;;:::;::::::::::::::::::::::::::::
dddooollc:;;,,;;::ccccccccllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccccccc:::::::::::::ccclodxxkkOOOOkxddooooloddoodolc:ccllolloooooooodddddddddddoooddddxxkkkkkkkkxolccoxkOO00000000000000000OOkxkkkkkkkkkkkkkkxxxxxxxdoolc:;,,'''..... ........... ..';;;;;;;;;;;;:::;::::::::::::::::::::::::::::
ddooollcc:;,,;;::cccccccclllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccccccccc:::::::::::::ccclloodxkOOOOkkxdolooooddoooolc:ccllooooooooooodddddddddddoooodddxxxkkkkkkkkkdlccldkO000000000000000000OOkkOOOOOOkkxkkkkkkkkkxxxdooc:;,'''..... .......... ..,;;;;;;;;;;;;;:::;::::::::::::::::::::::::::::
dooollcc:;,,;;::cccccccccllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccc::::ccc:::::::::::::::cccclloxkOOOOkkdoooodooddooolc:::cclllooooooodddddddddddddoooodddxxxkkkkkkkOOkxolccoxkOO00000000000000000000OOOOOOxxkkkkkkkkkkxxddol:;,,'.... ......... ..,;;;;;;;;;;;;;;:::;::::::::::::::::::::::::::::
ooollcc:;,,,;;:ccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccc:::::::::::::::::::::::::cccldxOOOOOOkxdoodooooolllcc::::cclllloooooodddddddddddddoddddddxxxkkkkkkkOOkkxoccldxkO000000000000000000000000OOOOOOOOkkkkkkxxdolc:;,'.... ......... ..,;;;;;;;;;;;;;;;:::;::::::::::::::::::::::::::::
ooollc::,,,;;::ccccccccllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccc:::::::::::::::::::::::::::ccldkOOOOOOkxdoddoooollllcc::::cccclllooooooddddddddddddoddddddxxxkkkkkkkOOOOkdlclldxO0000000000000000000000000000OOOOOOOkkkxxddolc:;,'... ........... ..,;;;;;;;;;;;;;;;:::;::::::::::::::::::::::::::::
oollcc:;,,,;;::cccccccclllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccc:::::::::::::::::::::::ccc:cccloxkkOOOOkxddddooolllllcc::::ccccclllloooooddddddddddddddddddxxxxkkkkkkOOOOOkdollldkO000000000000000000000000000OOOOOOOkkkxxddollc:,'.... .............';;;;;;;;;;;;;;;;:::;::::::::::::::::::::::::::::
oollc::;,,,;::ccccccccllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccc:::::::::::::::::::::::::::cccllodxkOOkkxxxddooolcccccc:::cc:::ccllllloooooddoodddddddddddddxxxxkkkkkkkkOOOkkdollodkO000000000000000000000000000000OOOOkkxxddoolc:;,'..................';::;;;;;;;;;;;;;;::;;;:::::::::::::::::::::::::::
llllc:;,,;;;::ccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccc::::::::::::::::::::::::::cccllodxxxxxxxxxddoolllcccc::cccc::::cccllllooooooodddddddddddddddxxkkkkkkkkkOOOOOkdollodxkO00000K000000000000000000000OOOOOkkkxddoolc:;;,'..............',:cc:;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
lllc:;,,,;;::ccccccllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccccc::::::::::::::::::::::::::ccccclooooooooddoooooollcc:::cccc::;::ccccclllooooodddddddddddddddxxxxkkkkkkkkOOOOOOkdoolloxkO000000000OOO00000000000OOOOOOOOkkkxxdoollc:::;;,''''...'',;:cccc:;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
llcc;,,,;;::cccccccllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccc::::::::::::::::::::::::::::::ccccccclcclllllllooollc::::ccc:::::::cccccllllloodddddddddddddddddxxxxkkkkkkkOOOOOOkkxdolloxkkOO000000O000000000000OOOOOOOOOOkkxxddoollllcc::;;,,,,;;:clllc:;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
lcc:;,,;;::ccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccc::::::::::::::::::::::::::::::::c:::ccccccccccclooollcc:::ccc::::;;:ccccclllloooooddddddddddddddddxxxxkkkkkkkkkOOOOOOkkdoooodxxkOO0000000000000000OOOOOOOOOOkkxxxddddoollllcc:;,,;::cclllc:;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::
cc::;;;;;::cccccccllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccc:::::::::::::::::::::::::::::::::c:::::c:::ccccllooollccc:::cc::;;;;::ccccllllooooodddddddddddddddddxxxxkkkkkkkOOOOOOOOOOkxdolloodxkkOO0000000000000OOOOOOOOkkkkxxxxdddoolllcc:;,,;:::cllc:;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::
c:;;;;;;::ccccccccllllllllllllllllllllllllllllllllllllllllllllclllcccccclllccccccccccccccc::::::::::::::::::::::::::::::::::::::::::::ccccclooollccc:::cc::;;;:::cccccllloooooddddddddddddddddddxxxxkkkkkkOOOOOOOOOOOOkxdoollloodxxkkkkOOOOOOOOOOOkkkOkkkkxxxdddooollc::;,,'',;;::cc:;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::
:;;;;;;::cccccccccllllllllllllllllllllllllllllllllllllllllllllcclccccccllllccccccccccccc::::::::::::::::::::::::::::::::::::::::::::::ccccccllolcc::::::::::::::::cccccllooooddddddddddddddddddddxxxxkkkkkkkOOOOOOOOOOOOOkxdollcccclloddxxxxxxxxxxxxxxxxxxdddoollcc::;,,''..''',,;::;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::
;;;;;;::ccccccccccllllllllllllllllllllllllllllllllllllllllllllllllllccclllllcccccccccccc::::::::::::::::::::::::::::::::::::::::::::::ccccccclllcc:::;;::cccc:::::::cccllllooodddddddddddddddddddddxxxkkkkkkOOOOOOOOOOOOOOOOkxdolccc::ccccclllllloooooooollllcc:;;,,,''''...''',,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::
;;;;;:::cccccccccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccc::::::::::::::::::::::::::::::::::::::::::::::cccccccccllcc::;;::cccc::::::::cclllllooooooodddodddddddddddddxxxkkkkkkkOOOOOOOOOOOOOOOOkkxxdollcc:::;;;;;:::::;;;;;;;;;,,,,,,,,,,;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;::::::::::::::::::::::
;;;;;::cccccccccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccc:::::::::::::::::::::::::::::::::::::::::::cccccccccccccc::::::cccccc::::ccccclllloooooooooooddddddddddddxxxxxkkkkkkkkkOOOOOOOOOOOOOOOOkkxxxdolllcc::::::;;;;;;;:::;;:::ccccccccclc:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::
;;;;:::ccccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllcccccccccccccccccccc:::::::::::::::::::::::::::::::::::::::::::ccccccc::cccccc::::::ccccc::::ccccccllllllllooooooodddddddddddxxxxxxxkkkkkkkkOOOOOOOOOOOOOOOOOOOkkxxddoolllccccccc::cccccccllllllolllool:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::
;;;;::ccccccllclllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccccccc::::::::::::::::::::::::::::::::::::::::::cccccc::cccccc::::::ccccc:::::ccccclllllclllooodooddddddddddddxxxxxxxkkkkkkkkOOOOOOOOOOOOOOOOOOOkkxxxdddddoooooollllooooooooooooooooolc:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::
,;;::cccccclllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccccccccc::::::::::::::::::::::::::::::::::::::::::::cccc::::ccccc:::::ccccc::::::cc:cccccc:cllllodoodddddooddddddddxxxxxkkkkkkkkkkkOOkkkkkkkOOOOOOOOkkkkkkkkkkxxxxxxdxxdddxxxxddddooooll:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
;;::ccccccllllllllllllllllllllllllllllllllclllllllllllllllllllllcccccccccccccccccccccccccccccc::::::::::::::::::::::::::::::::::::::::::::cccc:::ccllcc:::::ccc:::::::::::ccc::::ccllooooddddddodddddddddxxxxxxxkkkkkkkkkkkkkkkkkkkkkOOOOOOkkkkkkkkkkkkkkxxxxxxxxxxddddddool:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
;::ccccccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccccccc:::::::::::::::::::::::::::::::::::::::::::::ccc:::ccllllc::::::::::::::::::ccc::::ccclooodddddddddddddddddddxxxxxxxxxkkkkkkkxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxdddddddooc:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
::cccccccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllccccccccccccccccccc::::::::::::::::::::::::::::::::::::::::::::::::::::cclllc:::::::::::::::::::c::;:cc:cloodddddddddddddddddddddddxxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkxxxxxxxddddddoolc:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
::cccccccllllllllllllllllllllllllllllllllllllllllllllllllllllllllccllllllllccccccccccccccccccc:::::::::::::::::::::::::::::::::::::::::::::::::::cccllllc:;;;;::::::::::::::::;::::cloodddddddddddddddddddddddddddddxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkxxxxxxxdddddddddoolc:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::::::::::::::::::::::::
:ccccccccllllllllllllllllllllllllllllllllllllllccclllllllllllllllllllllllllcllccccccccccccccccc::::::::::::::::::::::::::::::::::::::::::::c:::::cccllllc:;;;;:::::::::::::::::;;:cloooodddddddddddddddddddddddddddddddddddddddddddxxxxxxxxxxxxxxxxxxxxxxdxdddddddooolc:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::
ccccccccclllllllllllllllllllllllllllllllllllllllcclllllllllllllclllcclllllllllccclcccccccccccccc:::::::::::::::::::::::::::::::::::::::::::::::::ccllollc:;;;;;:::::::::;;:::::;;:cllooodddddddddddddddddddddddddddddddddddddddddddddddddddddxxxxxxxxxdddddddddooollc::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::
ccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllloollllllllllllclllcclcccccccccccc::::::::::::::::::::::::::::::::::::::::::::::cccloollc:;;;;;;::::::::;;;::::;;:cllloooddddddddddddddddddddddddooooooodoooooooooooooooooooooooooddddddddooooolcc::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::
cccllllllllllllllllllllllllllllllllllllllllllllllllllllllllllooolooooooooooolollooollllclccccccccccccc::::::::::::::::::::::::::::::::::::::::::::cloollc::;;;;;:::::::;,,;:::::::ccclooodddddddddddddddddddddooooooooooooooolllllllllllllcclllllllllllllcccccc:;;;;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::
ccccclcclllllllllllllllllllllllllllllllllllllllllllllooooooooddddodxxxxxxxxddddddxdooolloloolllllcccccc:::::::::::::::::::::::::::::::::::::::::::clddolc:::;;;::cc:::;,,;::::::::cccloooodddddxdddddddddddddooooooooooooolllllllllllccccccccccccccc:::;;;;;;;;;;;;;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::
ccccllccllllllllllllllllllllllllllllllllllllllllllloodxxxxxxxxkkkkkkOOOOOOOkkkkkOOOkxxdxxxxxxdodollccccccc::::::::::::::::::::::::::::::::::::::cccldddolc:::;;:::::;;;,,;::::::::::cllloooddddxxdddddddddddooooooooooolllllllllllllcccccccccccccc::;;;;;,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::
ccccllcclllllllllllllllllllllllllllllllllllllllllloodxkkOkkkkkkOOOOO0K00O0OOOO00000OOkkkkkOOkxxxdolllcccccccc:::::::::::::::::::::::::::c:::::::cccldddolc:::;;:::;;;,,,;;::;::::::cclllooodddxxxxxdddddddddooooooooolllllllllllllllccccccccccccc::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
ccccllclllllllllllllllllllllllllllllllllllllllllooodxkO000000OOO00OO0KK0000000KKKKKK0O00000K0Okkxdoolllcccccccc:::::::::::::::::::::::::c::::::::ccldddolcc:;;;;;;;,,,;;;::;;::::::cclllooodddxxxxxdddddddddooooooooollllllllllllllcccccccccccccc:;;;;;;;;;;;;;;;;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
ccccllccllllllllllllllllllllllllllllllllllllllloodxkO0KXXXXXKKKKKXK00KKK00KKKKXXXXXXKKXXKXXXXKKK00Oxdollccccccc::c::::::::::::::::::::::::::::::::ccodddolc::;;;;,,,,,;;::;;;::;:::ccclloooddxxxxxdddddddddddooooooolllllllllllllcccccccccccccc:;;;,;;;;;;;;;;;;;;;,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
ccllllclllllllllllllllllllllllllllllllllloolooodxkO00KKXXKKKKKXXKKK00KKXKKKXKXXXXXXKKKXXXXXXXXXNNXX0Oxolccccccc:cc:::::::::::::::::::::::::::::::::codxdolc:::;,,,,,;;;;;;;;;;;;::ccccllooodxxxxxxxdxxdddddddooooooollllllllllllllcccccccccccc:;,,,;;;;;;;;;;;;;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
clllllllllllllllllllllllllllllllllllllllooooodxxO0KKKKKKK000KKKXX000KXXXKKKXXKKKXXK0KKKKKKK0KXNWWNNXK0xollccccc::cc:::::::::::::::::::::::::::cc:::codxdolc::;;,,,,,;;;;;;;;;;;;::ccccclooddxxxxxxxxxxxddddddooooooollllllllllllllllcccccccc::;,,,,;;;;;;;;;;;,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
llllllllllllllllllllllllllllllllllllllooooodxkO00KXXXXXKK000000KK00KXXXKK0KKKK0KXK0O00O0OO000KXNNXXXKKOxdoolcc:::cc:::c::::::::::::::::::::cccccc::cokkxolc:;;;,,,,,,;;;;;;;;;;;::cccclloooddxxxxxxxxxxddddddoooooooolllllllllllllccccccccc:;,,,,,,;;;;;;;;;;,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
llllllllllllllllllllllllllllllllllllllooodxkO0KKXKKKXXXKK000000000000KKK0OO00K00KKOkOOkkxkOO000XXK0OO0Okkxdllcc::ccc::c:::::::::::::::::::::cccccc:lxOOxocc:;;;,,,,,,,,,,,,,,,;;:ccccclloooddxxxxxxxxxxddddddddooooooolllllllllllccccccccc:;,'',,,,;;;;;;;;;;,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
lcccllllllllllllllllllllllllllllllolllodxk0KXXXXXKKKKKKK000K0000OOOO00KK0OkkO00O00kkOOkxdxkOOOO00Okxxkkkkkxdolccccccc:cc:::::::::::::::::::::::c::cdO0Oxocc:;;;;,,,,,,,,,,,,,,;;::cccccllooodxxxxxxxxxxxddddddddoooooolllllllllllccccccc:;,''',,;,;;;;;;;;;;;;,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
llcllllllllllllllllllllllllllllllloooodkOKXXNNNXXXKK00KK00000OOO0OOOO000OkxxxOOkkOkkkkxxxxkOOkOOkkxooddxxkkkxolllcccc::c:::::::::::::::::::::::c:coO00Okdlc:;;;;;,,,,,,,,,,,,,;;;::ccccllloodxxxxxxxxxxxxxdddddddoooooollllllllcccccccc:;,''',,;;;;;;;;;;;;;;;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
lllllllllllllllllllllllllllllllllooodxk0KXXXXXXXXXXK00KK00KK0OOO0OOOOOOOkxdodkkkxkkkkxxxxxkkkkkkxxdlcloodxxkxxdolccccc:::::::::::::::::::::::::::lx0K0OOdl:::;;,,,,,,,,,,,,,,,;;;;:ccccllloddxxxxxxxxxxxxddddddddoooooolllllllcccccccc:;''.'',;;;;;;;;;;;,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::
llllllllllllllllllllllllllllloooooodxk0XNXXXXKXXXXXXK0000KK0OOkkOOOkkkkxolccoxkxxxxxxxdxxxxxkxxkxxoc::cllodddxxdollccc::::::::::::::::::::::::::cxO0K00Oxl:::;;;,,,,,,,,,,,,,,;;;::::ccllodddxxxxxxxxxxxxddddddddoooooolllllllccccccc:;'..'',;;;;;;;;;;;;,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;::::::::::::::::::::
lllllllllllllllllllllllllllllooooodxOKXNNXXXXKKKKKKKK0OO0000Okxdxxxddollc:;;ldkxddxxxxdxxxxxxddxxxoc;;;::clooodddddlccc::c:::::::::::::::::::::coOK00K0Oko:;;;;;,,,,,,,,,,,,,,;;;:::::cloddddxxxxxxxxxxxdddddddddddooololllllccccccc:;'...',,,,;;;;;;;;;;,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:::::::::::::::::::
llllllllllllllllllllllllllllloodddx0XNNNXXXXK00000000OOkkkkkxdollllc::;;;;,,cdkxdddxxxdxxxddddodxxoc;;,,,;::ccloxkxocccc:::::::::::::::::::::ccokKKK0K00Odc,,;;;,,'',,,,,,,,,,;;;::::cllodddxxxxxxxxxxxxddddddddddoooolllllllccccc:;,'...',,;;;;;;;;;;;;;,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::::::::::::::::
lllllllllllllllllllllllllllllooddxkKNWWNXXXXK000OkkOOOkxxxxxdolc:c::;,,',,,,:dxdoodxxxdxxxdoddodxxo:;;,,',;;::codkkolcccc::::::::::::::::::::ccd0KXK0000Odc,,;;;,''',,,,,,,,,,;;;::::cloodddxxxxxxxxxxxxddddddddddoooollllllllccc::;'....,,;;;;;;;;;;;;,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::
llllllllllllllllllllllllllllloodxk0KNNNNNXKK0OOOkxxkkkxddddoolc:;;;;,'''',,,:dkdoodxxddxxxdoddodxxo:;;,''',,;;cloxxdoolcc::::::::::::::::::::clx0KKK0000Oxl,';;;,,,,,;;,,,,,,;;;;::::clodddxxxxxxxxxxxxxddddddooooooollllllllccc::;,'...',,;;;,;;;;;;;;,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::
lllllllllllllllllllllllllllllodxk0KXNNNNX0Okkxxxdddddddollcc::::,,,'''''',,,cdkdlodddddddddoddodxxdlc;,'''''',;:clodddoccc:::::::::::::::::c:lx0KKKK0000Oko;.,;;;,,,;;;,,,,,;;;;::::cloodddxxxdxxxxxxxxxdddddoooooooolllllccccc:;,'.....,;;;;,,,;;;;,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;::::::::::::::
llllllllllllllllllllllllllllloxO0XXXXNXK0kxddooooooloooolllc:::c:,,,,,,,',,;cxxolodddddooddddoodxxxxo:;,,''''',;::cloddocc::::::::::::::::::cdOKKKKKK000OOx:.',,;;;;;;,,,,,,;;:::::clooddddxxdddxxxxxxxdddddoooooooollllllcccc:;,......',;;;,,,,,;,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::::::::::::
llllllllllllllllllllllllllooodkKXXXKKK0Oxddoolllloodddxxxxxddoooolc::::;,,;:lddooddddoooooddoooodxxxdolc:;,,''',;;::cldolc:::::::::::::::c:coOKXKKKKK000OOkl,.',;;;;;,,,,,,,;;:::ccclooddddxxdddxxxxxxdddddoooooooolllllllccc:;,'.....',;,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;::::::::::::::
lllllllllllllllllllllllllloodx0XNNK0OkxdoooollodxxkO00000K00OOOOOkdoooolc:clddoloddddoooooddoooodxxkxxddolc:;,;;;;:;,;cllcc:::::::::::::::coOKXKKKKKK0000OOd:'';;;;;,,,,,,,;;;::cccloooddddddddddxdddddddddooooooolllllccc:::;,'.....',,,,,,;;;;,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::
llllllllllllllllllllllllloodxOKXXK0kxddoooodddxO00KKXXXXXXXKKKKKK0Okkkxdooodxdoloddddoodooddoooodxkkkxxxxdollccc:::;,,;:lcc::::::::::::::cdOKXXKKKKKK00000Okl,',;;,,;;,,;;;;;::cccllooddddddddddddddddddooooooooolllllccc:;;;,.....',,,,,,,,,;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::
llllllllllllllllllllllllloodk0XK0OxdooxxxkkkOO0KK000KKKKKXXXXKKKKK000OOOkxxkkxoooodddooddodddddodxkkkkxkkxxxddoolllc:;,;::::::::::::::::cdOXXXXKKKKKK00000Okd;'',,,,;;;;;;;;::ccllloodddoddddddddddddddoooooooolllccccc:::;,,'....',,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::
llllllllllllllllllllllllooox0XK0OxolodO00000000OkkkkkkkkO00KK0KKKKKKKK00OOkkkxdodddddooddddddooooxkkkkkkkxxxxxxdddddlc;,,,;;;;:::::::::cdOKXXXXKKKKKK00000OOxc'.'',,,;;;;;;;:cccllooodddoodddddddddddddoooooolllllcccc::;;,''...',,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::
lllllllllllllllllllllloooodOKKK0kdddxk00K0OkkxdolclllllloddxkkO0000KKK0000OOkxdddddddoddddddooooodxkkkkkkkxkxxxxxxxxdolc;,,,,;;::::::::cxXXXXXKKKKKKK0000OOOko,..'',,;;;;;:::cccllooodddooddddddddooddoooooollllcc:::::;;,'...',,,,,,,,'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::
llllllllllllllllllllllooodkKK00kdodO000OOkdolc:;,'',,''',,;:cldxkO0KKK0000OOkkxdxdddddddodxdolooodxxxxkkkkxxxxxxxxxxxxxdl;,,',,;:::::::ckXXXXKKKKKKKK0000O0OOd:...'',,;:::::cccclooooddooooddddddooodoooollllllcc::::;;,,'...,,;,,,,,,,'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::
lllllllllllllllllllllloooxOKK0kdodk00Okdol:;,'..............',:ldkO0KKKK00OOkxxxxddddddoodddlloooodxxxkkxxxxxxxxxxxxxkkxol:,'',;:::::ccd0XXXXKKKKKKKK000000OOkl,...'',;:::ccclcclooooddooooddddooooooooolllllcccc::;;,''...',;;;,,,,,,''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;:::::::::::
llllllllllllllllllllloddxO00KOxodk00koc:,'.....................;cokO0KKKK0Okkxxxxdddddoooodoloooooddxxkxxxxxxxxxxxxxxxxdddo:,'',;:::coxOKXXXXKKKKKKKK000000OOkd:...'',;::ccclllllooooodooooodddooooooolllllccccc::;;,'....,;;;;,,,,,,'''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;:::::::::::
lllllllllllllllllllloodxk0000Odox0KOdc;,.......................';lxO0KKKK0Okkxxxxdddddooooollooooooddxxxxxxxxxxddxxdddddxxdc;'',;:clox0KXXXXKKKKKKKKK000000OOOxc'...',;::ccllllllooooooooooodddooooooollllcccc::::;,,'...',;;;,,,,,,,''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;:::::::::::
llllllllllllllllllooodxkOKKKOkddO00xl;''........................,cdO0KKKK0Okkxxxxdodddooooollooooooddxxxxxxxxxdddddddddddxdo:,'';codxOKKKXXKKKKKKKKKKK00000OOOxl,...',;::ccllollloooooooooooddoooooooollllccc::::;;,,''',,;;;,,,,,,,'''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;:::::::::::
llllllllllllllllllooodkOKKK0kxxk00kl,.........',;;:::::;;,'.....';lx0KKKKK0kxxxxxdddddooooolodooooodddxxdxdddoooodooodoodxddoc,';oO0KKKKKKKKKKKKKKKKKKK000OOOkko;....';;::cllooooollooooooooodooooooollccccc::::;;,''',,;;;;;,,,,,,'''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::
lllllllllllllllllooooxOKXKK0xxO00kl;.......',:coddxxxxxdolc:;'...';lOKXXKK0kxxxxxddddddoooolodoollooddxddddoolcccllccccclooddo:,;d0XXKKKKKKKKKKKKKKKKK000OOOkkkdc'...',;;:cloooodollodoooooooooooooollccccc:::;;,''',;;;;;,;;,,,,,''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::
lllllllllllllllllooodk0XXKKOxkKKOo;......';coxkOO00000OOOkxdoc;'..':x0XXK00Okxxxxdddddoooooloooollooddddddolc:;;;,;;,,;:ccloddo:;lOKXKK00KKKKXXKKKKKK000OOkkkkkxo;....,;;cloooddooloodoooooooolloollllcc:::::;,,''',;:;;,,,,,,,,,'''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::
llllllllllllllllooodk0XXXK0kxOK0d:.....':lxO0KKKXXKKKKKK00OOkdo:,..,oOXXK00Okxxxdxdddoodoooooooolllooddxxoc:;'........,,';cclodl;:d0KKK00KKKKKKKKKKKK00OOkkkkOOkxc'...',:cooddddoooodoollooooollolllllcc::::;,',,,,;;:;,,,',,,,,''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::
lllllllllllllllooddx0XNNX0OkkKKxc,...';lxOKXXXXNNNNXXXXXKK00OOkdc;..ckKXKK0Okxxdxxxdddddoooooooollloodddol:,'.. .....,;:clll:;lO0KKK0KKKKKKKKKK000OOOkkkkOOOko,...';:lddddddoodddollloooolllllllllc::;:;,'';::;;;,,,,,'',,,,''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::
lllllllllllllllooxkO0KXXXKOO0X0o;'..,cdOKXNNNNNNNNNNNNNNXXXKK0Okxl;';d0KKK0Okkxdxxxdddddoooooolllllooddol:,.. . .'',:::lc;cx00000KKKKKKKKK00OOOOOkkkOOOOkd:,'',;codxddddddddollcloolollllllllcc:;;;,,,;:::;,,,,,,,,'',,'''''''''',,,,,,,,,,,,,,,,,,;;,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::
llllllllllllloooodxOKKKKXXKKXXOc,..,cxKXNNNNNNWWWNNNNNNNNNXXXK00Oxl,,lOKKK0Okkxdddddddddlloooolllllooddoc,.. ...... ...''';cc:cdO00000KKXKKKK00OOOOOOkkOOOOOkxl:;,;:lodxdddddxxdoccllolllollllcccc:;;;;;;:::;;;,,,,,,,,,'''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;::;::::::::::
llllllllllllooooodk0KKKKNNNNN0d;'',lkKNNNWWWWWWWWWWNNNNNNNNXXKKK0Oxc,ckKKKK0kxdddddddddolloooollllooddol;....,,;,,'.... ....'::cc:oO000O0KKKKKK00OOOOOkkkkOOOOOkkoc;,;clodddddddxxdlccloolllolllcccc::;;;;:::;;;;;;,,,,,,,,'''''''''''',,,,,,,,,,,,,,,,,,,,,,,;,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;:;;;:::::::::
llllllllllllooddxk0XKKKXWWWNXkl,',ckXNWWWWWWWWWWWWWWNNNNX0OkkkO000ko;:kKKKK0kxdxxdddddddoooooollllooodoc,..,:llllcc:;'.. ..,;,;;;lk0K0000KKK000OOOOOOkkkOOOOOOOkdl:,;:clodddoddddolcllolllloollccc::;;;:::;;;;;;,,,,,'',,,''''''''''''',,,,,,,,,,,,,,,,,,,,,,;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::::::::::
llllllllllllooddxOKXXXXNWWWNKxc,,:xKNWWWWWWWWWWWWWWWNNXOdc::;:cokOOxc:xKKK0Okxdddddddddooooooollclooodl;'':oodddddoolc,... ...'',;cx000000KK00OOOOOOOkkkkOOOOOOOkddl;;;;clllllloooollllllllloolllc::;;::;;;,,,,;;,,,,,'',,,,''''''''''''''',,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::
lllllllllllllooodOKNXNNWMWWNKx:,:dKNWWWWWMMWWWWWWWWNXKko:,,,,,,,:lxkocd0KK0Okxxdddddddooooooolllllooooc,,:oxxxxxkkxxxdl:'.. ...',;:dO000000000OOOOkOkkkkOOOOOOOkkxxo:,,,;:::cccclllloolllccllollcc:::::;,;;,,,,,;,,,,,,,,,,,''''''''''''.''',,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;:::::::::::
lllllllccllllloodOXNNNWMMWNNKx:,cOXNWWWWWMMMWWWWWWWNKOdl:;;:;;;'.;lxdld0KK0Okxxdddddddoooooolllllloodoc,;ldxxxxkkOOkkxdl;.. ..';;:okO000000OOOOOOkkkkkkOOOOOOOkkkkd:,',,;;::ccccllloollccccllllcc:::::,',;,,,,,,,,,,,,,,,,,''',,,''''''..'',,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;;:::::::::::
lllllllccllloooox0XNNNWMMWNNKx:;o0NNWWWWMMMMWWWWWWWXOkdlc::::::;',:odld0KK0Okxxdddooooooooollllllllooo:;:odkkkkOOOOOkxxoc,.. ..',;:okOO000OOOOOOOkkkkkkkOOOOOOOkkkxdc,'',;;::ccccllloolccccclllccc:::::'.,;,,,,,,,,,,,,,,,,,''',,,''''''..''',,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;::::::::::::
llllllcccllooodx0XNNNNWWWWNNKd:ckXWWWWWMMMMMMWWWWNN0doolc:;;;;::;,';lloOKKKOkxxdddooooooooolllllcclool;;lxxkOOO00OOOOOkkdc,.. ...,,,lkOOOOOOOOOOOkkkkkkkOOOOOOkkkkxdlc;''',;::c::cooloolcccccccc:::::cc,..,;;,,,,,,,,'',,,,,,''',,,''...''''''',,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::
llllllclllllodxOXNWNNNWWWWWNKo:dKNWWWWWMWMMMMMWWWN0dlloc;,'...,;:c;,:clkKKKOkxdddooooooollllllllcclool:cdkkkkkkO000000Okkxl,. ..',,cxOOOOOOOOOOOkkkkkkkOOOOOOkkkkdc:::,'',;;:::clllllolccccccc:::::cc;'..';;,,,,;;,,,'',,,,,,'',,,'''..'''''''',,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::
llllllllllllodOKNNNNNWWWWWWN0lckXNWWWWWWWWWMMMWWWKdlllc,'.. ..;dxc;;ckKKKOkxdddoodoooolllllllcccloolldxdol::coxO00000OOOxc'. .';;:dkOOOOOOOOOOkkkkkkOOOOOOOkkxd:,,;c;',,;;;:cclllllllccccccc:::;:c:,...';,,,,,,;,,,''',,,,,'',,''''''''''''',,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::
ccclllllllloox0XNNNXNWWWWWWN0llONNWWWWWWWWWWWWWWNOlloc;... .,x0d;':xKK0Okdddooooooooolllllccccloolodl;'....';cdO0000OOOd:.. ..;;:dkkkOOOOOOOkkkkkkOOOOOOOkOkdc''';cc,,;;::ccloooollllccccc::c::::,'....,,,,,,,,,,,,'',,,,,'''''''''''''''',,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;:::::::
cclllllllloodOKNNNNXNWWWWWWN0ll0NNWWWWWMWWWWWWWWXxcll:'.. .cxo;';x0K0Oxdddooooooodollllccccclooll:'....''''.,oO0000OOko,....',:okkkkkOOOOkkkkkkkOOOOOOOkOko,...,cc;,;:::cclooooollccc:::::::c:;'.....,;,,,,,,,,,,''',,,,,''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:::::::
ccllllllllodx0KXNNNNNWWWWWWN0ll0NNWWWWWWWWWWWWWWKoclc;.... .,:c:',x0K0kxdoodddoooooollllccccclolc;...',,,,,,'',lk00000Oxc'. ..';lxkxxxkOOkkkkkkkOOOOOOOkkkd:'...,:c;,,;:ccccloooolccc:::;;;;::;'......';,,,,,,,,,,''',,,,,'''',,,,,,,,,,,;;;;,,,,,,,,,,,,,,,;;,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;::::
ccllllllcloxO0KXXXXNWWWWWWWN0llOXNWWWWWWWWWWWWWW0lclc,.... .;cc,;x000kxoooodddoooooooollcccclol;..'',;,''',,,''oO0000OOd;. .',lxkxxdxkkkkkkkkOOOOOOOOkkxl,...',:c;,,;:cccclooollc::;;:;;;::;,.......';;,,,,,,,,,,''',,,,''',,,,,,,,,,,;;;;;;,,,,,,,,,,,,,,;,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;:::::
ccllllllllokKXXXXXXNWWWNNNNNKockXXNWWWWWWWWWWWWN0lcoc,... .,:c,;x000kdoooooddooooooooolccccloc'..,,;,.....;c:';d000000kl.. .';okOkxdxkkkkOkkOOOOOOOOkkkd;...'',;:;;,;:ccc:cllllc::;;;;;;:::,.........;;,,,,'',,,,'''',,,''',,,,,,,,,;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:::::
ccllllllodx0XXXXXXXNWWNNNNNXKxcdKXNWWWWWWWWWWWNN0lcoc,... .'::,;x000kdoooooddooloolloollccclo;..,,'.. .cdl;,ckK0000Od,...,cxOOOkxxxkkOOkkOOOOOOOOkkxc'..''',;;;;;;;:cc::ccccc:;;;;;,;::,'....... .,;,,,,'',,,,,''',,,''',,,,,,;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::
lllllllloxOKXXXXKKXNNNXXNNNXKkllOXNNWNWWWWWWWNNN0ocll;... .,::';k00Okdddddddoollllllllllcccll;.','.. . .cdc:;;d00000Ox:...;oOOO0OkxxkkOOOkOOOOOOkkkxo,...',,,;;;;;;;;::::::cc::;;;,;;;;,'....... .';,,,,,'',,,,''',,,',,,,,,,,,;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;::::::
llllllloox0XXXK0KXNNNXXXXNNXK0xldKNNNNWWWWNNNNNNKdccl:'.. .;:;':kK0Okdddxdddolllllllllllcccll,.',.... . .;;;:;lOK0000Ol...:xOO000OkxkOOOOOOOOOOOkkxd:....'',,,;;;;;;;::::::::::;;,,;:;'........ .';,,,,,,'',,,,''',,,,,,,,,,,,,;;;;:;;;;;;;;,,,,,,,,,,,,,,,,;,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::
llllllloox0XXXK0KXNNNXXXXNNXKKkooOXNNNWWNNNNNNNNXxcclc,... .'::;'cOK0Oxdddxdddolllllccllllcccll,','....... .',:;ckK0000Oo...cxO0000OkkkOOOOOOkkkkOkxxo,....''',,;;;;;,,;:::::c:::;;,,;;,'........ ';;,,,,,''',,,''',,,,,,,,;;,,,;;;;:;;;;;;;;;,,,,,,,,,,,,,,;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::
llllllllox0XXKKKKXNNXXXXXXNXKK0xokKXNNWNNNNNNNNNXkcclc;... .,::;,lOK0Oxddddddoollllccclllccccll,','...... ...,;;:kK0000Oo'.'cxO0000OkkkOOOOOOkkkkkkxxl,.....'',,,;;,,,,;:::::cc::;;,;;;'........ ';;,,,,,''',,,,''',,,,,,,;;;,;;;;;:;;;;;;;;;,,,,,,,,,,,,,,;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::
llllllllokKXXKKXXXXXXKKXXXNXKKKOdokKNNNNNNNNNNNNN0o:cl:,... ..';:;,;d0K0Oxddddooolllllccccllccccll,','. .... ...';,;xK0000Ox;.'lk000000OOOOOO0OOOkkkkxxdc......'',,;;;;,,,;;:::cc:::;;;;,'......... ..,;,,,,,,''',,,'''',,,,,;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::
llllllodxKXXK0KKKKKXXKKXXXXXXKKKOddkKXNNNNNNNNNNNXxc:cc:;,.....,::;,,ck0K0kdooddoolllcllcccccccccccl,',,. .. . ..';,;d00000Ok:.'lk000000OOOOOO00OOkkkkxxo,......'',,;;;;;,,,;;::cc::::;;,'......... ...,;,,,;,,,'',,,,'''',,,;;;;;;;:;;;:;;;;;;;;;;;;,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::
lllllloxOXNX0O00KKXXXXXKKKKXXXK00Oxdx0KXXNNNNNNXXN0o:;:cc:;,,,;:::,,:ok0K0kdddddooollcccllc::cc:::cl,.,,.. .';,,d000000kc..ck0000000OOOOO00OOOOOkxxc.......'''',;;;;,',;;::cc::::;,''........ ...',,,,,;;,,,,,,,,,,,,,,,;;;;;;::;;;:;;;;;;;;;;;;,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::
llcllodkKXXKOO0KXXXXXKK0000KXXKK00OkxxO0KXXXXXXXXXX0o;,;::::::::;,,:oxO0K0kxxxkxddddoolooolcccc::cll,.';'. .';,,d000000kc..:xO000000OOOOOO00OOOOkxd;..''.'''''',,;:;,,,;;::::::;;,''''''''... ...'',,,,,,,,,,,,,,,,,,,,,;;;;;;:::;;;;;;;;;;;;;;;;;,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::
llcllox0XXKOOO0KKKXXK0OO000KKKKKK000OkkO00KKKKKKKKXKOd:,,,;:;;,,,;ldxxOK0OkkkkOkkkxxxdddddoollcc:ccl;.';,.. .,;';x00000Okl..;dk0000000OOOOOO00OOOkxl'..,,''',,,,,;;:;,,,;;:::::::;,''',,'''.. ...''',,,,,,,,,,,,',,,,;;;;;;;;;;::::;;;;;;,,,;;;;;;;;,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::
llllodkKXK0kO00K00KXKOOO00K000KKKK0000OOkOO00000KK00K0xl:;,,,,;;cdxkxk000OkkkOkkkxxxxddddddddolc::clc,',;,.. .';,':k00000Okl..;lxO0000000OOOOOO0OOOOx:'..';,'',,;::::::;,,,;:cc::::;,,,,,,'''. ...'''',;,,,''',,,,,,,;;;;;;;;;;;;::::;;;;,,,,,,;;;;;;;;,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::
lllodx0XXKOO0KKK00KKKOOO0KK0000KXKKK000OOOOOOOOOOOOO000OkollllldkkxxkO00OOkkkkkxxddddddddoodddollccloc'';;,.......';;,,lO000OOOkl..;ldk0000000OOOOOO00OOko;'...,,'',,;:clllc:;;;::c::cc:;;,,,,,,'.. ...''''',;,,,'',,,,,,,;;;;;;;;;;;;;:::;;;;;;,,,,,,;;;;;;;;;,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::
lllodx0KK0OOKXK0000KK0O0KXK00000KKKKK0000OOkkkkkxxkkkkkkkkxxxxxxxxdxO000Okkkkxxxxddxxddddooddoooollloo:'',;,'....',;,':x0000OOOkc..;clxO00000OOOOOOO00OOxl,''..',,,,;:ccllolc:;::::::cc:;;;;;;,,.. ...'',,'',;;,,,,,,,,,,,;;;;;;;;;;;;;:;;;;;;;;;;;,,,;;;;;;;;;;,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::
cllodk0KKOkkO0OOO0KKK0O0KKK000000000KKKK00OOOkkkxxxxxddddddddddoodxk000Okkkkxxxxdddxxxddddddoddooolllol;.',,,,,,,;;,',oO00OOOOOxc..;cldO00000OOOOOO00OOOd;,,''..',,,;;:cllollc:;;;;::cc:;;;;;;,'. ..'',,,,,,;;,,,,,,,,,,;;;;:::;;;;;;;;;;;;;;;;;;;,,;;;;;;;;;;;,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
clloxOKK0kxxOOOO0KXK000KK00OOO00OOO00000KK0000OOOkkkkxxxxdddxxxxxkkOOOOkkkxxxxdddoodxdoddxddoodoooollodo:'.',,,;;,'',lk0O00OOOkd;..:ccok00O00OOOOOOO0OOkl,',,'...',,,;:ccllllc:,,;;:ccc::::::;'. ..',,,,,,,;;;,,,,,,,,,;;;;:::::;;;:;;;;;;;;;;;;;;;;;;;;;:;;;;;;,,,,,;;;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
llodOKKK0xdxO00KXXXXKKKKK00OOOOOOkkkOOOO000000OO0OOOOOOOkkkkOOOOOOkkOkkkkxxxxdoolllodooodddooooddooolloddc,''''''.';okOOO00OOkxl'.'clclx00000OOOOOOOOOOx:'',,,'...'',;::cccllc;,,:cccc:::::::,.. ..',,,,,,,,;;;,,,,,,,,;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;,,,;;;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:
llox0KKKOxdkO0KXNNNXKKKK000OkOOOOkkkkkkkOOOO00O000000OOOOOOOOO000Okkkkkkkxxdddolllloollodoooolloddoollodxoc,''....,lxOOOO0Okkkx:..,clccxO000OOOOOOOOOOOd;'',,;,....'',;:cccccc:,;cllc::::c::;,. ..',,,;;,;;,;;;,,,,,,,,;;;;:::::::::;;;;;;;;;;;;;;;;;;,;;;:::;;;;;;;;;;;;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::
lldkKKK0Oxxk00KXXNXXKKKK00OOkkOOOkkkkkOOkOOOOOOOOOOOOOkkkkkkOOOOOOkkOkkkkkxddoollllllllooooolclooooollooddoc:;,,;:ldkOOOOOOkkkd;..;clccdO000OOOOOOOOOOko;'',,;,....',;;::::::;,',;::;,;;::::;'. ..',,,,;;;;,,;;,,,,,,,;;;;;:::::::::;;;;;;;;;;;;;;;;;,,;;;:::;;;;;;;;;;;;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::
clkKXKK0kxk000KKKXXKK00000OOOkkxxkkkkkOOOOOOOOOkkxxxxxxdxxkkkkkkkkkOOOkkkkxdooolllllllolccllc::cllollllllodddooodxkkkkkkkkkxxd:'.,:clccoO000000OOOOOOOd:,,,,,;;'...',:::;;;,,''........',,;;'.....',,,,,;;;;,,,,,,,,,,,;;;;::::::::::;;;;;;;;;;;;;;;;;,,;;;::::;;;;;;;;;;;;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:
ld0XXK0OxxO0000KKKKK000000OOOkxddxxxxkkkkOOOOkkxxdooddddxxkxxxxkkkkkOkkkOOxddoolccllccll::clc:::ccllllllcclloddddxkkxxxxxxdol:'.';ccc::ok000000OOOOOOko;,,,,,;;,'..',::;;;;,,'..'.........''....'',,;;;;;;;;,,,,,,,,,,;;;;:::::::::::;;;;;;;;;;;;;;;;;;;,;;;::::;;;;;;;;;;;;;,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
dOXXK00OxxOOOO0KKK000000OOOkkxdddddddddddxxkxxxxxxdoddxxxxxxxxxxkkkkOO000Oxddolcccllcclc::ccc:::::clllcccccc::ccloooooooolc:;;,,;:ccc::lx0K0000OOOOOOxl;;;;;;;;;,..'',,,''''..',,,'.... .......',,,,;;;;;;;;;;;,,,,,;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;,;;:::::::;;;;;;;;;;,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
xKXK000OxxkkkO00K00000OOOOOkxxxxddddddooooddddddxkxxxxxdxdddxxxxxkkO0KXXX0kdddolccllllllccccc:::::clolccclllcc::::::::cc:::;;;;;:cccc:::d0KK000OOOOOkdc;;;;;:;::;'............',,,...... .....',,,,,;;;;::;;;:;;,,,,;;;;;::::::::::::;;;;;;;;;:::;;;;;;;;,,;;::::::::;;;;;;;;,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
OXX0OO0kddxxxkO000000OOOOOOkxdxxxdddxxdddoooooddxxkkxxdddddddxxxxkOKXNNNNX0xdooollolllllc::::::::::lllccclloooolccc::::::;;::::::cccc:;:oOKKKK0000Okxoc:;;;::::::,...........',,''.. ..,,,,;;;;::::::::;;,,,,;;;;;;::::::::::;;;;;;;;:::::;;;;;;;;,,;;:::::::::;;;;;;;;,,;;;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KXK0OOOxdddxkkkOkkkkkkOkkkkkddddddxxdddddoooooddxxkkxdddoooddxxxkO0XNNNNNXKOxolllloolllcc::::::::;;:cc:::clloooollllllccc:::::::ccc:c:;;lkKKKKK000Oxdlc:;;::::cc:,..........',,'.... ..,,,;;;;;::::::::;;,,,,,,,;,;;;:::::::;;;;;;;;;:::::::;;;;;;;,;;:::::::::::;;;;;;;;;;,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KKK00OkxodxkkxxxdddddxkkxxxxxdooodxxddoooodddddddxkxdoooooooddxkO0XNNNWNNNXKOdc::clooolccc::;;::;;;:clcc:cccccllcclloolllcccccccccc::::;cdO0000000kxdocc::;::cclc;.........',,,..... ..,,,;;;:::::ccc:::;;,,,,,,,,,;;;;;::::;;;;;;;;;::::::::;;;;;;;;:::::::::::::::;;;;;;,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
XK00OOxdddxkxxxddddddxkkxddxdoollodxxxddooddoooodxxdoolllloodxkO0KNNNNWWNNNXKkl:;:clooollccc:::;;;:codol::cc:::cccccccllccccccccc::::::::ok0000000kxdolc:::ccllllc,.......',,,'....... ..',;;;:::cccccccc::;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;;;;;;;;::cc:::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
XKOOkkxdddxkkxxxxxxxxkkkkxxxdollooodxkxxddoollloddoooolloooddkO0KXNNNNNNNNNXXKkoc::clooolcccc;,',;codxdlc::c:::::ccc::cccccc::::::::::::coxO000000Okdolccclllooooo:;'....',;,'....... .',;;:::cccccccccc::;;;;;;;;:;;;;;;;;;;;;;;;;;;;::::::::::;;;;;;::ccc:::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
K0OkkxddoodxxxxxxxxxxkkkkkkxxooooooodxxxddooooodddoooddoodddxkOKXXNNNNNNNNNXXXKOxoccclolccc:;,'';codkkxoc::ccc:::ccccc::::ccc::::;;:;;:cloxkOOO000Okxdllllooodddddl:,...',;,'....... .,;;;:::cccc::cccc::;;;;;;;;;;;;;;;;,,;;;;;;;;;;:::::::::::;;;;::ccccc:::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0OOkxdooolodddooddxxkkkxdxxxdoolooolodxxxddddddddooodddddddxkO0XNNNNNNNNNNNXXXXK0kdollllcc:;,,,:loxkOOkdlccccc:c:::ccc:;;:ccc:::;;;;;;;:cldxkkOOO0Okxdooooodddxxxdol:..',,,'........ ..,;;;::::::::ccccc:::;;;;;,,,;;;;;;;,,,;;;;;;;;;::::::::::::;;;::ccccccccccccc:::::::::;;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0Okkxdoolloddoloodxkkkkdddddooolooollodxxxxxxdddooooddodddxxk0KXNNNNNNNNNNNXXXKKK0kxollccc:;,;:lodxkkkkxocccc::c::::cc:;;::ccc::;;;;;;::clodxkkOOOOkxddooddddxxxxddo:'.',,,.......... ..',;;;::::::cccccc::c::;;;;,,,,;;;;;;,,,,;;;;;;;;::::::::::::;;;:ccccccccccccccc::::::::;;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0OkxxdoollloooooddxxxxxddoooooloodoooddxxxxxddddoooddddddxxkO0KXXNNNNNNNNNXXXKKKK0Okdolc::::::coddxkkkkxdlcc:::cc:::cc:;;:::::;;;;;;;::cclodxkOOOOOkxxddddddxxxxxdddc'.,;,'.......... ..',,;;::::::ccccc:::::::;;;;;,,;;;;;;,,,,;;;;;;;;:::::::::::::;;:ccccccccccccccc::::::::;;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0kxxdoolccloooooooooodddddoooooodxdddxxxdddddddooddxxdxxxkkO0KXXXNNNNNXNXXXXKKKKKK0Okdlc:cloooddxxxkkkkkdocc:::::c:::::;;::::;,,,;;;;:::ccldxkkkOOkkxxdddddxxxxxxxxxo;',,,...... .. ...,,;;;;;:::cccc:::::::;;;;;;;;;,;;;,,,,,,;;;;;;;::::::::::::::::ccccccccccccccccc:::::::;;;;;;;,,;;;;;,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Okkxdlccc:clolllooddxxxxdddddddoddxxxxddooodddooodddddxxkkkO0KXXXXNNXXXXXXXKK00KK00Okdlclodxxxxxxxxkkkkkxolcc:::::::::;,;;::;;,,,;;;;;:::cloxkkkkkkxxxdddddxxxxxxxxxdc,,,....... ....,;;;;;;:ccc:::::ccc:;;;;;;;;;;;;,,,,,,,,,,;;;;:::::::::::::::::ccccccccccccccccccc::::::::;;;;,,,;;;,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Okkdlc::c:cllllooddxkxxdddddddddodxxxxddxxxxddoooooooodxxkOO0KXXXXXXXXXKKKKK000000OOkdllldxkxxxxxxkkkkkkxdlccc::::::::;,;;::;;,,;;;;;;::cclodxxkkxxxxxddddxxxxxxxxxxdl:,'........ .....',;;;;;:ccc:::::cclc::;,,,,,,,,,,,,,,,,,,,,;;;;:::::::::::::::::cccccccclllllccccccc::::::::;;;,,,;;,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
OOkdc:::::cccllllooddxddoooodxxddddxxxxxxxxxddoooooodddxkkO0KKXXXXXXXXKKK0000OkkOkkxxolcldxxxxxxxxkxkkkkxdolcccc:ccccc:;;;;;;;;;;;;;;::ccclodxxxxxxxxddddxxkkxkkxxxxxoc,........ ......',;;;;:cccc::::ccllcc:;,,,,,,,,,,,,,,,,,,,,;;;;::::::::::::cc::::ccccccllllllcccccccccc:::::;;;;;;,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Okdoc:;;;;ccccccclodddoooooddddooddxxxddddddddddddddxxkkkOO0KKXXXXXXKKKK00Okkxxxkkxxdlccloddxxxxxkkxxkkkxxollclcclllccc:;;;;;:::;;,,;;:ccclodxxxxxxxddddxxkkkxxkxxxxxdl,...... ......',;;;;::ccc:::::cllcc::;,,,,,,,,,,,,,,,,,,,,,;;;;:::::::::::cccc::cccccllllllccccccccccccc:::;;;;;;,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Oxlll:;;;:ccccccclodollllooddollooddddddddddddxxxxxxxkkOOOO0KKXXXXXKKKK00Okxddxkkkkxdolcloodxxdxkkkxxkkkkxdolllllllccc::::;;;::;;;;;;;::::codxxxxxxxdddxxxkkkxxkxxxxxxo;...... ........',;;;;::cc::::::clcc:::;,,,,,,,,,,,,,,,,,,,,,;;;;;;:::::::::::ccccccclllllllccccccccccccccc:::::;;;,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
kdllc::;,;:::::::clllllllloodddooooddxxxxxddddxxxxxxxxkkOOO0KKXXXXKKKK0OkkxddxkO00OOkxdollldxxxxkkkxxkkkkxxdoolllcccc:::::::::;;;;;:::::::codxxkkkxxdxxxkkkkkkxkkxxkxxd:..... ........',;;;;::::::;;;::ccc:::;,,,,,,,,,,,,,,,',,,,,,;;;;;;;:::::::::::cccccllllllllcccccccccccccccc::::;;,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
xoll:::;,;,;;;:::::ccccclllooddoooodxxxxxdddddxxxxxxxxxkkOO0KKKKKKKKK0OkxdooxO000K0OOOkxolloddxxxxxxxkxkkxxdoollccccc:::::;;;;;;;;;;;:::;;coxxkkkkxxxxkkkkkkkkkkxxkkxxxc'.. .........',;;:::::::;;;;;:::::;;;,,,,,,,,'''''''',,,;,,,,,;;;;::::::::::::cccllllllccccccccccccccccc:::::;;,,;;;;;;;,,,,;;;;;;;;;;;;;;;;;;;;;,;;;;;;;;
dllc:::;,,,,;;;;;;;;::clllloooollooddxddddddddxxxxxxxxxkkOO0KKKKKKKK00kxdc:cxO00K00OOOOkxolloddxxxxxxxxxkxxdoollccccc:::::;;;;;;,,,,;:c:::ldxkkkkkxxkkkkkkkkkkkkkxxkxxdl;.. ..........',;;::::::::;;;;:::::;;;,,,,,,'''''''''',,;;,,,,,,,;;;;::::::;;;::ccccccc:::::::::::::::;;;;,,,,'''',,;;;;;;,,;;,,,;;;;;;;;;;;;;,;;;;;;;;;;;;
ollc:::;,,,,,,,;;;;::cllooooooollooodddddddddxxxkkkkkkkkkO00KKKKKKKK0Okdl,.,oO00K000OOOOkxlcloddddxxxxxxxxddooollcccccc:::::;;;;;;;;:::::loxkOOkkkkkkkOkkkkkkkkkxxxxxxdoc.. ........',;;;::;;:::::c::::::;;;,'',,,''''''''''',,;;,,,,,,,;;;;;;;;;;;;;;;;;;;;,,,'''''''',,''''.............''',,;;;;;;,,,,,,,,;;;;;;;,,,,;;;;;;;;;;
olcc::;,'',,,,,;;;;;::ccclllloolllooodoooooddxxkkkkkkkkkOO00KKKKKK00Okxl;...:xO00K00OOOOOkocclooddxxxxxxxxddoooollccccc::::::;,;;;;:::;;:ldxkOkkkkkkOOOOkkkkkkkxxxxxxxddl,... .......',;;:::;;::::::::::;;,;;,''',,''''''''''',,;;,,,,,,,,,,,,,,,,,,''''''....................................'',,;;,,,,,,,,,,,;;;;;;;,,,;;;;;;;;;;
olcc::;''','',,;;;;;;;;:cclllllllllloooooooddxxkkkkkkkOOO000KKKKKK0OOkdc'...'okO0000000OOko::lloddxxxxxxxxdddooollccccc::::::;,;;;;:;;;;:lxkOOkkkkkkOOOOOOkkkkkxxxxxxxxdo;... . ....'',;;:::;;;;;;;;;;::;,,,,,''',''''''''''''',,,,,,,,,,,,,,,'''''''...........................................',;;,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;
lcc::;;''''''',;;;;;,,;;:ccllloooolooooooooddxxkkkkkkOOOO000KKKKKK0Okxo;.....:dkO0000OOOkxl:;cloddxxxxxxxxdddooolllcccc::::::;;;;;;;;,,;:oxkOOkkkkkOOOOOOOkkkkkxxxxkkxxdo;.... .......'',;;:::;;;;;,,,;;;;;,,,,,''',''''''''''''',,,,,,,,,,,,''''.................................................',;;,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;
c::;;;,'.''''',,,,,,,,,;:cclloooooooooooddddxxkkkkkkkOOOO000KKKKK00Oko:.......,codxkOkkxdl;',:lodddxxxxxxdddddoolllllcccc:::::::;;;,,,,;cdkOOkkkkkOOOOOOOkkkkkxxkkkkkxxdo,.... ........'',,;::::;;;;;;;;;;,,,,,,,''',''''''''''''',,,,,''''''......................................................',,;;,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;
c:;;,,'''''''''',,,''',,;:cloooooooooooddddxxkkkkkkkkOOOOO00KKKK00Okdc'.. . ..'';clolc:'..';cooddddxxxddddddoollllllcc:::::::::;;;;;:coxkOOkkkkOOOOOOOkkkkkxxkkkkkkkxdl,.... .... ...''',;:::::::::::::;,,,,,,,''''''''.'''''''''''''.............................................................',,;;,,,,,,,,,,,,,,,;;;;;;;;;;;;;;
c:;,,''''''''''',,,''''',:cllolloooooooddddxxkkkOOOOOOOOOO00KKKK0OOxl,.... .. ......''......,:loodddxxxxdddddoolllllcc::::::;;;;;;;::codkOkkkkOOOOOOOkkkkkkkkkkkkkkkxxdl,... ........''',;;::::::::;;;:;,,,,','''''''''.'''''''''..................................................................',,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;
c:;,''...'''''''',,,''',;;::cllllllooooddddxxkOOOOOOOOOO0000KKKK0Okd:.................. .....';coodddxxxdddddddooollcc:::::::;;;;,;;:cldkOOkkkOOOOOOOkkkkkkkkkkkkkkkkxddl;.......... ..''',,;::::;;,,'',,,,''''''.''''....'''''.......................................................................',,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;
::,''...''''''''',,,''',,,,;;:ccllloooddddxxkkOOOOOOO000O000KKK00Oxo,........................';coodxxxxxddddddoooollcc::::::;;;,,,,;:cokOOkkkkOOOOOkkkkkkkkkkkkkkkkkkxdol:'......... ...'',,;::::;;,,'''''''..''..'''..................................................................................',,,,,,,,,,,,,,,,,;;;;;;;;;;;;;
:;,''..''''''''''''''''',',,,;:clloooooddxxxxkkOOOOOO0000000KKK00kd:'.........................,:loddxxxxddddddoooollcccc:::;;;;;;;;:cldkOkkkkOOOOOkkkkkkkkkkkkkkkkkxxddol:,......... ..'',,;;:::::;,,,''''.......''...................................................................................'',,,,,;;,,,,,,,,,;;;;;;;;,,,,,
:,'''..'''''''''''''''''''''',;:lloooodddxxxxxkOOOOOOOO000000K00Okl;...........'''............';coddddxxdddddddooolccc:::::;;;;;;;:codxkkkkOOOOkkkkkkkkkkkkkkkkkxxxxxdolc:;'......... ..'',,;;:::::;;,,'''..............................................................................................''',,,;;;,,,,,,,,,,;;;;;;,,,,,
;'''...''''''''''''''''''..''',;:cloooddxxxxxxkOO000000000000000Oxl'...'',,,,,,,,,,,''........';codddddddddddddoollccc::::;;;;;;;:coxkkkkkOOOkkkkkkkkkkkkkOkkkkkkkxxddoc:;,'......... ...',,;;;::;;;,,''.................................................................................................'',,,;;;,,,,,,,,,,,,;;;,,,,,,
;'''..''''''''''''''''''''''.'',,;cclloddxxxxxkOO000000000000000Ox:'.',;::ccccc:::;;,,''......';codddddddxxxdddoollccc::::;;:;,,;coxkkkkkkOOkkkkkkkkkkkkkkkkkkkkxkxxdol;,','......... ...',,,;;;;;;,'.....................................................................................................'',,;;;,,,,,,,,,,,,,,,,,,,,,
;'....''''''''''''''''''''''..''',;::cloodxxxxkOO0000000000K000Oko:;:loddddddooollcc::;;,''...';coddddddxxxxxddoolcc:::::::;;,,;:ldkOOkkkkkkkkkkkkkkkkkkkkkkkkxxxxxdolc,..'''........ ...'',,;;::;,'.......................................................................................................'',,;;;,,,,,,,,,,,,,,,,,,,,
,'....''''''''''''''''''''''.....',;;:cloodxxxkOO0000000KKKK000OkdodkOOO0OOOOkkkxxddollcc:;,,,';cooddddxxxxxxddoolc:::;::::;,;:cldkkOOkkkkkkkkkkkkkkkkkkkkkkkxxxxxdolc:'............. ...',,,;;;,,'........................................................................................................'',,,;,,,,,,,,,,,,,,,,,,,,
,'....'''''''''''''''''''''''.....',;;clloddxxkkO0000K00KKKK000OkxxO0K00K0000OOOkkkxxdoollc::;,;looddddxxxxxddoollc:::;;;::;,;cldxkOkkOkkkkkkkkkkkkkkkkkkkkkkxxxxxollc:'.............. ...',,,,;;,'..........................................................................................................'',,;,,,,,,,,,,,,,,,,,,,,
,'.....'''''''''''''''''''''''.'...',,:clooddxxkO0000KKKKKKK000OOkO0000000OOOOOOOkkkxxdddollc:,;loddxxxxxxxxddoolcc:::::;;;;;:ldxkOkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxolc:;'........'.........''''',,'...........................................................................................................'',,;,,,,,,,,,,,,,,,,,,,,
,'.....'''''''''''''''''''''''''....'',;ccooodxkOO000KKKKKKKK00000000000OOOOOOOOOkkkxxxxxxddooccloddxxxkkxxxddollc:::::;;;;:coxkOOOkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxolc::;........''''...........................................................................................................................'',;,,,,,,,,,,,,,,,,,,,,
,'...'''''''''''''''''''''''''''.....'',;:lllodxkOO00KKKKKKKK00000K00000OOOOOOOOkkkkxxxxxxxddddooddxxkkkkkxxdoolcc:::::;::cldxkOOOkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxdlc:::;.........',''.........................................................................................................................''',;;,,,,,,,,,,,,,,,,,,,
,'..'''''''''''''''''''''''''''''......',;cccoodxkkO0KKKKKKKKK000KK0000OOOOOOkkkkxxxxxxxxxxxxxxdddxxkkkkkxxdollccc::::::codxkkOOkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxdocc:::,..........''......... .............................................................................................................''',,;;;;;;;;,,,,;;;;;;;;
,'..''''''''''''''''''''''''''''''......';:;:lloodxkO000KKKK000000000OOOOkkkkkkkxxxxxxxxxxxxxxxxxxkkkkkkkxxdolcccc:::::codkkOkkkkkkkkkkkkkOOkkkkkkkkxxxxxxdddddolcccc:,............... .....................................................................................................'''',,;;;;;;::::::::::::::
''..'''''''''''''''''''''''''''''''''''.';c:;:cclodxkOO0KKK000000000OOOOkkkkkkxxxxxxxddxxddxxxxkkkkkkkkxxddollcc:::;;::coxkkOkkxxkkkkkkkkkkkkkkxxxxxxxxddddooddollllcc;..... ....... .....................................................................................................''',;;:::ccclcccccccccccc
''..'''''''''''''''''''''''''''''''''''.';clc:;::lodxkO000000000000OOOkkkkxxxxxxxxxxddddxddxxxxkkkkkkxxxxdollc::;;,,;:cldkkkkkxxxkkkkkkkkkkxxxxxxxxddddddddodddolllllc;............. ......................................................................................................',,;:clllooooooooooooooo
'''''''''''''''''''''''''''''''''''.....',:ool;,;:lodxkOOO000000OOOOkkkkxxxxxxxxxdddddddddxxxxxkkkkkkxxxdolc::;;,'',;:cldkkkkkxxxkkkxkkxxxxxxxddddddddddddddxxdoollllc,............ . ..................................................................................................',;:cloodddddddddddddddd
''''''''''''''''''''''''''''''''''......'';cooc;',:loddxxkkOOOOOOOkkkkkxxxxxxxdddddddddddddxddxxxxxxxxdolc:;;,,,'.'',;:cdkkkkxxxxxxxxxxxxxxxxxddddddddxddddxxxdoollllc;.......... ...............................................................................................,;:cloddddddxxxxxxxxxxxx
'''''''''''''''''''''''''''''''''''...'.'';clloc;',;cloodxxxkkkkkkxxxxxxddddddddddddddddddddddxxxxxxdolc:;,''''''''',;:cokkkxxxxxxxxxxxxxxxxxxdxxxxxxxxxddxxxdooolcccc;......... .............................................................................................';:cclodddddxxxxxxxxxxxxx
'''''''''''''''''''''''''''''''''''''''.'',ccclooc;',:clodxxxxxxxxxxxdddddddddddddddddooddddddddxddolc;,'''...'''''',;:cokkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxddxxdooollccc:;'........ ............................................................................................';cllooddxxxxxxxxxxxxxxxxx
'''''''''''''''''''''''''''''''''''''''.''':ccclodo:,,;:codddxxxxdddddddddddooooooooooooooooodoooolc;,''......'''''',;:coxkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxdxxxdolllcc::;;,''..... ...... ...................................................................................',:loddddxxxxxxxxxxxxxxxxxx
''''''''''''''''''''''''''''''''''''''''''':cccclddo:,,;clooodxxddddddddddoooooooooooooooooooollcc:;'..........''''',;;coxkkkxxxxxxxxxxxxxxxxxxxxxxxxxxddxxxdollccc::;;,'''.... ..... .... ...................................................................';coddddxxxxxxxxxxxxxxkkkkk
'''''''''''''''''''''''''''''''''''''''''.':ccccllool:;;:clooddddddddddddoooooooooooolloolllccc:;;;,'..........''''',;;coxkkkkxkkkkkkkkxxxxxxxxxxxxxxxxddxxdollccc:::;;,,''.... ........................................................................................'',:lodxxxxxxxxxxxxkkkkkkkkkk
..'''''''''''''''''''''''''''''''''''''.'.';clccccloooc:;;:looooddddddddoooooooooooolllllcc:;,,,''''..''.......''''';;;:oxkkkkkkkkkkkkkkxxxxxxxxxxxxxxdddxxdolccc:;;;;;,,''.... ...................................................'''',,,,;;::cclodxxkkkkkkkkkkkkkkkkkkkkkk
..'''''''''''''''''''''''''''''''''''''..'';cllccccclollc:;:clloooddoodoooooooooooollllccc;'.''''''''...........'''',;;:okOOOOkkkkkkkkkkxxxxxxxxxxxdddddxxdolccc:;,,;;;,,'..... ....................................''''''''',,,,,,;;;;;;:::::cccccllloooooddddxxxxxkkkkkOOOOOOOOOOOOOOOOOOOOO
..'''''''''''''''''''''''''''''''''''''..'';clllccccccllllc:;:cllooooooooooooollllllllcc:;...,''''''''..........'''',;;:lkOOOOOkkkkkkkxxxxxxxxxxxxxdddddxddlcccc:,,,,;,,''..... .........''''''''',,,,,;;;;;;;;::::::ccccccccccclllllllloooooooodddddddxxxxxxxxxxkkkkkkkkkkkkkkkOOOkkOOOOOOOOOOOOOOOOOOOOOOOOOOO
..''''''''''''''''''''''''''''''''''''''''',lllllcccccccclllc:::cloooooooooooolllllllcc:;...','''''''''..........''',;,;lkOOOkkkkkkkkxxxxxxxxxxxxxxdddddxdolcccc:,'',,,'....... ..';:cclllllooooooooodddddddddxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOOOOOkkkkkkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
...'''''''''''''''''''''''''''''''''...'''',lolcclcccccccccllccccclllooooooooolllllllcc:'..,,,'''''''''..........''',,,;cxkkkkkkkkkxxxxxxxxxxxxxxxxddddxxdolc:::;,',,,''....... .,:lddxxkkkkkkkkkkkkkkkkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
...'''''''''''''''''''''''''''''''''...'''';ldlllccccccccccccccccccccllooooooolllllllc:,..';,'''''''''...........''',,,;cdkkxkxxxxxxxxdddddddddddxdddddxxollc:;;,,,,,''........ .,coxkkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO00000
..''.'''.'''''''''''''','''''''''''''...''';oxolllcccccccccccccccccccccllooooolllllllc;'.',;,'''''''''...........''',,,;coxxxxxxxxddddddddddddddddddoodddollc:;;;,,;,,'........ .'cdkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO00OO000000O000000000000000000000OOOO000OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO0000000000OOOOOOOO000000
..'''''''''''''''''''''''''''''''''''''.''';dxdoollcccccccccccc::cc:::cccllolllllolll:,..,;,''''''''''...........''',,,:coxxxxxxxxddddddddddddddoooooloddollcc::;;;;,,......... .'cdkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO0000000000000000000000000000000000000000000000000000000000OOOOOOO00000000000000000000000000000000000
.''''''''''''''''''''''''''''''''''''''.''':oxxddollccccccccccc::::::::ccllllllllollc:'.';;'.'''''''''...........''',;,:ldxxxxxxxxdddddddddddddooooolloddlcccc:;;;;,,'........... .,cdkOOOOOOOOOOOOOOOOOOOOOOO00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
.''.'''''''..'''''''''''',',''''''''''''''':oxxxddolllccccccccc::;;:::::ccloololllllc;'';;,...'.''''''...........''',,,;ldxxxxxxxddddddoooooooooooooloddolccc:;,,,,,''........... ..,ldkOOO0000000O00OOOOOOOOOO0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
.''........',;,'.'''''..''..'..''''''''''',codxxxddoolllccccccc::;;;;:::cclooooollll:,',:;'.....''''''...........''',,,;ldxxxxxxddddddddoooooodddooooodollcc:;,,,,'''............. ..,lxkO00OOO00000OO0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
.,'........;clc'...''...........'''''''''',coodxxdddoolllcccccc::;;;;;::cclloooooool:,',:,......''''''...........''',,,;lxxxxxxxddddddddddddddddddoooodolccc:;;,,,'''............. ..,lxOO00000OOOOO0OO0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
.;;''''''',lddc,'''.''''''.','''.''''''''',coodxxddddoolllllccc::;;;;;:::ccloooooool:,',;,......''''''...........''',,,;lxxxkxxxxddddddddddddddddddooddolcc::;,,,,'''...............;ldkOOO0000OOOOO00O0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
.ldlllldlcodkOxoll;.;ccllccloloc'.'....''';llooddddddddooolllcc:::;;,;::::cllooooool:,';;,. ...''''''...........''',,,;lxkkkxxxxxxxxxddddddddddddooodolcc::;;,,,,'''.............;lxO0000OO0000OOOO0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
.o0ddddOloxdxOKkodl.cdcxdoxkdodo,.'...''.':lllooddddddddddoollcc::;;,;;:::ccloooooolc,';,'. ...''''''............''',,;cdkkxxxxxxxxxxddddddddddddooodolc:::;,,,,'''''.........';lxO00000000000OOOOO0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
.lxcc:ckddocoxkxdlc:clclllllc:::,.'..'''';cllloooddddddddddddolcc:;;,,;:::ccloooooolc,,;,'. ...''..'.............'',,;cdkkxxxxxxxxxxdddddddddddooooooc:::;;,,,''''''.......':oxO000000000000000O000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
.,;''''cxx:',,;ll,':;,,,,,,''''''.'''''',:llclllooodddddddooooolcc:;;,;;::ccloooooolc;,;,.. .....'.................',;;cdkkxxxxxxxxxxxddddddddddoooooolc::;,,,,''''.......':oxO000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
.......';;'....',..,'.....'..''..'',''..;cc::::::cclllloddollooolc::;;;;:::cllooooolc;;:,...........................',;;cdxxxxxxxxxxxxxdddddddddxxddxkxxdoolc:;,'''......';lxO00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
'','''.......,..,,';,.'.';'.,;,..'',''..;::;,,,,,;;:;::lddollodolcc:;;;;:::clloodoolc;;:;...........................',;;cdxxxxxxxxxxxxxddddddddxkkkkO00Okkkxoc;,'''......;lxO000O00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000