888                             888                                      
888                             888                                      
888                             888                                      
88888b. 888  888 .d88b. .d8888b 88888b. 888  88888888b. 88888b. 888  888 
888 "88b888  888d88P"88b88K     888 "88b888  888888 "88b888 "88b888  888 
888  888888  888888  888"Y8888b.888  888888  888888  888888  888888  888 
888 d88PY88b 888Y88b 888     X88888 d88PY88b 888888  888888  888Y88b 888 
88888P"  "Y88888 "Y88888 88888P'88888P"  "Y88888888  888888  888 "Y88888 
                     888                                             888 
                Y8b d88P                                        Y8b d88P 
                 "Y88P"                                          "Y88P"