dP            oo                                 
                             88                                               
.d8888b. dP    dP .d8888b. d8888P 88d888b. dP .d8888b.    88d8b.d8b. .d8888b. 
88'  `88 88    88 Y8ooooo.   88   88'  `88 88 88'  `88    88'`88'`88 Y8ooooo. 
88.  .88 88.  .88       88   88   88       88 88.  .88 dP 88  88  88       88 
`88888P8 `88888P' `88888P'   dP   dP       dP `88888P8 88 dP  dP  dP `88888P'