Index: /branches/BNC_2.12/src/RTCM3/RTCM3coDecoder.cpp
===================================================================
--- /branches/BNC_2.12/src/RTCM3/RTCM3coDecoder.cpp	(revision 8627)
+++ /branches/BNC_2.12/src/RTCM3/RTCM3coDecoder.cpp	(revision 8628)
@@ -687,15 +687,15 @@
       case CODETYPEGPS_L1_P:          return "1P";
       case CODETYPEGPS_L1_Z:          return "1W";
-      //case CODETYPEGPS_L1_Y:          return "1Y";
-      //case CODETYPEGPS_L1_M:          return "1M";
+      case CODETYPEGPS_L1_Y:          return "1Y";
+      case CODETYPEGPS_L1_M:          return "1M";
       case CODETYPEGPS_L2_CA:         return "2C";
       case CODETYPEGPS_SEMI_CODELESS: return "2D";
-      case CODETYPEGPS_L2_CM:         return "2S";
-      case CODETYPEGPS_L2_CL:         return "2L";
-      case CODETYPEGPS_L2_CML:        return "2X";
+      case CODETYPEGPS_L2C_M:         return "2S";
+      case CODETYPEGPS_L2C_L:         return "2L";
+      case CODETYPEGPS_L2C_ML:        return "2X";
       case CODETYPEGPS_L2_P:          return "2P";
       case CODETYPEGPS_L2_Z:          return "2W";
-      //case CODETYPEGPS_L2_Y:          return "2Y";
-      //case CODETYPEGPS_L2_M:          return "2M";
+      case CODETYPEGPS_L2_Y:          return "2Y";
+      case CODETYPEGPS_L2_M:          return "2M";
       case CODETYPEGPS_L5_I:          return "5I";
       case CODETYPEGPS_L5_Q:          return "5Q";
@@ -713,4 +713,10 @@
       case CODETYPEGLONASS_L2_CA:     return "2C";
       case CODETYPEGLONASS_L2_P:      return "2P";
+      case CODETYPEGLONASS_L1a_OCd:   return "4A";
+      case CODETYPEGLONASS_L1a_OCp:   return "4B";
+      case CODETYPEGLONASS_L1a_OCdp:  return "4X";
+      case CODETYPEGLONASS_L2a_CSI:   return "6A";
+      case CODETYPEGLONASS_L2a_OCp:   return "6B";
+      case CODETYPEGLONASS_L2a_CSIOCp:return "6X";
       case CODETYPEGLONASS_L3_I:      return "3I";
       case CODETYPEGLONASS_L3_Q:      return "3Q";
@@ -748,5 +754,4 @@
       case CODETYPEQZSS_L1C_D:         return "1S";
       case CODETYPEQZSS_L1C_P:         return "1L";
-      case CODETYPEQZSS_L1C_DP:        return "1X";
       case CODETYPEQZSS_L2C_M:         return "2S";
       case CODETYPEQZSS_L2C_L:         return "2L";
@@ -755,7 +760,14 @@
       case CODETYPEQZSS_L5_Q:          return "5Q";
       case CODETYPEQZSS_L5_IQ:         return "5X";
-      case CODETYPEQZSS_LEX_S:         return "6S";
-      case CODETYPEQZSS_LEX_L:         return "6L";
-      case CODETYPEQZSS_LEX_SL:        return "6X";
+      case CODETYPEQZSS_L6_D:          return "6S";
+      case CODETYPEQZSS_L6_P:          return "6L";
+      case CODETYPEQZSS_L6_DP:         return "6X";
+      case CODETYPEQZSS_L1C_DP:        return "1X";
+      case CODETYPEQZSS_L1_S:          return "1Z";
+      case CODETYPEQZSS_L5_D:          return "5D";
+      case CODETYPEQZSS_L5_P:          return "5P";
+      case CODETYPEQZSS_L5_DP:         return "5Z";
+      case CODETYPEQZSS_L6_E:          return "6E";
+      case CODETYPEQZSS_L6_DE:         return "6Z";
       default: return "";
     }
@@ -775,10 +787,16 @@
       case CODETYPE_BDS_B1_Q:         return "2Q";
       case CODETYPE_BDS_B1_IQ:        return "2X";
+      case CODETYPE_BDS_B3_I:         return "6I";
+      case CODETYPE_BDS_B3_Q:         return "6Q";
+      case CODETYPE_BDS_B3_IQ:        return "6X";
       case CODETYPE_BDS_B2_I:         return "7I";
       case CODETYPE_BDS_B2_Q:         return "7Q";
       case CODETYPE_BDS_B2_IQ:        return "7X";
-      case CODETYPE_BDS_B3_I:         return "6I";
-      case CODETYPE_BDS_B3_Q:         return "6Q";
-      case CODETYPE_BDS_B3_IQ:        return "6X";
+      case CODETYPE_BDS_B1a_D:        return "1D";
+      case CODETYPE_BDS_B1a_P:        return "1P";
+      case CODETYPE_BDS_B1a_DP:       return "1X";
+      case CODETYPE_BDS_B2a_D:        return "2D";
+      case CODETYPE_BDS_B2a_P:        return "2P";
+      case CODETYPE_BDS_B2a_DP:       return "2X";
       default: return "";
     }
Index: /branches/BNC_2.12/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.h
===================================================================
--- /branches/BNC_2.12/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.h	(revision 8627)
+++ /branches/BNC_2.12/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.h	(revision 8628)
@@ -144,15 +144,15 @@
   CODETYPEGPS_L1_P           = 1,
   CODETYPEGPS_L1_Z           = 2,
-  /*CODETYPEGPS_L1_Y         = 3,
-  CODETYPEGPS_L1_M           = 4,*/
+  CODETYPEGPS_L1_Y           = 3,
+  CODETYPEGPS_L1_M           = 4,
   CODETYPEGPS_L2_CA          = 5,
   CODETYPEGPS_SEMI_CODELESS  = 6,
-  CODETYPEGPS_L2_CM          = 7,
-  CODETYPEGPS_L2_CL          = 8,
-  CODETYPEGPS_L2_CML         = 9,
+  CODETYPEGPS_L2C_M          = 7,
+  CODETYPEGPS_L2C_L          = 8,
+  CODETYPEGPS_L2C_ML         = 9,
   CODETYPEGPS_L2_P           = 10,
   CODETYPEGPS_L2_Z           = 11,
-  /*CODETYPEGPS_L2_Y         = 12,
-  CODETYPEGPS_L2_M           = 13,*/
+  CODETYPEGPS_L2_Y           = 12,
+  CODETYPEGPS_L2_M           = 13,
   CODETYPEGPS_L5_I           = 14,
   CODETYPEGPS_L5_Q           = 15,
@@ -166,7 +166,14 @@
   CODETYPEGLONASS_L2_CA      = 2,
   CODETYPEGLONASS_L2_P       = 3,
-  CODETYPEGLONASS_L3_I       = 4,
-  CODETYPEGLONASS_L3_Q       = 5,
-  CODETYPEGLONASS_L3_IQ      = 6,
+  CODETYPEGLONASS_L1a_OCd    = 4,
+  CODETYPEGLONASS_L1a_OCp    = 5,
+  CODETYPEGLONASS_L1a_OCdp   = 6,
+  CODETYPEGLONASS_L2a_CSI    = 7,
+  CODETYPEGLONASS_L2a_OCp    = 8,
+  CODETYPEGLONASS_L2a_CSIOCp = 9,
+  CODETYPEGLONASS_L3_I       = 10,
+  CODETYPEGLONASS_L3_Q       = 11,
+  CODETYPEGLONASS_L3_IQ      = 12,
+
 
   CODETYPEGALILEO_E1_A       = 0,
@@ -199,8 +206,14 @@
   CODETYPEQZSS_L5_Q          = 7,
   CODETYPEQZSS_L5_IQ         = 8,
-  CODETYPEQZSS_LEX_S         = 9,
-  CODETYPEQZSS_LEX_L         = 10,
-  CODETYPEQZSS_LEX_SL        = 11,
+  CODETYPEQZSS_L6_D          = 9,
+  CODETYPEQZSS_L6_P          = 10,
+  CODETYPEQZSS_L6_DP         = 11,
   CODETYPEQZSS_L1C_DP        = 12,
+  CODETYPEQZSS_L1_S          = 13,
+  CODETYPEQZSS_L5_D          = 14,
+  CODETYPEQZSS_L5_P          = 15,
+  CODETYPEQZSS_L5_DP         = 16,
+  CODETYPEQZSS_L6_E          = 17,
+  CODETYPEQZSS_L6_DE         = 18,
 
   CODETYPE_SBAS_L1_CA        = 0,
@@ -218,4 +231,10 @@
   CODETYPE_BDS_B2_Q          = 7,
   CODETYPE_BDS_B2_IQ         = 8,
+  CODETYPE_BDS_B1a_D         = 9,
+  CODETYPE_BDS_B1a_P         = 10,
+  CODETYPE_BDS_B1a_DP        = 11,
+  CODETYPE_BDS_B2a_D         = 12,
+  CODETYPE_BDS_B2a_P         = 13,
+  CODETYPE_BDS_B2a_DP        = 14
 };
 
Index: /branches/BNC_2.12/src/bncconst.cpp
===================================================================
--- /branches/BNC_2.12/src/bncconst.cpp	(revision 8627)
+++ /branches/BNC_2.12/src/bncconst.cpp	(revision 8628)
@@ -35,7 +35,15 @@
 double t_CST::freq(t_frequency::type fType, int slotNum) {
   switch (fType) {
+  // GPS
   case t_frequency::G1:    return 1575420000.0;
   case t_frequency::G2:    return 1227600000.0;
   case t_frequency::G5:    return 1176450000.0;
+  // GLONASS
+  case t_frequency::R1:    return 1602000000.0 + 562500.0 * slotNum;
+  case t_frequency::R4:    return 1600995000.0;
+  case t_frequency::R2:    return 1246000000.0 + 437500.0 * slotNum;
+  case t_frequency::R6:    return 1248060000.0;
+  case t_frequency::R3:    return 1202025000.0;
+  // Galileo
   case t_frequency::E1:    return 1575420000.0;
   case t_frequency::E5:    return 1176450000.0;
@@ -43,17 +51,23 @@
   case t_frequency::E8:    return 1191795000.0;
   case t_frequency::E6:    return 1278750000.0;
-  case t_frequency::R1:    return 1602000000.0 + 562500.0 * slotNum;
-  case t_frequency::R2:    return 1246000000.0 + 437500.0 * slotNum;
+  // SBAS
+  case t_frequency::S1:    return 1575420000.0;
+  case t_frequency::S5:    return 1176450000.0;
+  // QZSS
   case t_frequency::J1:    return 1575420000.0;
   case t_frequency::J2:    return 1227600000.0;
   case t_frequency::J5:    return 1176450000.0;
   case t_frequency::J6:    return 1278750000.0;
-  case t_frequency::S1:    return 1575420000.0;
-  case t_frequency::S5:    return 1176450000.0;
+  // BDS
   case t_frequency::C2:    return 1561098000.0;
+  case t_frequency::C1:    return 1575420000.0;
+  case t_frequency::C5:    return 1176450000.0;
   case t_frequency::C7:    return 1207140000.0;
+  case t_frequency::C8:    return 1191795000.0;
   case t_frequency::C6:    return 1268520000.0;
+  // IRNSS
   case t_frequency::I5:    return 1176450000.0;
   case t_frequency::I9:    return 2492028000.0;
+  //
   case t_frequency::dummy:
   case t_frequency::max:   return 0.0;
Index: /branches/BNC_2.12/src/bncconst.h
===================================================================
--- /branches/BNC_2.12/src/bncconst.h	(revision 8627)
+++ /branches/BNC_2.12/src/bncconst.h	(revision 8628)
@@ -32,29 +32,53 @@
 class t_frequency {
  public:
-  enum type {dummy = 0, G1, G2, G5, R1, R2, 
-                        E1, // E1  / 1575.42          
-                        E5, // E5a / 1176.45          
-                        E7, // E5b / 1207.140         
-                        E8, // E5(E5a+E5b) / 1191.795 
+ enum type {dummy = 0,
+                        // GPS
+                        G1, // L1 / 1575.42
+                        G2, // L2 / 1227.60
+                        G5, // L5 / 1176.45
+                        // GLONASS
+                        R1, // G1  / 1602 + k * 9/16 (k = -7 .. +12)
+                        R4, // G1a / 1600.995
+                        R2, // G2  / 1246 + k * 7/16 (k = -7 .. +12)
+                        R6, // G1b / 1248.06
+                        R3, // G3  / 1202.025
+                        // Galileo
+                        E1, // E1  / 1575.42
+                        E5, // E5a / 1176.45
+                        E7, // E5b / 1207.140
+                        E8, // E5(E5a+E5b) / 1191.795
                         E6, // E6  / 1278.75
-                        J1, // 1575.42
-                        J2, // 1227.60
-                        J5, // 1176.45
-                        J6, // Lex(6) 1278.75
-                        S1, // 1575.42
-                        S5, // 1176.45
-                        C2, // 1561.098
-                        C7, // 1207.14
-                        C6, // 1268.52
-                        I5, // 1176.45
-                        I9, // 2492.028                        
+                        // QZSS
+                        J1, // L1 / 1575.42
+                        J2, // L2 / 1227.60
+                        J5, // L5 / 1176.45
+                        J6, // L6 / 1278.75
+                        // BDS
+                        C2, // B1-2 / 1561.098
+                        C1, // B1   / 1575.42 (BDS-3 signals)
+                        C5, // B2a  / 1176.45 (BDS-3 signals)
+                        C7, // B2b  / 1207.14 (BDS-2 signals)
+                        C8, // B2 (B2a + B2b) / 1191.795 (BDS-3 signals)
+                        C6, // B3   / 1268.52
+                        // IRNSS
+                        I5, // L5 / 1176.45
+                        I9, // S  / 2492.028
+                        // SBAS
+                        S1, // L1 / 1575.42
+                        S5, // L5 / 1176.45
              max};
 
   static std::string toString(type tt) {
+    // GPS
     if      (tt == G1) return "G1";
     else if (tt == G2) return "G2";
     else if (tt == G5) return "G5";
+    // GLONASS
     else if (tt == R1) return "R1";
+    else if (tt == R4) return "R4";
     else if (tt == R2) return "R2";
+    else if (tt == R6) return "R6";
+    else if (tt == R3) return "R3";
+    // Galileo
     else if (tt == E1) return "E1";
     else if (tt == E5) return "E5";
@@ -62,23 +86,34 @@
     else if (tt == E7) return "E7";
     else if (tt == E8) return "E8";
+    // QZSS
     else if (tt == J1) return "J1";
     else if (tt == J2) return "J2";
     else if (tt == J5) return "J5";
     else if (tt == J6) return "J6";
+    // BDS
+    else if (tt == C2) return "C2";
+    else if (tt == C1) return "C1";
+    else if (tt == C5) return "C5";
+    else if (tt == C7) return "C7";
+    else if (tt == C8) return "C8";
+    else if (tt == C6) return "C6";
+    // IRNSS
+    else if (tt == I5) return "I5";
+    else if (tt == I9) return "I9";
+    // SBAS
     else if (tt == S1) return "S1";
     else if (tt == S5) return "S5";
-    else if (tt == C2) return "C2";
-    else if (tt == C7) return "C7";
-    else if (tt == C6) return "C6";
-    else if (tt == I5) return "I5";
-    else if (tt == I9) return "I9";    
     return std::string();
   }
   static enum type toInt(std::string s) {
+    // GPS
     if      (s == "G1") return G1;
     else if (s == "G2") return G2;
     else if (s == "G5") return G5;
+    // GLONASS
     else if (s == "R1") return R1;
     else if (s == "R2") return R2;
+    else if (s == "R3") return R3;
+    // Galileo
     else if (s == "E1") return E1;
     else if (s == "E5") return E5;
@@ -86,15 +121,22 @@
     else if (s == "E7") return E7;
     else if (s == "E8") return E8;
+    // QZSS
     else if (s == "J1") return J1;
     else if (s == "J2") return J2;
     else if (s == "J5") return J5;
     else if (s == "J6") return J6;
+    // BDS
+    else if (s == "C2") return C2;
+    else if (s == "C1") return C1;
+    else if (s == "C5") return C5;
+    else if (s == "C7") return C7;
+    else if (s == "C8") return C8;
+    else if (s == "C6") return C6;
+    // IRNSS
+    else if (s == "I5") return I5;
+    else if (s == "I9") return I9;
+    // SBAS
     else if (s == "S1") return S1;
     else if (s == "S5") return S5;
-    else if (s == "C2") return C2;
-    else if (s == "C7") return C7;
-    else if (s == "C6") return C6;
-    else if (s == "I5") return I5;
-    else if (s == "I9") return I9;
     return type();
   }
Index: /branches/BNC_2.12/src/rinex/rnxobsfile.cpp
===================================================================
--- /branches/BNC_2.12/src/rinex/rnxobsfile.cpp	(revision 8627)
+++ /branches/BNC_2.12/src/rinex/rnxobsfile.cpp	(revision 8628)
@@ -334,16 +334,19 @@
 
     _obsTypes['J'] << "C1C" << "L1C"  << "S1C"
-                   << "C1S" << "L1S"  << "S1S"
-                   << "C1L" << "L1L"  << "S1L"
+                   << "C1Z" << "L1Z"  << "S1Z"
                    << "C1X" << "L1X"  << "S1X"
-                   << "C2S" << "L2S"  << "S2S"
                    << "C2L" << "L2L"  << "S2L"
                    << "C2X" << "L2X"  << "S2X"
-                   << "C5X" << "L5X"  << "S5X";
+                   << "C5Q" << "L5Q"  << "S5Q"
+                   << "C5X" << "L5X"  << "S5X"
+                   << "C6L" << "L6L"  << "S6L";
 
     _obsTypes['R'] << "C1C" << "L1C" << "S1C"
                    << "C1P" << "L1P" << "S1P"
                    << "C2C" << "L2C" << "S2C"
-                   << "C2P" << "L2P" << "S2P";
+                   << "C2P" << "L2P" << "S2P"
+                   << "C3I" << "L3I" << "S3I"
+                   << "C4X" << "L4X" << "S4X"
+                   << "C6X" << "L6X" << "S5X";
 
     _obsTypes['E'] << "C1X" << "L1X" << "S1X"
@@ -1317,10 +1320,10 @@
   QString dateStr;
   QTextStream(&dateStr) << QString(" %1 %2 %3 %4 %5%6")
-    .arg(int(fmod(year, 100)), 2, 10, QChar('0'))
-    .arg(month,                2, 10, QChar('0'))
-    .arg(day,                  2, 10, QChar('0'))
-    .arg(hour,                 2, 10, QChar('0'))
-    .arg(min,                  2, 10, QChar('0'))
-    .arg(sec,                 11, 'f', 7);
+    .arg(int(fmod(double(year), 100.0)), 2, 10, QChar('0'))
+    .arg(month,                          2, 10, QChar('0'))
+    .arg(day,                            2, 10, QChar('0'))
+    .arg(hour,                           2, 10, QChar('0'))
+    .arg(min,                            2, 10, QChar('0'))
+    .arg(sec,                           11, 'f', 7);
 
   int flag = 0;
Index: /branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- /branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp	(revision 8627)
+++ /branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp	(revision 8628)
@@ -661,5 +661,5 @@
                 break;
               biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L2_CM;
+              biasSat->Biases[ii].Type = CODETYPEGPS_L2C_M;
               biasSat->Biases[ii].Bias = it.value();
             }
@@ -669,5 +669,5 @@
                 break;
               biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L2_CL;
+              biasSat->Biases[ii].Type = CODETYPEGPS_L2C_L;
               biasSat->Biases[ii].Bias = it.value();
             }
@@ -677,5 +677,5 @@
                 break;
               biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L2_CML;
+              biasSat->Biases[ii].Type = CODETYPEGPS_L2C_ML;
               biasSat->Biases[ii].Bias = it.value();
             }
@@ -758,4 +758,76 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+            else if (it.key() == "4A") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCd;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "4B") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCp;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "4X") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCdp;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "6A") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_CSI;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "6B") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_OCp;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "6X") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_CSIOCp;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "3I") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEGLONASS_L3_I;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "3Q") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEGLONASS_L3_Q;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "3X") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEGLONASS_L3_IQ;
+              biasSat->Biases[ii].Bias = it.value();
+            }
           }
         }
@@ -946,4 +1018,76 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+            else if (it.key() == "2S") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L2C_M;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "2L") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L2C_L;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "2X") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L2C_ML;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "5I") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_I;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "5Q") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_Q;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "5X") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_IQ;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "6S") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_D;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "6L") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_P;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "6X") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_DP;
+              biasSat->Biases[ii].Bias = it.value();
+            }
             else if (it.key() == "1X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -954,77 +1098,53 @@
               biasSat->Biases[ii].Bias = it.value();
             }
-            else if (it.key() == "2S") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L2C_M;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "2L") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L2C_L;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "2X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L2C_ML;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5I") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_I;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5Q") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_Q;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_IQ;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "6S") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_LEX_S;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "6L") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_LEX_L;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "6X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_LEX_SL;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-          }
+            else if (it.key() == "1Z") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L1_S;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "5D") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_D;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "5P") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_P;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "5Z") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_DP;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "6E") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_E;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+            else if (it.key() == "6Z") {
+              int ii = biasSat->NumberOfCodeBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              biasSat->NumberOfCodeBiases += 1;
+              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_DE;
+              biasSat->Biases[ii].Bias = it.value();
+            }
+           }
         }
         else if (prn.system() == 'S') {
@@ -1205,8 +1325,138 @@
               phasebiasSat->Biases[ii].Bias = pbSig.bias;
               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "1P") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_P;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "1W") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_Z;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "2C") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CA;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "2D") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_SEMI_CODELESS;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "2S") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2C_M;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "2L") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2C_L;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "2X") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2C_ML;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "2P") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_P;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "2W") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_Z;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "5I") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_I;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "5Q") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_Q;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "5X") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_IQ;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
             else if (pbSig.type == "1S") {
@@ -1218,8 +1468,6 @@
               phasebiasSat->Biases[ii].Bias = pbSig.bias;
               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
             else if (pbSig.type == "1L") {
@@ -1231,8 +1479,6 @@
               phasebiasSat->Biases[ii].Bias = pbSig.bias;
               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
             else if (pbSig.type == "1X") {
@@ -1241,167 +1487,9 @@
                 break;
               phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1C_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1P") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1W") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_Z;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2C") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CA;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2D") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_SEMI_CODELESS;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2S") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CM;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2L") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CL;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CML;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2P") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2W") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_Z;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5I") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_I;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5Q") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_Q;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_IQ;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
+              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1C_DP;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
           }
@@ -1761,4 +1849,121 @@
                   pbSig.discontinuityCounter;
             }
+            else if (pbSig.type == "2S") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2C_M;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "2L") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2C_L;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "2X") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2C_ML;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "5I") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_I;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "5Q") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_Q;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "5X") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_IQ;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "6S") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_D;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "6L") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_P;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "6X") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_DP;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
             else if (pbSig.type == "1X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1774,114 +1979,75 @@
                   pbSig.discontinuityCounter;
             }
-            else if (pbSig.type == "2S") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2C_M;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2L") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2C_L;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2C_ML;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5I") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_I;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5Q") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_Q;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_IQ;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "6S") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_LEX_S;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "6L") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_LEX_L;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
-                  pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
-                  pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "6X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_LEX_SL;
+            else if (pbSig.type == "1Z") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1_S;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "5D") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_D;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "5P") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_P;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "5D") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_DP;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "6E") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_E;
+              phasebiasSat->Biases[ii].Bias = pbSig.bias;
+              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator =
+                  pbSig.wlIndicator;
+              phasebiasSat->Biases[ii].SignalDiscontinuityCounter =
+                  pbSig.discontinuityCounter;
+            }
+            else if (pbSig.type == "6Z") {
+              int ii = phasebiasSat->NumberOfPhaseBiases;
+              if (ii >= CLOCKORBIT_NUMBIAS)
+                break;
+              phasebiasSat->NumberOfPhaseBiases += 1;
+              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_DE;
               phasebiasSat->Biases[ii].Bias = pbSig.bias;
               phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
