:ccooocc:o::oO88888888888888888888888OOCCCCCCOOOO88888888CccC8888OOCCOCCCCocoCOOC8O88888@8@8:::cc:oc:co::::::::::::::::::::::::::::::::.      
        COCoCOOOOCCCoCOO888888888888888888888OOCCCCCOOOO888888OcC8888O8OCOOoCooCoccccc:COCOO88888@@@C::::o::oc::cooc:::::::::::::::::::::::::::.      
        COOOOOOOOOOO888O888888888888888888888OOCCCOOOOO88888CoO8888OOOCCCo::::....:::::ccCoOOO8888@@8:::::oo:coc:::coooc:::::::::::::::::::::::.      
        O8888OOOOOOOOO8O888888888888888888888OOCCCOOOO8888CC8888888o:.:cooo:..:.:ccoo..:.ccoOCO8888@@O::::::oo:cooc:::::coooocc::::::::::::::::.      
        O8888888OOOOOOO8O888O888888888888888O8OOCOOOO8888C888888occcCOOOOOC:..    :::oc ..:cCoCO88888@C::cc::coc::coocc::::::cooooooccc::::::::.      
        O888888888OOOOOO8O88888888888888888888OOCOOOO888C8888Oc:oO8@88888OOo...   .oo.:....:::oCOO8888@:::co:::oo::::cooocc:::::::::cccoooooooo.      
        oOO8O8O88888OOOO8O888888888888888888888OOOOOO88O88Oo::COO@@8888888OOC:.:..:Oc.   .cc:ccoO888888o::::oc::coo:::::cooooooc:::::::::::::::.      
        CCOCc::oOCOO8OOOO88O888888888888@8888O88OOOOO888C:cCCCoccooooCCCOCOCCCo:::::::..ccoooCOOOO888888o:::::oc:::coo:::::::::ccoooooooooccccc.      
        ococoococcoCCOOOOO88O88O88888888@8888888888OOO8OOCCOO88888888OOOCCooooccccccoooccCCOOOOOOO8888O88::::::oooc::coc::::::::::::::::::ccccc.      
        :cccc::..co:ocCOOOO8O8O8O8888888@88888888O8OO88888@@888888888888888OOOOCCCCCooCooO888888O8O888O88O::::::oooooc::coc::::::::::::::::::::.      
        ...:cc::c:..:oCOOOO88O88O88888888@888888O8O8888888@@@@@@888OOOOOOOOOOOOOOCCCCCCCO88888888888O88888c:::c::oo::oooc:::c::::::::::::::::::.      
        ...    ...::.o88OOOO8O88888888888@@8888O8O888888888@@@@@@@@88888888888OOOOOOO88888@@@@@88888888O88O::::c::coc:::::cccoooccc::::::::::::       
        ...    ....cocoOOOO8O888O88888888@@@@8888888O8888888@8@@@@@@@@@888888888888888888@@@@@@@88888888888c:::cc::coc:::::::::::::::::::::::::       
        .::.....:.oCCC888O8O888888O888888@@@@@888888O88888888@8@@@@@@@@@@@88888888888888@@@@@@@@888888888O8O::::co::coc::::::::::::::::::::::::.      
        :..:cCCCCCCO8@@@888888O888O888888@@@@@88888888O888888888@@@@@@@@@@@@@@8@@@@@@@@@@@@@@@@888888888O8O8:::::oo::co::::::::::::::::::::::::.      
        CCOOCOOOO88@@@@@@88888O8888888888@@@@@@@@88888O8888888888@@@@@@@@@@@@@@@@@@@@@@@@@@@@88888888888O88Oo:::::coc:co:::::::::::::::::::::::.      
        CO8888OO8@@@@@@@888888O8888888888@@@@@@@@8888888O888888888@@@@@@@@@@@@@@@@@@@@@@@@888888888888O888O8C::::::coc:oo::::::::::::::::::::::       
        O88OO888@@@@@@@@@8888O8O888888888@@@@@@@@@88888O88O8888888@@@@@@@@@@@@@@@@@@@@@@@888888888888O888888O:::::::coo:oc:::::::::::::::::::::       
        COO8888@@@@@@@@@8888888O888888888@@@@@@@@@@8888888O8888888@8@@@@@@@@@@@@@@@@@@@@@888888888O88O8888888::::ccc::ooco:::::.:::::::::::::::.      
        O88@@@@@@@@@@@@888888888888888888@@@@@@@@@888888888O8888888@8@@@@@@@@@@@@@@@@@@@@88888888O8888O888888c:::oCCOO:oooc::::::::::::::::::::.      
        O@@@@@@@@@@@@@@@8888888O888888888@8@@@@@@88888888O888O8O8888@@@@@@@@@@@@@@@@@@@@88888888O888888888888C:::oCCCO8:coo::::::::::::::::::::.      
        8@@@@@@@@@@@@@@88888888O8888O888888888888888888888888888O888888@@@@@@@@@@@@@@@@888888888O888888888888O:::CCCCCO:::ooo::::::::.:::::::::.      
        8@@@@@@@@@@@@@@88888888888888888888888888888888OCO8888888O8888@@@8@@@@@@@@@@@@@88888888O8888O888888888:::CCCCCOo::::ooc::::::::::::::::.      
        8@@@@@@@@@@@@@@@888888888@@88888O88888888O8OC.     o88888OO888888@8@@@@@@@@@@@@888888888O888O888888888o::CCCCCOO::::::coo:::::::::::::..      
        8@@@@@@@@@@@@@@@8@888888@@@8C:    .C888888OCccc.   c88888OC888888@8@@@@@@@8@8@8888888888O8O88888888888O::CCCCCC8:::::::::oo::::::::::::.      
        8@@@@@@@@@@@@@8@@88O888@@8Oc    oCCCO88O8OOCCCCC  .C8888OCC8888888@88@@@@@@88888888888888O8888888888888::oCCCCC8:::::::::::coc:::::::::.      
        8@@@@@@@@@@@@@@8@888888@88o.   :CCOO8O88OOOOCCCCCoO8888OCCC888888888@8@@888888888888888888O8888888888@8::oCCCCOO:::::::::::::::::::::::.      
        8@@@@@@@@@@@@8@8888OO88@88C:..oOOO88O88888888O8OOOOOCCCCCO8888888888888@8888888888888888O8O888888888@@@c:cCCCCOOcoc::::::::::::::::::::.      
        8@@@@@@@@@@@8@88888OOO8888OOO888O88888888888888888OOOOO888888888888888888@88888888888888O8888888888@@@@O::CCCCOo:::ooooc:::::::::::::::.      
        8@@@@@@@@@@@@@888888OOOOO888O8OO88888888888@888888888O888888888888888888888888888888888O88O88888888@@@@8c:CCCCOc::::::coooooocc::::::::.      
        O@@@@@@@@@@@8@88888888OOOOOOO888888888888888@8888888888O888888888888888888888888888888888O888888888@@@8@C:cCCCO:::::::::::coooooooooooo.      
        O@8@@@@@@@@@8@888888888888888888888888888888@8@888888888888888888888888888888888888888888O88888888@8@@@88c:CCO8:::::::::::::::::::::ccc.      
        O8@@8@@@@@8@8888888888888888O888888@88888888888OOOOOOOO88OO88888888888888888888888888888O888888888@8@@@@8C:oCOC::::::::::::::::::::::::.      
        O888@8@@@8888888888888888888888888888888888OO888CCCCCCCCCOOO888888888888888888888888888O8O88888888@@@@@88Co:O8:::::::::::::::::::::::::.      
        O88888@8@88888888888888888888OO8@@@@@@88888CCCCCCCCCCCCCCCCCCOOO888888888888888888888888O8O8888888@8@@@@8CCcCO:::::::::::::::::::::::::.      
        O8888888888888888888888888OO@@8O8@@@8CCCCCCCCCCCCCCCCCCCCCCCCCCCO888888888888888888888888O8O8888888@8@@88CCCco:::::::::::::::::::::::::.      
        O8888888@888888888888888OO8CCCC8@@8CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCOO88888888888888888O8888O8888888888@@88CCCO::::::::::::::::::::::::::.      
        O8888888888888888888888OCCCCCO@@8CCCCoCC8@@@CC@CC@@8CCoCCCCCCCCCCCCCOO88888888888888O8888O8O88888888@8@88CCC8c:::::::::::::::::::::::::.      
        O888888888888888888888OCCCCCCCCCCCCCCCO@@8CoCCOCoCCCCoCCCCCCCCCCCCCCCCO888888888888O88888O888888888@8@@88CCO8c:::::::::::::::::::::::::.      
        O88888888888888888888CCCCCCOCOC8@8OCCooooooooooooCooooooooooooooooooCCCCO888888888O88888O88O88888888@@@88CCO8::::::::::::::::::::::::::.      
        O8888888888888888888OCCCCCC8@8OCoooooocoO8@@@O8@@@@@@@8O888OCoooooooooCCCO88888888O888888888888888@@8@@@8CCO8::::::::::::::::::::::::::       
        O888888888888888888OCCCCCCCC@OCCCoooO@@@@@@@@8@@@@@@@@@O888OOCCCCC:.ccooCCOO88O88O8O888888888888888@@@@88CCOO::::::::::::::::::::::::::       
        O88888888888888888OCCCCCCCCCoCooo8888@@@@@@@@@8@@@@@@88O88OC:.:cc:       .:C8O888888888888O88888888@@@@@OCCOC::::::::::::::::::::::::::.      
        O8888888888888888OCCCCCCooooooC8@8888@@@@@@@8888888@@8CCo:::ooCCCCCCCoooCCO8888888888888O8O88888888@@@@88CO8:::::::::::::::::.:::::::::       
        OO888888888888888OCCCCoCooooCOO888@@C:8@8@88Oo.:oCCOOOOOOOOOOOCCCCCCCCCCCO88888888888888O8O88888888@@@@88O8o:::::::::::::::::::::::::::.      
        OO8O888888888888OCCCCCooooC88Oc . :oCCoooCOOOOCOCCCCCOCCCCCCCCCCCCCCCCCO88888888888888888O888888888@@@@888C::::::::::::::::::::::::::::.      
        O88O888888888888OCCCoooc .c: :oCCCCOOOOOOCCCCCCC888@@@8888CCCCCCCCCCCCO8888888888888888888888888888@@@@88C:::::::::::::::::::::::::::::.      
        OO8O88O888888888CCCoc.   :COOOOOOCCCCCCC888@8@8CCOOCCCCCCCCCCCCCCCCO8888888888@88888888888O88888888@@@@8C::::::::::::::::::::::::::::::.      
        OO8888O8888O8OCOCc   .cCCCCCCCCCCCCCCO888CCCCCCCCCCCCCCCCCCCCCCCO888888888888888888888888888888888@@8@88o::::::::::::::::::::::::::::::.      
        O888O8O88O8OOOCCOCCCCCCCCCCCCCCCCCCC8OOOCCCCCCCCCCCCCCCCCCCCOOO88888888888888888888888888888O88888@@@@8O:::::::::::::::::::::::::::::::       
        O8O8O8888O88OOOOO88OOCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCOOO8888888888888888888888888888888888888888@@@88C::::::::::::::::::::::::::::::..      
        O88O888888888888888888888OOCCCCCCCCCCCCCCCCCCOOOO8O8888888888888888888888888888888888888888888888@@@@88:..:::::::::::::::::::::::::::::.      
        OO8O88888888888888888888888888888OOO8O8O88888888888888888888888888888888888888888888888888O888888@@@88O............:.::::::::::::::::::.      
        OO8O888O8888888888888888888888888888888888888888888888888888888888888888888888888888888888O888888@888O:................................       
        O88O888O8888888888888888888888888888888888888888O88O88888888888888888888888888888888888888O8888@@@888c:::::::..........................       
        OO8O8888888888888888888888888888888888888888888888888888888888888888888888888888888888O88888888@888O:.::::::::::::::::.:........:......       
        OO8O8888888888888888888888888888888888888888888888888@8888888888888888888888888888888O8888888@8@88C:............:...........:........:..      
        O88O88O8888888888888888888888888888888@8888888888888888@8888888888888888888888888888O8O88888@8@88o:::::::::.:.............:....::::.:.:       
        OO8O8O88888888888888888888888888888888@8@88@8888888888888888888888888888888888888888O88888@8888O:.:::::::::::::::::::::::::............       
        OO8O8O88O888888888888888888888888888888@888888888888888888888@8888888888888888888O888888@8@888c........................................       
        O88O888888O8888888888888888888888888888888888@888888888@88888888888888888888888O88888@8@8888Oc.........................................       
        OO88888888O888888888888888888888888888@888888888@8888888888888888888888888888O888888@88888OOO:.........................................       
        OO8888888O888O888888888888888888888888888888@8888888@8888888888888888888888O8O888888888OOOOOo........................................:.       
        OO888888OO88O8888888888888888888888888888888888888888888888888888888888888O88888888OOOOOOOOO:::..............................:.::::::.:       
        O8888888O888O88888O888888888888888888888888888888888888888888888888888888O8O888O8OOCCOCOOOOo::::::::.:..............:.:::::::::::::::::       
        OO8888O8O888O88888O88O888888888888888888888888888888888888888888888O88888O8888OOCCCCCCCCOCOc:::::::::::::::::::::::::::::::::::::::::::       
        OO88O8O888O8O88888O888O888888888888888888888888888888888888888888O88888888O8OOCCCCCCCCCOCOO::::::::::::::::::::::::::::::::::::::::::::       
        .::.:.:::.:.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.................  .  . . .   .  .  .  .      .      .