,gg,                                                                          ,ggg,        gg                                            
   i8""8i                             ,dPYb,                                     dP""Y8b       88              ,dPYb,           ,dPYb, ,dPYb,
   `8,,8'                             IP'`Yb                                     Yb, `88       88              IP'`Yb           IP'`Yb IP'`Yb
    `Y88aaad8                         I8  8I                                      `"  88       88              I8  8I      gg   I8  8I I8  8I
     d8""""Y8,                        I8  8'                                          88aaaaaaa88              I8  8bgg,   ""   I8  8' I8  8'
    ,8P     8b  ,gggggg,    ,gggg,gg  I8 dPgg,     ,gggg,gg   ,ggg,,ggg,,ggg,         88"""""""88  gg      gg  I8 dP" "8   gg   I8 dP  I8 dP 
    dP      Y8  dP""""8I   dP"  "Y8I  I8dP" "8I   dP"  "Y8I  ,8" "8P" "8P" "8,        88       88  I8      8I  I8d8bggP"   88   I8dP   I8dP  
_ ,dP'      I8 ,8'    8I  i8'    ,8I  I8P    I8  i8'    ,8I  I8   8I   8I   8I        88       88  I8,    ,8I  I8P' "Yb,   88   I8P    I8P   
"888,,_____,dP,dP     Y8,,d8,   ,d8b,,d8     I8,,d8,   ,d8b,,dP   8I   8I   Yb,       88       Y8,,d8b,  ,d8b,,d8    `Yb,_,88,_,d8b,_ ,d8b,_ 
a8P"Y888888P" 8P      `Y8P"Y8888P"`Y888P     `Y8P"Y8888P"`Y88P'   8I   8I   `Y8       88       `Y88P'"Y88P"`Y888P      Y88P""Y88P'"Y888P'"Y88