    assert(s->fb);
  
    set_awake(s, true);
  
    s->model_changed = false;
    s->livempc_or_radarstate_changed = false;
  
    ui_nvg_init(s);
  }
  
  static void ui_init_vision(UIState *s, const VisionStreamBufs back_bufs,
                             int num_back_fds, const int *back_fds,
 
</s> remove   if(s->model_changed) {
 </s> add   if(s->sm->updated("model")) { </s> remove   draw_chevron(s, d_rel, y_rel, 25, nvgRGBA(201, 34, 49, fillAlpha), COLOR_YELLOW);
 </s> add   draw_chevron(s, d_rel, lead.getYRel(), 25, nvgRGBA(201, 34, 49, fillAlpha), COLOR_YELLOW); </s> remove   const int img_idx = s->scene.networkType == cereal::ThermalData::NetworkType::NONE ? 0 : network_strength_map[s->scene.networkStrength];
 </s> add   const int img_idx = s->scene.thermal.getNetworkType() == cereal::ThermalData::NetworkType::NONE ? 0 : network_strength_map[s->scene.thermal.getNetworkStrength()]; </s> remove static void draw_lead(UIState *s, float d_rel, float v_rel, float y_rel){
 </s> add static void draw_lead(UIState *s, const cereal::RadarState::LeadData::Reader &lead){ </s> remove   const int face_x = (valid_frame_x + face_size + (bdr_s * 2)) + (scene->is_rhd ? valid_frame_w - box_h / 2:0);
  const int face_y = (box_y + box_h - face_size - bdr_s - (bdr_s * 1.5));
  ui_draw_circle_image(s->vg, face_x, face_y, face_size, s->img_face, scene->face_prob > 0.4);
 </s> add   const int x = (valid_frame_x + face_size + (bdr_s * 2)) + (scene->is_rhd ? valid_frame_w - box_h / 2:0);
  const int y = (box_y + box_h - face_size - bdr_s - (bdr_s * 1.5));
  ui_draw_circle_image(s->vg, x, y, face_size, s->img_face, scene->driver_state.getFaceProb() > 0.4);
    assert(s->fb);
  
    set_awake(s, true);
  



    ui_nvg_init(s);
  }
  
  static void ui_init_vision(UIState *s, const VisionStreamBufs back_bufs,
                             int num_back_fds, const int *back_fds,
keep keep keep keep replace replace replace keep keep keep keep keep
 ui.cc: remove variables from UIScene, use event::Reader to get data  (#1585)

* use struct to store lead status

* remove white space

* use RadarState::LeadData::Reader

* use reader to get thermal data

* use reader

* continue

* remove variables

reset submodules,fix some errors

reset submodules

revert

* remove s->scene.gps_planner_active

* modify

* cleanup

* done

* resolve conflict

* remove irrelevant comment

* remove white space 
selfdrive/ui/ui.cc