        fillAlpha += 255*(-1*(v_rel/speedBuff));
      }
      fillAlpha = (int)(fmin(fillAlpha, 255));
    }
    draw_chevron(s, d_rel, y_rel, 25, nvgRGBA(201, 34, 49, fillAlpha), COLOR_YELLOW);
  }
  
  static void ui_draw_lane_line(UIState *s, const model_path_vertices_data *pvd, NVGcolor color) {
    nvgBeginPath(s->vg);
    bool started = false;
 
</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   s->model_changed = false;
  s->livempc_or_radarstate_changed = false;

 </s> add  </s> remove   if(s->model_changed) {
 </s> add   if(s->sm->updated("model")) { </s> remove           s->alert_blinking_alpha -= (0.05*scene.alert_blinkingrate);
 </s> add           s->alert_blinking_alpha -= (0.05*alert_blinkingrate);
  draw_chevron(s, d_rel, lead.getYRel(), 25, nvgRGBA(201, 34, 49, fillAlpha), COLOR_YELLOW);
        fillAlpha += 255*(-1*(v_rel/speedBuff));
      }
      fillAlpha = (int)(fmin(fillAlpha, 255));
    }
  draw_chevron(s, d_rel, lead.getYRel(), 25, nvgRGBA(201, 34, 49, fillAlpha), COLOR_YELLOW);
  }
  
  static void ui_draw_lane_line(UIState *s, const model_path_vertices_data *pvd, NVGcolor color) {
    nvgBeginPath(s->vg);
    bool started = false;
keep keep keep keep 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/paint.cc