<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def draw(self, surf):
        '''
        Draw all widgets and sub-containers to @surf.
        '''
        if self.shown:
            for w in self.widgets:
                surf.blit(w.image, self.convert_rect(w.rect))
            for c in self.containers:
                c.draw(surf)