The dark knight rises tops box office