      CarInterface = __import__(path + '.interface', fromlist=['CarInterface']).CarInterface
      if os.path.exists(BASEDIR + '/' + path.replace('.', '/') + '/carcontroller.py'):
        CarController = __import__(path + '.carcontroller', fromlist=['CarController']).CarController
      else:
        CarController = None
        CarState = None
      for model_name in brand_names[brand_name]:
        ret[model_name] = (CarInterface, CarController, CarState)
 
</s> remove       ret[model_name] = (CarInterface, CarController)
 </s> add       ret[model_name] = (CarInterface, CarController, CarState) </s> remove   CarInterface, CarController = interfaces[candidate]
 </s> add   CarInterface, CarController, CarState = interfaces[candidate] </s> remove   def __init__(self, CP, CarController):
    super().__init__(CP, CarController, CarState, get_mqb_pt_can_parser, get_mqb_cam_can_parser)
 </s> add   def __init__(self, CP, CarController, CarState):
    super().__init__(CP, CarController, CarState) </s> remove def get_can_parser(CP):
  signals, checks = get_can_signals(CP)
  bus_pt = 1 if CP.isPandaBlack and CP.carFingerprint in HONDA_BOSCH else 0
  return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, bus_pt)


def get_cam_can_parser(CP):
  signals = []

  if CP.carFingerprint in HONDA_BOSCH:
    signals += [("ACCEL_COMMAND", "ACC_CONTROL", 0),
                ("AEB_STATUS", "ACC_CONTROL", 0)]
  else:
    signals += [("COMPUTER_BRAKE", "BRAKE_COMMAND", 0),
                ("AEB_REQ_1", "BRAKE_COMMAND", 0),
                ("FCW", "BRAKE_COMMAND", 0),
                ("CHIME", "BRAKE_COMMAND", 0),
                ("FCM_OFF", "ACC_HUD", 0),
                ("FCM_OFF_2", "ACC_HUD", 0),
                ("FCM_PROBLEM", "ACC_HUD", 0),
                ("ICONS", "ACC_HUD", 0)]


  # all hondas except CRV, RDX and 2019 Odyssey@China use 0xe4 for steering
  checks = [(0xe4, 100)]
  if CP.carFingerprint in [CAR.CRV, CAR.ACURA_RDX, CAR.ODYSSEY_CHN]:
    checks = [(0x194, 100)]

  bus_cam = 1 if CP.carFingerprint in HONDA_BOSCH  and not CP.isPandaBlack else 2
  return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, bus_cam)

 </s> add 
      CarState = __import__(path + '.carstate', fromlist=['CarState']).CarState
      CarInterface = __import__(path + '.interface', fromlist=['CarInterface']).CarInterface
      if os.path.exists(BASEDIR + '/' + path.replace('.', '/') + '/carcontroller.py'):
        CarController = __import__(path + '.carcontroller', fromlist=['CarController']).CarController
      CarState = __import__(path + '.carstate', fromlist=['CarState']).CarState
      else:
        CarController = None
        CarState = None
      for model_name in brand_names[brand_name]:
        ret[model_name] = (CarInterface, CarController, CarState)
keep keep add keep keep keep keep keep
 get_can_parser and get_cam_can_parser are now standard static methods (#1136) 
selfdrive/car/car_helpers.py