....''''''''''''....                                      
                                ..;;--!!!!!!!!!!!!!!!!!!!!--;;..                                
                            ''!!>>!!""--;;;;::::::::;;;;--""!!!!!!''                            
                        ::!!>>""--::''......          ....''::--""!!!!::                        
                    ..-->>""--::''....                      ....::--!!>>--..                    
                  .."">>"";;''......      ..  ..      ..  ..  ....'';;"">>""..                  
                ..>>!!"";;''........................................'';;""!!>>..                
              ::>>!!"";;''......;;;;::......................;;;;::..''''::""!!>>::              
            ..!!!!"";;''''''''--!!!!!!;;''''''''''''''''''--!!!!!!::'''''';;""!!!!..            
            !!!!""--::''''''""??????????--''''''''''''::!!????????>>;;''''::--""!!!!            
          ;;>>!!--;;::''''!!7777??!!777777""::''''''::>>7777>>>>7777??--::::;;--!!>>;;          
        ''>>!!"";;::::::>>77$$77--::>>$$$$CC""::''::>>CC$$77;;;;??$$$$CC--::;;;;""!!>>''        
        ""!!""--;;;;::::CCHHCC--::::::>>HHHH>>::::--CCHH77--::::::??HHHH""::;;----""!!""        
      ''>>!!----;;;;::::""??--::::::::::!!??--::::;;!!??--::::::::;;>>??;;::;;;;----!!>>''      
      "">>""------;;;;;;;;;;;;::;;;;::;;::;;;;;;::::::::::::;;::;;::;;;;;;;;;;------""!!""      
      >>!!--------;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;------""!!>>      
    ::>>!!------------;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--------!!>>::    
    ::!!""--""$$HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH$$""--""!!::    
    !!!!""--77MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM77--""!!!!    
    >>!!""--HHMMCC????>>>>????OOMMHH????>>>>>>>>>>>>>>>>??77MMNN77??>>>>>>????CCMMHH----!!>>    
    >>!!----NNNN""--;;::;;;;--$$MM$$"";;;;::::::::::::;;--""MMNN""--;;::::;;--""NNNN----!!>>    
  ..>>!!----NNQQ--::''''''::;;CCMMCC;;::''............::;;""MMNN--::''..''''::--QQNN----!!>>..  
    >>!!""--MMOO;;::......'';;CCMMCC;;''..          ..''::--MMNN--::........::;;OOMM----"">>..  
  ..>>""----MMHH;;''..  ....::CCMMCC::''              ..''--MMNN;;''..    ..'';;HHMM----!!>>    
    >>!!----MMQQ;;''..  ....::CCMMCC::..              ..''--MMNN;;''..    ..'';;OOMM----"">>..  
  ..>>!!""--NNQQ;;''..  ....::CCMMCC;;''....        ....::--MMNN;;''..    ..'';;QQNN----!!>>    
    >>!!""--NNNN--''..    ..;;CCMMCC--::''............''::""MMNN;;''..    ..''--NNNN----!!>>    
    --!!""--HHMM>>::........::CCMMCC--;;::''''''''''''::;;""MMNN;;''..    ..::>>MMHH--""!!--    
    ::>>""--77MMCC;;''......::CCMM$$""--;;::::::::::::;;--!!MMNN;;''......''::CCMM77--""!!::    
    ''>>!!""!!NNNN;;''....''::CCMM$$!!"";;;;;;;;;;;;;;""""!!MMNN;;''......'';;NNNN!!""!!>>''    
      >>!!""""HHMM>>;;''..''::CCMMHH>>""""------------""!!??MMNN;;''....'';;>>MMHH""""!!>>      
      ::>>!!""??MMQQ--'''''';;CCMMHH>>!!!!""""""""""""!!!!??MMNN;;''....''--QQNN??"""">>::      
      ..>>!!""!!HHMM77;;::'';;CCMMHH77>>>>!!!!!!!!!!!!>>>>77MMNN;;::'''';;CCMMHH!!""!!!!..      
        ::>>""""!!NNMM>>;;;;--CCMMOO77????>>>>>>>>>>>>????77MMNN--;;::;;>>MMNN!!""!!>>::        
          !!!!""""77MMNN!!----$$MMQQCC77??????????????7777CCMMNN""----""NNMM77""""!!!!          
          ''>>!!""""$$MMNN>>!!HHMMQQ$$CCCC777777777777CCCC$$MMNN"""">>NNMM$$""""!!>>''          
            ;;>>!!""!!CCMMMM$$HHMMNNHH$$$$CCCCCCCCCCCC$$$$HHMMNN>>$$MMMMCC!!""!!>>;;            
              -->>!!""!!CCNNMMMMMMNNOOHHHHHHHHHHHHHHHHHHHHOOMMMMOOMMNNCC!!""!!>>--              
                -->>!!""!!??QQMMMMMMNNOOOOOOOOOOOOOOOOOOOONNMMMMMMNN??!!""!!>>--                
                  -->>!!!!!!!!77NNMMMMMMNNNNNNNNNNNNNNNNMMMMMMNNCC!!!!!!!!>>--                  
                    ;;>>!!!!!!!!>>77OONNMMMMMMMMMMMMMMMMNNOO77>>!!!!!!!!!!;;                    
                      ..!!>>!!!!!!!!!!>>77CC$$HHHH$$CC77>>!!!!!!!!!!>>>>..                      
                          ::!!>>>>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>>!!::                          
                              ''"">>>>>>!!!!!!!!!!!!!!!!>>>>!!""''                              
                                  ..''--!!>>>>>>>>>>>>!!--''..