Submit offline reports using the enabled methods (SMTP and/or HQ)
        Returns a tuple of (N sent reports, N remaining reports)

def submit_offline_reports(self):
        """
        Submit offline reports using the enabled methods (SMTP and/or HQ)
        Returns a tuple of (N sent reports, N remaining reports)
        """
        smtp_enabled = bool(self._smtp)
        hq_enabled = bool(self._hq)
        offline_reports = self.get_offline_reports()
        logging.info('Submitting %d offline crash reports' % len(offline_reports))
        offline_reports = offline_reports[:self.send_at_most]

        if smtp_enabled:
            try:
                smtp_success = self._smtp_send_offline_reports(*offline_reports)
            except Exception as e:
                logging.error(e)
                smtp_success = [False] * len(offline_reports)
        else:
            smtp_success = [True] * len(offline_reports)

        if hq_enabled:
            try:
                hq_success = self._hq_send_offline_reports(*offline_reports)
            except Exception as e:
                logging.error(e)
                hq_success = [False] * len(offline_reports)
        else:
            hq_success = [True] * len(offline_reports)

        remaining_reports = self.delete_offline_reports()
        success = [s1 and s2 for (s1, s2) in zip(smtp_success, hq_success)]
        logging.info('%d crash reports successfully submitted' % success.count(True))
        logging.info('%d crash reports remain to be submitted' % len(remaining_reports))
        return all(success)