Esempio n. 1
0
 public QuantityConfig Decode(BitArrayInputStream input)
 {
     QuantityConfig config = new QuantityConfig();
     config.InitDefaults();
     bool flag = input.ReadBit() != 0;
     BitMaskStream stream = new BitMaskStream(input, 4);
     if (stream.Read())
     {
         config.quantityConfigEUTRA = QuantityConfigEUTRA.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         config.quantityConfigUTRA = QuantityConfigUTRA.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         config.quantityConfigGERAN = QuantityConfigGERAN.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         config.quantityConfigCDMA2000 = QuantityConfigCDMA2000.PerDecoder.Instance.Decode(input);
     }
     if (flag)
     {
         BitMaskStream stream2 = new BitMaskStream(input, 1);
         if (stream2.Read())
         {
             config.quantityConfigUTRA_v1020 = QuantityConfigUTRA_v1020.PerDecoder.Instance.Decode(input);
         }
     }
     return config;
 }
 public cellAccessRelatedInfo_Type Decode(BitArrayInputStream input)
 {
     var type = new cellAccessRelatedInfo_Type();
     type.InitDefaults();
     var stream = new BitMaskStream(input, 1);
     type.plmn_IdentityList = new List<PLMN_IdentityInfo>();
     var nBits = 3;
     var num3 = input.ReadBits(nBits) + 1;
     for (var i = 0; i < num3; i++)
     {
         var item = PLMN_IdentityInfo.PerDecoder.Instance.Decode(input);
         type.plmn_IdentityList.Add(item);
     }
     type.trackingAreaCode = input.ReadBitString(0x10);
     type.cellIdentity = input.ReadBitString(0x1c);
     nBits = 1;
     type.cellBarred = (cellBarred_Enum)input.ReadBits(nBits);
     nBits = 1;
     type.intraFreqReselection = (intraFreqReselection_Enum)input.ReadBits(nBits);
     type.csg_Indication = input.ReadBit() == 1;
     if (stream.Read())
     {
         type.csg_Identity = input.ReadBitString(0x1b);
     }
     return type;
 }
Esempio n. 3
0
 public interRAT_Parameters_Type Decode(BitArrayInputStream input)
 {
     interRAT_Parameters_Type type = new interRAT_Parameters_Type();
     type.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 7);
     if (stream.Read())
     {
         type.utraFDD = IRAT_ParametersUTRA_FDD.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         type.utraTDD128 = IRAT_ParametersUTRA_TDD128.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         type.utraTDD384 = IRAT_ParametersUTRA_TDD384.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         type.utraTDD768 = IRAT_ParametersUTRA_TDD768.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         type.geran = IRAT_ParametersGERAN.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         type.cdma2000_HRPD = IRAT_ParametersCDMA2000_HRPD.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         type.cdma2000_1xRTT = IRAT_ParametersCDMA2000_1XRTT.PerDecoder.Instance.Decode(input);
     }
     return type;
 }
 public SystemInformationBlockType1_v9e0_IEs Decode(BitArrayInputStream input)
 {
     var es = new SystemInformationBlockType1_v9e0_IEs();
     es.InitDefaults();
     var stream = new BitMaskStream(input, 3);
     if (stream.Read())
     {
         es.freqBandIndicator_v9e0 = input.ReadBits(8) + 0x41;
     }
     if (stream.Read())
     {
         es.multiBandInfoList_v9e0 = new List<MultiBandInfo_v9e0>();
         const int nBits = 3;
         var num3 = input.ReadBits(nBits) + 1;
         for (var i = 0; i < num3; i++)
         {
             var item = MultiBandInfo_v9e0.PerDecoder.Instance.Decode(input);
             es.multiBandInfoList_v9e0.Add(item);
         }
     }
     if (stream.Read())
     {
         es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Esempio n. 5
0
 public PLMN_Identity Decode(BitArrayInputStream input)
 {
     int num2;
     PLMN_Identity identity = new PLMN_Identity();
     identity.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     if (stream.Read())
     {
         identity.mcc = new List<long>();
         num2 = 0;
         int num3 = input.ReadBits(num2) + 3;
         for (int j = 0; j < num3; j++)
         {
             long item = input.ReadBits(4);
             identity.mcc.Add(item);
         }
     }
     identity.mnc = new List<long>();
     num2 = 1;
     int num6 = input.ReadBits(num2) + 2;
     for (int i = 0; i < num6; i++)
     {
         long num8 = input.ReadBits(4);
         identity.mnc.Add(num8);
     }
     return identity;
 }
Esempio n. 6
0
 public Paging Decode(BitArrayInputStream input)
 {
     int num2;
     Paging paging = new Paging();
     paging.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 4);
     if (stream.Read())
     {
         paging.pagingRecordList = new List<PagingRecord>();
         num2 = 4;
         int num3 = input.ReadBits(num2) + 1;
         for (int i = 0; i < num3; i++)
         {
             PagingRecord item = PagingRecord.PerDecoder.Instance.Decode(input);
             paging.pagingRecordList.Add(item);
         }
     }
     if (stream.Read())
     {
         num2 = 1;
         paging.systemInfoModification = (systemInfoModification_Enum)input.ReadBits(num2);
     }
     if (stream.Read())
     {
         num2 = 1;
         paging.etws_Indication = (etws_Indication_Enum)input.ReadBits(num2);
     }
     if (stream.Read())
     {
         paging.nonCriticalExtension = Paging_v890_IEs.PerDecoder.Instance.Decode(input);
     }
     return paging;
 }
Esempio n. 7
0
 public RRM_Config Decode(BitArrayInputStream input)
 {
     int num2;
     RRM_Config config = new RRM_Config();
     config.InitDefaults();
     bool flag = input.ReadBit() != 0;
     BitMaskStream stream = new BitMaskStream(input, 1);
     if (stream.Read())
     {
         num2 = 6;
         config.ue_InactiveTime = (ue_InactiveTime_Enum)input.ReadBits(num2);
     }
     if (flag)
     {
         BitMaskStream stream2 = new BitMaskStream(input, 1);
         if (!stream2.Read())
         {
             return config;
         }
         config.candidateCellInfoList_r10 = new List<CandidateCellInfo_r10>();
         num2 = 3;
         int num3 = input.ReadBits(num2) + 1;
         for (int i = 0; i < num3; i++)
         {
             CandidateCellInfo_r10 item = CandidateCellInfo_r10.PerDecoder.Instance.Decode(input);
             config.candidateCellInfoList_r10.Add(item);
         }
     }
     return config;
 }
Esempio n. 8
0
 public FreqPriorityEUTRA_v9e0 Decode(BitArrayInputStream input)
 {
     FreqPriorityEUTRA_v9e0 _ve = new FreqPriorityEUTRA_v9e0();
     _ve.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     if (stream.Read())
     {
         _ve.carrierFreq_v9e0 = input.ReadBits(0x12) + 0x10000;
     }
     return _ve;
 }
Esempio n. 9
0
 public EAB_ConfigPLMN_r11 Decode(BitArrayInputStream input)
 {
     EAB_ConfigPLMN_r11 _r = new EAB_ConfigPLMN_r11();
     _r.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     if (stream.Read())
     {
         _r.eab_Config_r11 = EAB_Config_r11.PerDecoder.Instance.Decode(input);
     }
     return _r;
 }
Esempio n. 10
0
 public MultiBandInfo_v9e0 Decode(BitArrayInputStream input)
 {
     MultiBandInfo_v9e0 _ve = new MultiBandInfo_v9e0();
     _ve.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     if (stream.Read())
     {
         _ve.freqBandIndicator_v9e0 = input.ReadBits(8) + 0x41;
     }
     return _ve;
 }
 public SystemInformationBlockType15_r11 Decode(BitArrayInputStream input)
 {
     int num2;
     var _r = new SystemInformationBlockType15_r11();
     _r.InitDefaults();
     var flag = false;
     flag = input.ReadBit() != 0;
     var stream = flag ? new BitMaskStream(input, 3) : new BitMaskStream(input, 3);
     if (stream.Read())
     {
         _r.mbms_SAI_IntraFreq_r11 = new List<long>();
         num2 = 6;
         var num3 = input.ReadBits(num2) + 1;
         for (var i = 0; i < num3; i++)
         {
             long item = input.ReadBits(0x10);
             _r.mbms_SAI_IntraFreq_r11.Add(item);
         }
     }
     if (stream.Read())
     {
         _r.mbms_SAI_InterFreqList_r11 = new List<MBMS_SAI_InterFreq_r11>();
         num2 = 3;
         var num6 = input.ReadBits(num2) + 1;
         for (var j = 0; j < num6; j++)
         {
             var _r2 = MBMS_SAI_InterFreq_r11.PerDecoder.Instance.Decode(input);
             _r.mbms_SAI_InterFreqList_r11.Add(_r2);
         }
     }
     if (stream.Read())
     {
         var nBits = input.ReadBits(8);
         _r.lateNonCriticalExtension = input.readOctetString(nBits);
     }
     if (flag)
     {
         var stream2 = new BitMaskStream(input, 1);
         if (!stream2.Read())
         {
             return _r;
         }
         _r.mbms_SAI_InterFreqList_v1140 = new List<MBMS_SAI_InterFreq_v1140>();
         num2 = 3;
         var num8 = input.ReadBits(num2) + 1;
         for (var k = 0; k < num8; k++)
         {
             var _v = MBMS_SAI_InterFreq_v1140.PerDecoder.Instance.Decode(input);
             _r.mbms_SAI_InterFreqList_v1140.Add(_v);
         }
     }
     return _r;
 }
Esempio n. 12
0
 public ObtainLocationConfig_r11 Decode(BitArrayInputStream input)
 {
     ObtainLocationConfig_r11 _r = new ObtainLocationConfig_r11();
     _r.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     if (stream.Read())
     {
         const int nBits = 1;
         _r.obtainLocation_r11 = (obtainLocation_r11_Enum)input.ReadBits(nBits);
     }
     return _r;
 }
Esempio n. 13
0
 public MeasParameters_v1130 Decode(BitArrayInputStream input)
 {
     MeasParameters_v1130 _v = new MeasParameters_v1130();
     _v.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     if (stream.Read())
     {
         const int nBits = 1;
         _v.rsrqMeasWideband_r11 = (rsrqMeasWideband_r11_Enum)input.ReadBits(nBits);
     }
     return _v;
 }
Esempio n. 14
0
 public SON_Parameters_r9 Decode(BitArrayInputStream input)
 {
     SON_Parameters_r9 _r = new SON_Parameters_r9();
     _r.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     if (stream.Read())
     {
         const int nBits = 1;
         _r.rach_Report_r9 = (rach_Report_r9_Enum)input.ReadBits(nBits);
     }
     return _r;
 }
Esempio n. 15
0
 public PRACH_Config Decode(BitArrayInputStream input)
 {
     PRACH_Config config = new PRACH_Config();
     config.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     config.rootSequenceIndex = input.ReadBits(10);
     if (stream.Read())
     {
         config.prach_ConfigInfo = PRACH_ConfigInfo.PerDecoder.Instance.Decode(input);
     }
     return config;
 }
Esempio n. 16
0
 public preambleInfo_Type Decode(BitArrayInputStream input)
 {
     preambleInfo_Type type = new preambleInfo_Type();
     type.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     const int nBits = 4;
     type.numberOfRA_Preambles = (numberOfRA_Preambles_Enum)input.ReadBits(nBits);
     if (stream.Read())
     {
         type.preamblesGroupAConfig = preamblesGroupAConfig_Type.PerDecoder.Instance.Decode(input);
     }
     return type;
 }
 public cellReselectionInfoCommon_Type Decode(BitArrayInputStream input)
 {
     var type = new cellReselectionInfoCommon_Type();
     type.InitDefaults();
     var stream = new BitMaskStream(input, 1);
     const int nBits = 4;
     type.q_Hyst = (q_Hyst_Enum)input.ReadBits(nBits);
     if (stream.Read())
     {
         type.speedStateReselectionPars = speedStateReselectionPars_Type.PerDecoder.Instance.Decode(input);
     }
     return type;
 }
Esempio n. 18
0
 public PhysCellIdRange Decode(BitArrayInputStream input)
 {
     PhysCellIdRange range = new PhysCellIdRange();
     range.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     range.start = input.ReadBits(9);
     if (stream.Read())
     {
         const int nBits = 4;
         range.range = (range_Enum)input.ReadBits(nBits);
     }
     return range;
 }
 public OTDOA_PositioningCapabilities_r10 Decode(BitArrayInputStream input)
 {
     OTDOA_PositioningCapabilities_r10 _r = new OTDOA_PositioningCapabilities_r10();
     _r.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     int nBits = 1;
     _r.otdoa_UE_Assisted_r10 = (otdoa_UE_Assisted_r10_Enum)input.ReadBits(nBits);
     if (stream.Read())
     {
         nBits = 1;
         _r.interFreqRSTD_Measurement_r10 = (interFreqRSTD_Measurement_r10_Enum)input.ReadBits(nBits);
     }
     return _r;
 }
Esempio n. 20
0
 public PhyLayerParameters_v1020 Decode(BitArrayInputStream input)
 {
     int num2;
     PhyLayerParameters_v1020 _v = new PhyLayerParameters_v1020();
     _v.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 7);
     if (stream.Read())
     {
         num2 = 1;
         _v.twoAntennaPortsForPUCCH_r10 = (twoAntennaPortsForPUCCH_r10_Enum)input.ReadBits(num2);
     }
     if (stream.Read())
     {
         num2 = 1;
         _v.tm9_With_8Tx_FDD_r10 = (tm9_With_8Tx_FDD_r10_Enum)input.ReadBits(num2);
     }
     if (stream.Read())
     {
         num2 = 1;
         _v.pmi_Disabling_r10 = (pmi_Disabling_r10_Enum)input.ReadBits(num2);
     }
     if (stream.Read())
     {
         num2 = 1;
         _v.crossCarrierScheduling_r10 = (crossCarrierScheduling_r10_Enum)input.ReadBits(num2);
     }
     if (stream.Read())
     {
         num2 = 1;
         _v.simultaneousPUCCH_PUSCH_r10 = (simultaneousPUCCH_PUSCH_r10_Enum)input.ReadBits(num2);
     }
     if (stream.Read())
     {
         num2 = 1;
         _v.multiClusterPUSCH_WithinCC_r10 = (multiClusterPUSCH_WithinCC_r10_Enum)input.ReadBits(num2);
     }
     if (stream.Read())
     {
         _v.nonContiguousUL_RA_WithinCC_List_r10 = new List<NonContiguousUL_RA_WithinCC_r10>();
         num2 = 6;
         int num3 = input.ReadBits(num2) + 1;
         for (int i = 0; i < num3; i++)
         {
             NonContiguousUL_RA_WithinCC_r10 item = NonContiguousUL_RA_WithinCC_r10.PerDecoder.Instance.Decode(input);
             _v.nonContiguousUL_RA_WithinCC_List_r10.Add(item);
         }
     }
     return _v;
 }
 public SystemInformationBlockType2_v9e0_IEs Decode(BitArrayInputStream input)
 {
     var es = new SystemInformationBlockType2_v9e0_IEs();
     es.InitDefaults();
     var stream = new BitMaskStream(input, 2);
     if (stream.Read())
     {
         es.ul_CarrierFreq_v9e0 = input.ReadBits(0x12) + 0x10000;
     }
     if (stream.Read())
     {
         es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Esempio n. 22
0
 public ul_SpecificParameters_Type Decode(BitArrayInputStream input)
 {
     ul_SpecificParameters_Type type = new ul_SpecificParameters_Type();
     type.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     type.priority = input.ReadBits(4) + 1;
     int nBits = 4;
     type.prioritisedBitRate = (prioritisedBitRate_Enum)input.ReadBits(nBits);
     nBits = 3;
     type.bucketSizeDuration = (bucketSizeDuration_Enum)input.ReadBits(nBits);
     if (stream.Read())
     {
         type.logicalChannelGroup = input.ReadBits(2);
     }
     return type;
 }
 public SystemInformation_v8a0_IEs Decode(BitArrayInputStream input)
 {
     var es = new SystemInformation_v8a0_IEs();
     es.InitDefaults();
     var stream = new BitMaskStream(input, 2);
     if (stream.Read())
     {
         var nBits = input.ReadBits(8);
         es.lateNonCriticalExtension = input.readOctetString(nBits);
     }
     if (stream.Read())
     {
         es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
 public ac_BarringInfo_Type Decode(BitArrayInputStream input)
 {
     var type = new ac_BarringInfo_Type();
     type.InitDefaults();
     var stream = new BitMaskStream(input, 2);
     type.ac_BarringForEmergency = input.ReadBit() == 1;
     if (stream.Read())
     {
         type.ac_BarringForMO_Signalling = AC_BarringConfig.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         type.ac_BarringForMO_Data = AC_BarringConfig.PerDecoder.Instance.Decode(input);
     }
     return type;
 }
Esempio n. 25
0
 public MobilityControlInfo Decode(BitArrayInputStream input)
 {
     BitMaskStream stream2;
     MobilityControlInfo info = new MobilityControlInfo();
     info.InitDefaults();
     bool flag = input.ReadBit() != 0;
     BitMaskStream stream = new BitMaskStream(input, 4);
     info.targetPhysCellId = input.ReadBits(9);
     if (stream.Read())
     {
         info.carrierFreq = CarrierFreqEUTRA.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         info.carrierBandwidth = CarrierBandwidthEUTRA.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         info.additionalSpectrumEmission = input.ReadBits(5) + 1;
     }
     int nBits = 3;
     info.t304 = (t304_Enum)input.ReadBits(nBits);
     info.newUE_Identity = input.ReadBitString(0x10);
     info.radioResourceConfigCommon = RadioResourceConfigCommon.PerDecoder.Instance.Decode(input);
     if (stream.Read())
     {
         info.rach_ConfigDedicated = RACH_ConfigDedicated.PerDecoder.Instance.Decode(input);
     }
     if (flag)
     {
         stream2 = new BitMaskStream(input, 1);
         if (stream2.Read())
         {
             info.carrierFreq_v9e0 = CarrierFreqEUTRA_v9e0.PerDecoder.Instance.Decode(input);
         }
     }
     if (flag)
     {
         stream2 = new BitMaskStream(input, 1);
         if (stream2.Read())
         {
             nBits = 1;
             info.drb_ContinueROHC_r11 = (drb_ContinueROHC_r11_Enum)input.ReadBits(nBits);
         }
     }
     return info;
 }
Esempio n. 26
0
 public MeasObjectCDMA2000 Decode(BitArrayInputStream input)
 {
     MeasObjectCDMA2000 tcdma = new MeasObjectCDMA2000();
     tcdma.InitDefaults();
     input.ReadBit();
     BitMaskStream stream = new BitMaskStream(input, 1);
     BitMaskStream stream2 = new BitMaskStream(input, 4);
     int nBits = 1;
     tcdma.cdma2000_Type = (CDMA2000_Type)input.ReadBits(nBits);
     tcdma.carrierFreq = CarrierFreqCDMA2000.PerDecoder.Instance.Decode(input);
     if (stream2.Read())
     {
         tcdma.searchWindowSize = input.ReadBits(4);
     }
     if (stream.Read())
     {
         tcdma.offsetFreq = input.ReadBits(5) + -15;
     }
     if (stream2.Read())
     {
         tcdma.cellsToRemoveList = new List<long>();
         nBits = 5;
         int num3 = input.ReadBits(nBits) + 1;
         for (int i = 0; i < num3; i++)
         {
             long item = input.ReadBits(5) + 1;
             tcdma.cellsToRemoveList.Add(item);
         }
     }
     if (stream2.Read())
     {
         tcdma.cellsToAddModList = new List<CellsToAddModCDMA2000>();
         nBits = 5;
         int num6 = input.ReadBits(nBits) + 1;
         for (int j = 0; j < num6; j++)
         {
             CellsToAddModCDMA2000 dcdma = CellsToAddModCDMA2000.PerDecoder.Instance.Decode(input);
             tcdma.cellsToAddModList.Add(dcdma);
         }
     }
     if (stream2.Read())
     {
         tcdma.cellForWhichToReportCGI = input.ReadBits(9);
     }
     return tcdma;
 }
Esempio n. 27
0
 public RSTD_InterFreqInfo_r10 Decode(BitArrayInputStream input)
 {
     RSTD_InterFreqInfo_r10 _r = new RSTD_InterFreqInfo_r10();
     _r.InitDefaults();
     bool flag = input.ReadBit() != 0;
     _r.carrierFreq_r10 = input.ReadBits(0x10);
     _r.measPRS_Offset_r10 = input.ReadBits(6);
     if (flag)
     {
         BitMaskStream stream = new BitMaskStream(input, 1);
         if (stream.Read())
         {
             _r.carrierFreq_v1090 = input.ReadBits(0x12) + 0x10000;
         }
     }
     return _r;
 }
Esempio n. 28
0
 public CQI_ReportConfig Decode(BitArrayInputStream input)
 {
     CQI_ReportConfig config = new CQI_ReportConfig();
     config.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 2);
     if (stream.Read())
     {
         int nBits = 3;
         config.cqi_ReportModeAperiodic = (CQI_ReportModeAperiodic)input.ReadBits(nBits);
     }
     config.nomPDSCH_RS_EPRE_Offset = input.ReadBits(3) + -1;
     if (stream.Read())
     {
         config.cqi_ReportPeriodic = CQI_ReportPeriodic.PerDecoder.Instance.Decode(input);
     }
     return config;
 }
Esempio n. 29
0
 public setup_Type Decode(BitArrayInputStream input)
 {
     setup_Type type = new setup_Type();
     type.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     int nBits = 3;
     type.srs_BandwidthConfig = (srs_BandwidthConfig_Enum)input.ReadBits(nBits);
     nBits = 4;
     type.srs_SubframeConfig = (srs_SubframeConfig_Enum)input.ReadBits(nBits);
     type.ackNackSRS_SimultaneousTransmission = input.ReadBit() == 1;
     if (stream.Read())
     {
         nBits = 1;
         type.srs_MaxUpPts = (srs_MaxUpPts_Enum)input.ReadBits(nBits);
     }
     return type;
 }
Esempio n. 30
0
 public CSG_AllowedReportingCells_r9 Decode(BitArrayInputStream input)
 {
     CSG_AllowedReportingCells_r9 _r = new CSG_AllowedReportingCells_r9();
     _r.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     if (stream.Read())
     {
         _r.physCellIdRangeUTRA_FDDList_r9 = new List<PhysCellIdRangeUTRA_FDD_r9>();
         int nBits = 2;
         int num3 = input.ReadBits(nBits) + 1;
         for (int i = 0; i < num3; i++)
         {
             PhysCellIdRangeUTRA_FDD_r9 item = PhysCellIdRangeUTRA_FDD_r9.PerDecoder.Instance.Decode(input);
             _r.physCellIdRangeUTRA_FDDList_r9.Add(item);
         }
     }
     return _r;
 }