anchor.diff:  #BB.index;BB.type;BB.label;File;Subprogram;Line.Begin;Col.Begin;Line.End;Col.End;Exec.Count;Exec.Time.Per;function.call.type;function.call.callees;Successors;Code
   0;exit;;pp_gps_ubx.c;parse_ubx;305;1;305;1;0;0;0;;;""
   1;node;restart;pp_gps_ubx.c;parse_ubx;303;3;304;9;0;0;0;;0;" ubx_status = 0; return;;"
  +2;virtual node;error;;parse_ubx;0;0;0;0;0;0;0;;1;""
   3;node;;pp_gps_ubx.c;parse_ubx;300;3;300;9;0;0;0;;0;" return;;"
   4;node;;pp_gps_ubx.c;parse_ubx;246;11;246;21;0;0;0;;8,11,14,17,18,19,22,25,28,3;" ubx_status (ImplicitCastExpr, IntegralCast, int);"
  +5;virtual node;;pp_gps_ubx.c;parse_ubx;298;5;298;10;0;0;0;;3;""
   6;node;;pp_gps_ubx.c;parse_ubx;296;5;296;28;0;0;0;;1;" gps_msg_received = (!0);"
  -8;node;case 8;pp_gps_ubx.c;parse_ubx;294;9;294;18;0;0;0;;6;" c != ck_b;"
  +7;virtual node;;pp_gps_ubx.c;parse_ubx;295;7;295;17;0;0;0;;2;""
  +8;node;case 8;pp_gps_ubx.c;parse_ubx;294;9;294;18;0;0;0;;7,6;" c != ck_b;"
   9;node;;pp_gps_ubx.c;parse_ubx;291;5;291;17;0;0;0;;3;" ubx_status++;"
  -11;node;case 7;pp_gps_ubx.c;parse_ubx;289;9;289;18;0;0;0;;9;" c != ck_a;"
  -13;node;;pp_gps_ubx.c;parse_ubx;285;7;285;19;0;0;0;;3;" ubx_status++;"
  -14;node;case 6;pp_gps_ubx.c;parse_ubx;282;5;284;31;0;0;0;;13,3;" ubx_msg_buf[ubx_msg_idx] = c; ubx_msg_idx++; ubx_msg_idx >= ubx_len;"
  +10;virtual node;;pp_gps_ubx.c;parse_ubx;290;7;290;17;0;0;0;;2;""
  +11;node;case 7;pp_gps_ubx.c;parse_ubx;289;9;289;18;0;0;0;;10,9;" c != ck_a;"
  +12;virtual node;;pp_gps_ubx.c;parse_ubx;287;5;287;10;0;0;0;;3;""
  +13;node;;pp_gps_ubx.c;parse_ubx;285;7;285;19;0;0;0;;12;" ubx_status++;"
  +14;node;case 6;pp_gps_ubx.c;parse_ubx;282;5;284;31;0;0;0;;13,12;" ubx_msg_buf[ubx_msg_idx] = c; ubx_msg_idx++; ubx_msg_idx >= ubx_len;"
   15;node;;pp_gps_ubx.c;parse_ubx;278;5;279;17;0;0;0;;3;" ubx_msg_idx = 0; ubx_status++;"
  -17;node;case 5;pp_gps_ubx.c;parse_ubx;275;5;276;22;0;0;0;;15;" ubx_len |= (c << 8); ubx_len > 255;"
  +16;virtual node;;pp_gps_ubx.c;parse_ubx;277;7;277;17;0;0;0;;2;""
  +17;node;case 5;pp_gps_ubx.c;parse_ubx;275;5;276;22;0;0;0;;16,15;" ubx_len |= (c << 8); ubx_len > 255;"
   18;node;case 4;pp_gps_ubx.c;parse_ubx;271;5;272;17;0;0;0;;3;" ubx_len = c; ubx_status++;"
   19;node;case 3;pp_gps_ubx.c;parse_ubx;267;5;268;17;0;0;0;;3;" ubx_id = c; ubx_status++;"
   20;node;;pp_gps_ubx.c;parse_ubx;263;5;264;17;0;0;0;;3;" ubx_class = c; ubx_status++;"
  -21;node;;pp_gps_ubx.c;parse_ubx;260;7;260;20;0;0;0;;1;" gps_nb_ovrn++;"
  +21;node;;pp_gps_ubx.c;parse_ubx;260;7;260;20;0;0;0;;2;" gps_nb_ovrn++;"
   22;node;case 2;pp_gps_ubx.c;parse_ubx;259;9;259;25;0;0;0;;21,20;" gps_msg_received (ImplicitCastExpr, LValueToRValue, bool_t);"
   23;node;;pp_gps_ubx.c;parse_ubx;254;5;256;17;0;0;0;;3;" ck_a = 0; ck_b = 0; ubx_status++;"
  -25;node;case 1;pp_gps_ubx.c;parse_ubx;252;9;252;18;0;0;0;;23;" c != 98;"
  -27;node;;pp_gps_ubx.c;parse_ubx;249;7;249;19;0;0;0;;3;" ubx_status++;"
  -28;node;case 0;pp_gps_ubx.c;parse_ubx;248;9;248;18;0;0;0;;27,3;" c == 181;"
  +24;virtual node;;pp_gps_ubx.c;parse_ubx;253;7;253;17;0;0;0;;2;""
  +25;node;case 1;pp_gps_ubx.c;parse_ubx;252;9;252;18;0;0;0;;24,23;" c != 98;"
  +26;virtual node;;pp_gps_ubx.c;parse_ubx;250;5;250;10;0;0;0;;3;""
  +27;node;;pp_gps_ubx.c;parse_ubx;249;7;249;19;0;0;0;;26;" ubx_status++;"
  +28;node;case 0;pp_gps_ubx.c;parse_ubx;248;9;248;18;0;0;0;;27,26;" c == 181;"
   29;node;;pp_gps_ubx.c;parse_ubx;243;5;244;17;0;0;0;;4;" ck_a += c; ck_b += ck_a;"
   30;node;;pp_gps_ubx.c;parse_ubx;242;7;242;21;0;0;0;;29,4;" ubx_status < 7;"
   31;entry;;pp_gps_ubx.c;parse_ubx;241;44;241;44;0;0;0;;30;""
  
positive.code: 71;node;;pp_main.c;ground_calibrate;332;32;332;64;0;0;0;;70;" 20 < (255 - (tx_head - tx_tail));"
  72;node;;pp_main.c;ground_calibrate;332;67;332;91;0;0;0;;70;" 20 < (tx_tail - tx_head);"
  73;node;;pp_main.c;ground_calibrate;330;7;332;30;0;0;1;ir_gain_calib;71,72;" ir_gain_calib(); estimator_rad_of_ir = ir_rad_of_ir; tx_head >= tx_tail;"
  74;node;;pp_main.c;ground_calibrate;329;54;329;85;0;0;0;;73,0;" from_fbw.channels[1] > 200 * 16;"
  75;node;case 1;pp_main.c;ground_calibrate;329;10;329;50;0;0;0;;73,74;" from_fbw.channels[1] < (-(600 * 16) / 2);"
  77;node;;pp_main.c;ground_calibrate;325;774;325;789;0;0;0;;0;" modem_nb_ovrn++;"
  78;node;;pp_main.c;ground_calibrate;325;567;325;757;0;0;0;;0;" (*(volatile uint8_t *)(((uint16_t)&((*(volatile uint8_t *)((56) + 32)))))) |= (1 << (0)); (*(volatile uint8_t *)(((uint16_t)&((*(volatile uint8_t *)((57) + 32)))))) |= (1 << (4));"
  79;node;;pp_main.c;ground_calibrate;325;551;325;562;0;0;0;;78;" tx_tail = 0;"
  80;node;;pp_main.c;ground_calibrate;325;475;325;548;0;0;0;;79,78;" tx_byte = tx_buf[tx_tail]; tx_byte_idx = 0; tx_tail++; tx_tail >= 255;"
  81;node;;pp_main.c;ground_calibrate;325;415;325;469;0;0;0;;80,0;" !((*(volatile uint8_t *)((57) + 32)) & (1 << (4)));"
  82;node;;pp_main.c;ground_calibrate;325;393;325;404;0;0;0;;81;" tx_head = 0;"
  83;node;;pp_main.c;ground_calibrate;325;338;325;391;0;0;0;;82,81;" tx_buf[tx_head] = ck_b; tx_head++; tx_head >= 255;"
  84;node;;pp_main.c;ground_calibrate;325;320;325;331;0;0;0;;83;" tx_head = 0;"
  
negative.code: 10;node;;pp_nav.c;auto_nav;383;29;383;32;0;0;0;;9;" 180;"
  11;node;;pp_nav.c;auto_nav;383;35;383;38;0;0;0;;9;" 350;"
  12;node;;pp_nav.c;auto_nav;383;17;383;26;0;0;0;;10,11;" 180 < 350;"
  13;virtual node;;;auto_nav;0;0;0;0;0;0;0;;15;""
  14;node;;pp_nav.c;auto_nav;382;386;382;396;0;0;0;;13;" qdr -= 360;"
  15;node;;pp_nav.c;auto_nav;382;374;382;384;0;0;0;;14,12;" qdr >= 360;"
  16;virtual node;;;auto_nav;0;0;0;0;0;0;0;;18;""
  17;node;;pp_nav.c;auto_nav;382;355;382;365;0;0;0;;16;" qdr += 360;"
  18;node;;pp_nav.c;auto_nav;382;346;382;353;0;0;0;;17,15;" qdr < 0;"
  19;node;case 2;pp_nav.c;auto_nav;376;17;382;335;0;0;1;atan2,fly_to_xy,cos,fabs,sin,fabs;18;" nav_stage = 2; auto_pitch = 0; nav_pitch = 0.; vertical_mode = 3; desired_altitude = waypoints[4].a; pre_climb = 0.; atan2(estimator_y - waypoints[4].y, estimator_x - waypoints[4].x); float alpha = atan2(estimator_y - waypoints[4].y, estimator_x - waypoints[4].x);; float alpha_carrot = alpha + 5. / -100 * estimator_hspeed_mod;; cos(alpha_carrot); fabs(100); sin(alpha_carrot); fabs(100); fly_to_xy(waypoints[4].x + [B19.10] * [B19.11], waypoints[4].y + [B19.12] * [B19.13]); qdr = ((3.1415926535897931 / 2 - alpha_carrot) / 3.1415926535897931 * 180.);"
  20;node;;pp_nav.c;auto_nav;375;11;375;17;0;0;0;;0;" return;;"
  