888  888  888  .d88b.      8888b.  888d888 .d88b.  
888  888  888 d8P  Y8b        "88b 888P"  d8P  Y8b 
888  888  888 88888888    .d888888 888    88888888 
Y88b 888 d88P Y8b.        888  888 888    Y8b.     
 "Y8888888P"   "Y8888     "Y888888 888     "Y8888 

                                            d8b 888                 
                                            Y8P 888                 
                                                888                 
.d8888b   .d88b.   .d8888b 888  888 888d888 888 888888 888  888     
88K      d8P  Y8b d88P"    888  888 888P"   888 888    888  888     
"Y8888b. 88888888 888      888  888 888     888 888    888  888     
     X88 Y8b.     Y88b.    Y88b 888 888     888 Y88b.  Y88b 888 d8b 
 88888P'  "Y8888   "Y8888P  "Y88888 888     888  "Y888  "Y88888 88P 
                                                            888 8P  
                                                       Y8b d88P "   
                                                        "Y88P"      
                           .d888                   888      
                          d88P"                    888      
                          888                      888      
888  888  888  .d88b.     888888 888  888  .d8888b 888  888 
888  888  888 d8P  Y8b    888    888  888 d88P"    888 .88P 
888  888  888 88888888    888    888  888 888      888888K  
Y88b 888 d88P Y8b.        888    Y88b 888 Y88b.    888 "88b 
 "Y8888888P"   "Y8888     888     "Y88888  "Y8888P 888  888 

                                            888    888      d8b          
                                            888    888      Y8P          
                                            888    888                   
 .d88b.  888  888  .d88b.  888d888 888  888 888888 88888b.  888 88888b.   .d88b.  
d8P  Y8b 888  888 d8P  Y8b 888P"   888  888 888    888 "88b 888 888 "88b d88P"88b 
88888888 Y88  88P 88888888 888     888  888 888    888  888 888 888  888 888  888 
Y8b.      Y8bd8P  Y8b.     888     Y88b 888 Y88b.  888  888 888 888  888 Y88b 888 
 "Y8888    Y88P    "Y8888  888      "Y88888  "Y888 888  888 888 888  888  "Y88888 
                                        888                                   888 
                                   Y8b d88P                              Y8b d88P 
                                    "Y88P"                                "Y88P"