AutoEncodeRRC

EIGENKOM Ltd.

 

Example of Auto Generated  code from ASN.1 RRC specifications.

INFORMATION

CONTACT DETAILS

Eigenkom Ltd (c) 2014, 2015

a) Legal Structure: Private Company - Limited by Shares

b) Bound sets of Memorandum and Articles of Association

c) Share Certificates

d) Certificate of Incorporation

e)  Company Register

f) Certificate of Good Standing

g)  Incorporation: 426346

h) WorldPay Transaktionsnummer: 3104137391

9 Gartenstraße, Ohlenberg, 53547

+49 (0)2644 6037632

eigenwar@hotmail.com

/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Eigenkom Wireless ASN.1 decode Robot

// ASN.1: Sample-Message.txt.html// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


using System;

using System.Windows;

using System.Windows.Controls;

using System.Drawing;

using System.IO;

using System.IO;

// ASN.1 code generator (c) Eigenkom 2015

namespace WirelessASN1

{

   public partial class MainWindow : Window

   {


      private void NULL()

      {

      // NULL routine to support NULL types

      }




/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CellIdentity

// ASN.1:    CellIdentity ::= BIT STRING (SIZE (28))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void CellIdentity(int Indent) // Law: I=B(Z(I))L

      {

         BuildIE(28,"CellIdentity ::= BIT STRING (SIZE (28)) = ",Indent + 1) ;

      } // End of CellIdentity


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MapParameter

// ASN.1:    MapParameter ::= INTEGER (0..127)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void MapParameter(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((127)-(0)-1)+1 ;

         BuildIE(isize,"MapParameter ::= INTEGER(0..127) =",Indent + 1) ;

      } // End of MapParameter


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: UpperLimit

// ASN.1:    UpperLimit ::= INTEGER (1..91)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void UpperLimit(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((91)-(1)-1)+1 ;

         BuildIE(isize,"UpperLimit ::= INTEGER(1..91) =",Indent + 1) ;

      } // End of UpperLimit


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: T_Reselection_S

// ASN.1:    T_Reselection_S ::= INTEGER (0..31)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void T_Reselection_S(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((31)-(0)-1)+1 ;

         BuildIE(isize,"T_Reselection_S ::= INTEGER(0..31) =",Indent + 1) ;

      } // End of T_Reselection_S


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: HCS_PRIO

// ASN.1:    HCS_PRIO ::= INTEGER (0..7)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void HCS_PRIO(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((7)-(0)-1)+1 ;

         BuildIE(isize,"HCS_PRIO ::= INTEGER(0..7) =",Indent + 1) ;

      } // End of HCS_PRIO


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Q_HCS

// ASN.1:    Q_HCS ::= INTEGER (0..99)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Q_HCS(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((99)-(0)-1)+1 ;

         BuildIE(isize,"Q_HCS ::= INTEGER(0..99) =",Indent + 1) ;

      } // End of Q_HCS


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MaxAllowedUL_TX_Power

// ASN.1:     MaxAllowedUL_TX_Power ::= INTEGER (_50..33)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void MaxAllowedUL_TX_Power(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((33)-(-50)-1)+1 ;

         BuildIE(isize,"MaxAllowedUL_TX_Power ::= INTEGER(-50..33) =",Indent + 1) ;

      } // End of MaxAllowedUL_TX_Power


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Q_Hyst_S

// ASN.1:    __ Actual value Q_Hyst_S = IE value * 2

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private int Q_Hyst_S_value(int iQ_Hyst_S)

      {

         return (iQ_Hyst_S * 2) ;

      } // End of conversion function Q_Hyst_S 1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Q_Hyst_S

// ASN.1:    Q_Hyst_S ::= INTEGER (0..20)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Q_Hyst_S(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((20)-(0)-1)+1 ;

         BuildIE(isize,"Q_Hyst_S ::= INTEGER(0..20) =",Indent + 1) ;

      } // End of Q_Hyst_S


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Q_Hyst_S_Fine

// ASN.1:    Q_Hyst_S_Fine ::= INTEGER (0..40)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Q_Hyst_S_Fine(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((40)-(0)-1)+1 ;

         BuildIE(isize,"Q_Hyst_S_Fine ::= INTEGER(0..40) =",Indent + 1) ;

      } // End of Q_Hyst_S_Fine


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: DeltaPRC

// ASN.1:    DeltaPRC ::= INTEGER (_127..127)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void DeltaPRC(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((127)-(-127)-1)+1 ;

         BuildIE(isize,"DeltaPRC ::= INTEGER(-127..127) =",Indent + 1) ;

      } // End of DeltaPRC

//  __Actual value DeltaQrxlevmin = IE value * 2


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: DeltaQrxlevmin

// ASN.1:    DeltaQrxlevmin ::= INTEGER (_2.._1)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void DeltaQrxlevmin(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((-1)-(-2)-1)+1 ;

         BuildIE(isize,"DeltaQrxlevmin ::= INTEGER(-2..-1) =",Indent + 1) ;

      } // End of DeltaQrxlevmin


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: DeltaRSCP

// ASN.1:    DeltaRSCP ::= INTEGER (_5.._1)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void DeltaRSCP(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((-1)-(-5)-1)+1 ;

         BuildIE(isize,"DeltaRSCP ::= INTEGER(-5..-1) =",Indent + 1) ;

      } // End of DeltaRSCP


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: DeltaRSCPPerCell

// ASN.1:    DeltaRSCPPerCell ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void DeltaRSCPPerCell(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bdeltaRSCP = AddIE("deltaRSCP","Exists","Absent", Indent + 3) ;

         if (bdeltaRSCP) // Law: IIOL

            DeltaRSCP(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Ansi_41_IDNNS

// ASN.1:    Ansi_41_IDNNS ::= BIT STRING (SIZE (14))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Ansi_41_IDNNS(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(14,"Ansi_41_IDNNS ::= BIT STRING (SIZE (14)) = ",Indent + 1) ;

      } // End of Ansi_41_IDNNS


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: DeltaRRC

// ASN.1:    __ Actual value DeltaRRC = IE value * 0.032

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private float DeltaRRC_value(int iDeltaRRC)  // Law: L_iii>V*i.iL

      {

         return (float) ((float)iDeltaRRC * 0.032) ;

      } // End of conversion function DeltaRRC 1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: DeltaRRC

// ASN.1:    DeltaRRC ::= INTEGER (_7..7)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void DeltaRRC(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((7)-(-7)-1)+1 ;

         BuildIE(isize,"DeltaRRC ::= INTEGER(-7..7) =",Indent + 1) ;

      } // End of DeltaRRC


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Q_QualMin

// ASN.1:    Q_QualMin ::= INTEGER (_24..0)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Q_QualMin(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((0)-(-24)-1)+1 ;

         BuildIE(isize,"Q_QualMin ::= INTEGER(-24..0) =",Indent + 1) ;

      } // End of Q_QualMin


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Q_QualMin_Offset

// ASN.1:    Q_QualMin_Offset ::= INTEGER (1..16)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Q_QualMin_Offset(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((16)-(1)-1)+1 ;

         BuildIE(isize,"Q_QualMin_Offset ::= INTEGER(1..16) =",Indent + 1) ;

      } // End of Q_QualMin_Offset


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Q_RxlevMin

// ASN.1:    __ Actual value Q_RxlevMin = (IE value * 2) + 1

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private int Q_RxlevMin_value(int iQ_RxlevMin)  // Law: L_iii>(V*i)iL

      {

         return ((iQ_RxlevMin * 2) + 1) ;

      } // End of conversion function Q_RxlevMin 1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Q_RxlevMin

// ASN.1:    Q_RxlevMin ::= INTEGER (_58.._13)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Q_RxlevMin(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((-13)-(-58)-1)+1 ;

         BuildIE(isize,"Q_RxlevMin ::= INTEGER(-58..-13) =",Indent + 1) ;

      } // End of Q_RxlevMin


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Q_RxlevMin_Offset

// ASN.1:    __ Actual value Q_RxlevMin_Offset = (IE value * 2)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private int Q_RxlevMin_Offset_value(int Value)

      {

         return (Value * 2) ; // 1

      } // End of conversion function Q_RxlevMin_Offset


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Q_RxlevMin_Offset

// ASN.1:    Q_RxlevMin_Offset ::= INTEGER (1..8)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Q_RxlevMin_Offset(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((8)-(1)-1)+1 ;

         BuildIE(isize,"Q_RxlevMin_Offset ::= INTEGER(1..8) =",Indent + 1) ;

      } // End of Q_RxlevMin_Offset


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Q_Hyst_S

// ASN.1:    Q_Hyst_S ::= INTEGER (0..20)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Q_Hyst_S(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((20)-(0)-1)+1 ;

         BuildIE(isize,"Q_Hyst_S ::= INTEGER(0..20) =",Indent + 1) ;

      } // End of Q_Hyst_S


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: S_SearchQual

// ASN.1:    __ Actual value S_SearchQual = IE value * 2

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private int S_SearchQual_value(int iS_SearchQual)

      {

         return (iS_SearchQual * 2) ;

      } // End of conversion function S_SearchQual 1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: S_SearchQual

// ASN.1:    S_SearchQual ::= INTEGER (_16..10)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void S_SearchQual(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((10)-(-16)-1)+1 ;

         BuildIE(isize,"S_SearchQual ::= INTEGER(-16..10) =",Indent + 1) ;

      } // End of S_SearchQual


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: S_SearchRXLEV

// ASN.1:    __ Actual value S_SearchRXLEV = (IE value * 2) + 1

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private int S_SearchRXLEV_value(int iS_SearchRXLEV)  // Law: L_iii>(V*i)iL

      {

         return ((iS_SearchRXLEV * 2) + 1) ;

      } // End of conversion function S_SearchRXLEV 1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: S_SearchRXLEV

// ASN.1:    S_SearchRXLEV ::= INTEGER (_53..45)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void S_SearchRXLEV(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((45)-(-53)-1)+1 ;

         BuildIE(isize,"S_SearchRXLEV ::= INTEGER(-53..45) =",Indent + 1) ;

      } // End of S_SearchRXLEV


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MIB_ValueTag

// ASN.1:    MIB_ValueTag ::= INTEGER (1..8)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void MIB_ValueTag(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((8)-(1)-1)+1 ;

         BuildIE(isize,"MIB_ValueTag ::= INTEGER(1..8) =",Indent + 1) ;

      } // End of MIB_ValueTag


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MIB_ValueTagExt

// ASN.1:    MIB_ValueTagExt ::= INTEGER (0..1)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void MIB_ValueTagExt(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((1)-(0)-1)+1 ;

         BuildIE(isize,"MIB_ValueTagExt ::= INTEGER(0..1) =",Indent + 1) ;

      } // End of MIB_ValueTagExt


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: NCC

// ASN.1:    NCC ::= INTEGER (0..7)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void NCC(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((7)-(0)-1)+1 ;

         BuildIE(isize,"NCC ::= INTEGER(0..7) =",Indent + 1) ;

      } // End of NCC


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: T_Reselection_S

// ASN.1:    T_Reselection_S ::= INTEGER (0..31)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void T_Reselection_S(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((31)-(0)-1)+1 ;

         BuildIE(isize,"T_Reselection_S ::= INTEGER(0..31) =",Indent + 1) ;

      } // End of T_Reselection_S


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: T_Reselection_S_Fine

// ASN.1:    __ Actual value T_Reselection_S_Fine = IE value * 0.2

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private float T_Reselection_S_Fine_value(int iT_Reselection_S_Fine)  // Law: L_iii>V*i.iL

      {

         return (float) ((float)iT_Reselection_S_Fine * 0.2) ;

      } // End of conversion function T_Reselection_S_Fine 1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: T_Reselection_S_Fine

// ASN.1:    T_Reselection_S_Fine ::= INTEGER (0..31)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void T_Reselection_S_Fine(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((31)-(0)-1)+1 ;

         BuildIE(isize,"T_Reselection_S_Fine ::= INTEGER(0..31) =",Indent + 1) ;

      } // End of T_Reselection_S_Fine


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: ScalingFactor

// ASN.1:    __ Actual value ScalingFactor = IE value * 0.25

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private float ScalingFactor_value(int iScalingFactor)  // Law: L_iii>V*i.iL

      {

         return (float) ((float)iScalingFactor * 0.25) ;

      } // End of conversion function ScalingFactor 1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: TreselectionScalingFactor

// ASN.1:    TreselectionScalingFactor ::= INTEGER (4..19)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void TreselectionScalingFactor(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((19)-(4)-1)+1 ;

         BuildIE(isize,"TreselectionScalingFactor ::= INTEGER(4..19) =",Indent + 1) ;

      } // End of TreselectionScalingFactor


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: ScalingFactor2

// ASN.1:    __ Actual value ScalingFactor2 = IE value * 0.25

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private float ScalingFactor2_value(int iScalingFactor2)  // Law: L_iii>V*i.iL

      {

         return (float) ((float)iScalingFactor2 * 0.25) ;

      } // End of conversion function ScalingFactor2 1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: TreselectionScalingFactor2

// ASN.1:    TreselectionScalingFactor2 ::= INTEGER (1..16)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void TreselectionScalingFactor2(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((16)-(1)-1)+1 ;

         BuildIE(isize,"TreselectionScalingFactor2 ::= INTEGER(1..16) =",Indent + 1) ;

      } // End of TreselectionScalingFactor2

//  __ For UpperLimit, the used range depends on the RAT used.


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: UpperLimit

// ASN.1:    UpperLimit ::= INTEGER (1..91)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void UpperLimit(int Indent) // Law: I=G(IRI)L

      {

         int isize = log2l((91)-(1)-1)+1 ;

         BuildIE(isize,"UpperLimit ::= INTEGER(1..91) =",Indent + 1) ;

      } // End of UpperLimit


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: TMSI_DS_41

// ASN.1:     TMSI_DS_41 ::= OCTET STRING (SIZE (2..17))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void TMSI_DS_41(int Indent) // Law: LI=8T(Z(IRI))L

      {

         int isize = log2l((17)-(2)-1)+1 ;

         int idata = PopIntIE(isize,"TMSI_DS_41  ::= OCTET STRING (SIZE (2..17)) = ",Indent + 2) ;

         for(int iLoop1 = 2; iLoop1 <= (2+idata) ; iLoop1++)

            BuildIE(8,"TMSI_DS_41[1] ::= OCTET STRING 1 = ",Indent + 3) ;// OCTET STRING

      } // End of TMSI_DS_41


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: URA_Identity

// ASN.1:    URA_Identity ::= BIT STRING (SIZE (16))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void URA_Identity(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(16,"URA_Identity ::= BIT STRING (SIZE (16)) = ",Indent + 1) ;

      } // End of URA_Identity


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PLMN_ValueTag

// ASN.1:    PLMN_ValueTag ::= INTEGER (1..256)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PLMN_ValueTag(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((256)-(1)-1)+1 ;

         BuildIE(isize,"PLMN_ValueTag ::= INTEGER(1..256) =",Indent + 1) ;

      } // End of PLMN_ValueTag


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Min_P_REV

// ASN.1:    Min_P_REV ::= BIT STRING (SIZE (8))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Min_P_REV(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(8,"Min_P_REV ::= BIT STRING (SIZE (8)) = ",Indent + 1) ;

      } // End of Min_P_REV


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: NID

// ASN.1:    NID ::= BIT STRING (SIZE (16))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void NID(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(16,"NID ::= BIT STRING (SIZE (16)) = ",Indent + 1) ;

      } // End of NID


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: P_REV

// ASN.1:    P_REV ::= BIT STRING (SIZE (8))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void P_REV(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(8,"P_REV ::= BIT STRING (SIZE (8)) = ",Indent + 1) ;

      } // End of P_REV


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SID

// ASN.1:    SID ::= BIT STRING (SIZE (15))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SID(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(15,"SID ::= BIT STRING (SIZE (15)) = ",Indent + 1) ;

      } // End of SID


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SpeedDependentScalingFactor

// ASN.1:    SpeedDependentScalingFactor ::= INTEGER (0..10)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SpeedDependentScalingFactor(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((10)-(0)-1)+1 ;

         BuildIE(isize,"SpeedDependentScalingFactor ::= INTEGER(0..10) =",Indent + 1) ;

      } // End of SpeedDependentScalingFactor


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: IMSI_DS_41

// ASN.1:    IMSI_DS_41 ::= OCTET STRING (SIZE (5..7))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void IMSI_DS_41(int Indent) // Law: LI=8T(Z(IRI))L

      {

         int isize = log2l((7)-(5)-1)+1 ;

         int idata = PopIntIE(isize,"IMSI_DS_41  ::= OCTET STRING (SIZE (5..7)) = ",Indent + 2) ;

         for(int iLoop1 = 5; iLoop1 <= (5+idata) ; iLoop1++)

            BuildIE(8,"IMSI_DS_41[1] ::= OCTET STRING 1 = ",Indent + 3) ;// OCTET STRING

      } // End of IMSI_DS_41


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: IntraFreqMeasQuantity_TDD_sib3List

// ASN.1:     ENUMERATED { primaryCCPCH_RSCP, timeslotISCP }

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void IntraFreqMeasQuantity_TDD_sib3List(int Indent) // Law: LI=S(Z(IRI))FLE{I,I}L

      {

         int iSwitcher1 = 0 ;

         for(int iLoop1 = 1; iLoop1 <= 2; iLoop1++)

         {

            iSwitcher1 = PeekIntIE(1) ;

            switch(iSwitcher1)

            {

               case 0 : BuildIE(1,"IntraFreqMeasQuantity_TDD_sib3List ENUMERATED { primaryCCPCH_RSCP } ",Indent + 4) ; break ;

               case 1 : BuildIE(1,"IntraFreqMeasQuantity_TDD_sib3List ENUMERATED { timeslotISCP } ",Indent + 4) ; break ;

               default: break ;

            } // End of IntraFreqMeasQuantity_TDD_sib3List 3

         } // End of 1 2

      } // End of IntraFreqMeasQuantity_TDD_sib3List


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: ReservedIndicator

// ASN.1:        notReserved }

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void ReservedIndicator(int Indent) // Law: LI=E{LI,LI

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(1) ; // ReservedIndicator

         switch(iSwitcher1)

         {

            case 0 : BuildIE(1,"ReservedIndicator ENUMERATED { reserved } ",Indent + 5) ; break ;

            case 1 : BuildIE(1,"ReservedIndicator ENUMERATED { notReserved } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: T_CRMaxHyst

// ASN.1:        notUsed, t10, t20, t30,

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void T_CRMaxHyst(int Indent) // Law: LLI=E{LI,I

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(3) ; // T_CRMaxHyst

         switch(iSwitcher1)

         {

            case 0 : BuildIE(3,"T_CRMaxHyst ENUMERATED { notUsed } ",Indent + 5) ; break ;

            case 1 : BuildIE(3,"T_CRMaxHyst ENUMERATED { t10 } ",Indent + 5) ; break ;

            case 2 : BuildIE(3,"T_CRMaxHyst ENUMERATED { t20 } ",Indent + 5) ; break ;

            case 3 : BuildIE(3,"T_CRMaxHyst ENUMERATED { t30 } ",Indent + 5) ; break ;

            case 4 : BuildIE(3,"T_CRMaxHyst ENUMERATED { t40 } ",Indent + 5) ; break ;

            case 5 : BuildIE(3,"T_CRMaxHyst ENUMERATED { t50 } ",Indent + 5) ; break ;

            case 6 : BuildIE(3,"T_CRMaxHyst ENUMERATED { t60 } ",Indent + 5) ; break ;

            case 7 : BuildIE(3,"T_CRMaxHyst ENUMERATED { t70 } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MBSFNOnlyService

// ASN.1:    MBSFNOnlyService ::= ENUMERATED {true}

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void MBSFNOnlyService(int Indent) // Law: LLI=E{I}L

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(1) ; // MBSFNOnlyService

         BuildIE("MBSFNOnlyService ::= ENUMERATED { true } ", sTrue, sFalse, Indent + 2) ;

      } // End of  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: ETWS_Information

// ASN.1:       ETWS_Information ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void ETWS_Information(int Indent) // Law: ?e=LI=S{L

      {

         int iSwitcher1 = 0 ;

         int iwarningType2 = log2l((2)-(1)-1)+1 ;

         int idata = PopIntIE(iwarningType2,"warningType  ::= OCTET STRING (SIZE (1..2)) = ",Indent + 2) ;

         for(int iLoop1 = 1; iLoop1 <= (2+idata) ; iLoop1++)

            BuildIE(8,"warningType["+(iLoop1).ToString()+"] ::= OCTET STRING  = ", Indent + 3) ;// OCTET STRING

         for(int iLoop1 = 1; iLoop1 <= (2) ; iLoop1++)

            BuildIE(8,"messageIdentifier["+(iLoop1).ToString()+"] ::= OCTET STRING = ",Indent + 3) ;// OCTET STRING

         for(int iLoop1 = 1; iLoop1 <= (2) ; iLoop1++)

            BuildIE(8,"serialNumber["+(iLoop1).ToString()+"] ::= OCTET STRING = ",Indent + 3) ;// OCTET STRING

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: GroupIdentityWithReleaseInformation

// ASN.1:    GroupIdentityWithReleaseInformation ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void GroupIdentityWithReleaseInformation(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         RRC_ConnectionReleaseInformation(Indent+1) ; // Law: II,L

         GroupReleaseInformation(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Mapping

// ASN.1:    Mapping ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Mapping(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         RAT(Indent+1) ; // Law: II,L

         MappingFunctionParameterList(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Mapping_LCR_r4

// ASN.1:    Mapping_LCR_r4 ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Mapping_LCR_r4(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         MappingFunctionParameterList(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MappingFunctionParameter

// ASN.1:    MappingFunctionParameter ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void MappingFunctionParameter(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bmapParameter1 = AddIE("mapParameter1","Exists","Absent", Indent + 3) ;

         bool bupperLimit = AddIE("upperLimit","Exists","Absent", Indent + 3) ;

         MappingFunctionType(Indent+1) ; // Law: II,L

         if (bmapParameter1) // Law: IIO,L

            MapParameter(Indent+1) ;

         MapParameter(Indent+1) ; // Law: II,L

//      __ The presence of upperLimit is conditional on the number of repetition

         if (bupperLimit) // Law: IIOL

            UpperLimit(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MappingFunctionParameterList

// ASN.1:     MappingFunctionParameter

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void MappingFunctionParameterList(int Indent) // Law: LI=S(Z(IRI))FLIL

      {

         for(int iLoop1 = 1; iLoop1 <= maxMeasIntervals; iLoop1++)

         {

            MappingFunctionParameter(Indent) ;

         }

      } // End of MappingFunctionParameterList


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MappingFunctionType

// ASN.1:        functionType2,

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void MappingFunctionType(int Indent) // Law: LI=E{LI,LI

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(2) ; // MappingFunctionType

         switch(iSwitcher1)

         {

            case 0 : BuildIE(2,"MappingFunctionType ENUMERATED { linear } ",Indent + 5) ; break ;

            case 1 : BuildIE(2,"MappingFunctionType ENUMERATED { functionType2 } ",Indent + 5) ; break ;

            case 2 : BuildIE(2,"MappingFunctionType ENUMERATED { functionType3 } ",Indent + 5) ; break ;

            case 3 : BuildIE(2,"MappingFunctionType ENUMERATED { functionType4 } ",Indent + 5) ; break ;

            default: break ;

         }

      }

//  __ In MappingInfo list, mapping for FDD and 3.84Mcps TDD is defined.

//  __ For 1.28Mcps TDD, Mapping_LCR_r4 is used instead.


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MappingInfo

// ASN.1:     Mapping

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void MappingInfo(int Indent) // Law: I=S(Z(IRI))FLIL

      {

         for(int iLoop1 = 1; iLoop1 <= maxRAT; iLoop1++)

         {

            Mapping(Indent) ;

         }

      } // End of MappingInfo


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: N_CR_T_CRMaxHyst

// ASN.1:    N_CR_T_CRMaxHyst ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void N_CR_T_CRMaxHyst(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         int in_CR2 = log2l((16)-(1)-1)+1 ;

         BuildIE(in_CR2,"n_CR INTEGER (1..16) DEFAULT 8 =",Indent + 2) ;

         T_CRMaxHyst(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: T_CRMax

// ASN.1:    T_CRMax ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void T_CRMax(int Indent) // Law: LI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(3) ; // T_CRMax

         switch(iSwitcher0)

         {

            case 0 /*notUsed*/ :

               BuildIE(3, "T_CRMax Type :: = CHOICE{ notUsed }", Indent+3);

               NULL() ;

               break ;  // Law: IN,L

            case 1 /*t30*/ :

               BuildIE(3, "T_CRMax Type :: = CHOICE{ t30 }", Indent+3);

               N_CR_T_CRMaxHyst(Indent+1) ;

               break ;  // Law: II,L

            case 2 /*t60*/ :

               BuildIE(3, "T_CRMax Type :: = CHOICE{ t60 }", Indent+3);

               N_CR_T_CRMaxHyst(Indent+1) ;

               break ;  // Law: II,L

            case 3 /*t120*/ :

               BuildIE(3, "T_CRMax Type :: = CHOICE{ t120 }", Indent+3);

               N_CR_T_CRMaxHyst(Indent+1) ;

               break ;  // Law: II,L

            case 4 /*t180*/ :

               BuildIE(3, "T_CRMax Type :: = CHOICE{ t180 }", Indent+3);

               N_CR_T_CRMaxHyst(Indent+1) ;

               break ;  // Law: II,L

            case 5 : N_CR_T_CRMaxHyst(Indent+1) ; break ; // Law: IIL}L

            default : break ;

         } //  2

      } // function T_CRMax terminated


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: RRC_ConnectionReleaseInformation

// ASN.1:    RRC_ConnectionReleaseInformation ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void RRC_ConnectionReleaseInformation(int Indent) // Law: LI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(1) ; // RRC_ConnectionReleaseInformation

         switch(iSwitcher0)

         {

            case 0 /*noRelease*/ :

               BuildIE(1, "RRC_ConnectionReleaseInformation Type :: = CHOICE{ noRelease }", Indent+3);

               NULL() ;

               break ;  // Law: IN,L

            case 1 : {               // release

               ReleaseCause(Indent+2) ; // Law: IIL}L

            } // RRC_ConnectionReleaseInformation 3

             break ; // RRC_ConnectionReleaseInformation

            default : break ; // L) RRC_ConnectionReleaseInformation

          } // M)  2 0

       } // R)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: HCS_ServingCellInformation

// ASN.1:    HCS_ServingCellInformation ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void HCS_ServingCellInformation(int Indent) // Law: LLI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bt_CR_Max = AddIE("t_CR_Max","Exists","Absent", Indent + 3) ;

         HCS_PRIO(Indent+1) ;

         Q_HCS(Indent+1) ;

         if (bt_CR_Max) // Law: IIOL

            T_CRMax(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: GroupReleaseInformation

// ASN.1:    GroupReleaseInformation ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void GroupReleaseInformation(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         U_RNTI_Group(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: RAT

// ASN.1:        utra_TDD,

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void RAT(int Indent) // Law: LI=E{LI,LI

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(2) ; // RAT

         switch(iSwitcher1)

         {

            case 0 : BuildIE(2,"RAT ENUMERATED { utra_FDD } ",Indent + 5) ; break ;

            case 1 : BuildIE(2,"RAT ENUMERATED { utra_TDD } ",Indent + 5) ; break ;

            case 2 : BuildIE(2,"RAT ENUMERATED { gsm } ",Indent + 5) ; break ;

            case 3 : BuildIE(2,"RAT ENUMERATED { cdma2000 } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: RAT_Identifier

// ASN.1:        gsm, cdma2000 }

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void RAT_Identifier(int Indent) // Law: LLI=E{LI,I

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(1) ; // RAT_Identifier

         switch(iSwitcher1)

         {

            case 0 : BuildIE(1,"RAT_Identifier ENUMERATED { gsm } ",Indent + 5) ; break ;

            case 1 : BuildIE(1,"RAT_Identifier ENUMERATED { cdma2000 } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: T_Barred

// ASN.1:        s10, s20, s40, s80,

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void T_Barred(int Indent) // Law: LLI=E{LI,I

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(3) ; // T_Barred

         switch(iSwitcher1)

         {

            case 0 : BuildIE(3,"T_Barred ENUMERATED { s10 } ",Indent + 5) ; break ;

            case 1 : BuildIE(3,"T_Barred ENUMERATED { s20 } ",Indent + 5) ; break ;

            case 2 : BuildIE(3,"T_Barred ENUMERATED { s40 } ",Indent + 5) ; break ;

            case 3 : BuildIE(3,"T_Barred ENUMERATED { s80 } ",Indent + 5) ; break ;

            case 4 : BuildIE(3,"T_Barred ENUMERATED { s160 } ",Indent + 5) ; break ;

            case 5 : BuildIE(3,"T_Barred ENUMERATED { s320 } ",Indent + 5) ; break ;

            case 6 : BuildIE(3,"T_Barred ENUMERATED { s640 } ",Indent + 5) ; break ;

            case 7 : BuildIE(3,"T_Barred ENUMERATED { s1280 } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: RAT_FDD_Info

// ASN.1:    RAT_FDD_Info ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void RAT_FDD_Info(int Indent) // Law: LLI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bs_HCS_RAT = AddIE("s_HCS_RAT","Exists","Absent", Indent + 3) ;

         RAT_Identifier(Indent+1) ; // Law: II,L

         S_SearchQual(Indent+1) ; // Law: II,L

         if (bs_HCS_RAT) // Law: IIO,L

            S_SearchRXLEV(Indent+1) ;

         S_SearchQual(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: RAT_TDD_Info

// ASN.1:    RAT_TDD_Info ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void RAT_TDD_Info(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bs_HCS_RAT = AddIE("s_HCS_RAT","Exists","Absent", Indent + 3) ;

         RAT_Identifier(Indent+1) ; // Law: II,L

         S_SearchRXLEV(Indent+1) ; // Law: II,L

         if (bs_HCS_RAT) // Law: IIO,L

            S_SearchRXLEV(Indent+1) ;

         S_SearchRXLEV(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: RAT_FDD_InfoList

// ASN.1:     RAT_FDD_Info

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void RAT_FDD_InfoList(int Indent) // Law: LI=S(Z(IRI))FLIL

      {

         for(int iLoop1 = 1; iLoop1 <= maxOtherRAT; iLoop1++)

         {

            RAT_FDD_Info(Indent) ;

         }

      } // End of RAT_FDD_InfoList


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: RAT_TDD_InfoList

// ASN.1:     RAT_TDD_Info

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void RAT_TDD_InfoList(int Indent) // Law: LI=S(Z(IRI))FLIL

      {

         for(int iLoop1 = 1; iLoop1 <= maxOtherRAT; iLoop1++)

         {

            RAT_TDD_Info(Indent) ;

         }

      } // End of RAT_TDD_InfoList


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CellSelectReselectInfo_v590ext

// ASN.1:    CellSelectReselectInfo_v590ext ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void CellSelectReselectInfo_v590ext(int Indent) // Law: LLI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bdeltaQrxlevmin = AddIE("deltaQrxlevmin","Exists","Absent", Indent + 3) ;

         bool bdeltaQhcs = AddIE("deltaQhcs","Exists","Absent", Indent + 3) ;

         if (bdeltaQrxlevmin) // Law: IIO,L

            DeltaQrxlevmin(Indent+1) ;

         if (bdeltaQhcs) // Law: IIOL

            DeltaRSCP(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CellSelectReselectInfoPCHFACH_v5b0ext

// ASN.1:    CellSelectReselectInfoPCHFACH_v5b0ext ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void CellSelectReselectInfoPCHFACH_v5b0ext(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bq_Hyst_l_S_PCH = AddIE("q_Hyst_l_S_PCH","Exists","Absent", Indent + 3) ;

         bool bq_Hyst_l_S_FACH = AddIE("q_Hyst_l_S_FACH","Exists","Absent", Indent + 3) ;

         bool bq_Hyst_2_S_PCH = AddIE("q_Hyst_2_S_PCH","Exists","Absent", Indent + 3) ;

         bool bq_Hyst_2_S_FACH = AddIE("q_Hyst_2_S_FACH","Exists","Absent", Indent + 3) ;

         bool bt_Reselection_S_PCH = AddIE("t_Reselection_S_PCH","Exists","Absent", Indent + 3) ;

         bool bt_Reselection_S_FACH = AddIE("t_Reselection_S_FACH","Exists","Absent", Indent + 3) ;

         if (bq_Hyst_l_S_PCH) // Law: IIO,L

            Q_Hyst_S_Fine(Indent+1) ;

         if (bq_Hyst_l_S_FACH) // Law: IIO,L

            Q_Hyst_S_Fine(Indent+1) ;

         if (bq_Hyst_2_S_PCH) // Law: IIO,L

            Q_Hyst_S_Fine(Indent+1) ;

         if (bq_Hyst_2_S_FACH) // Law: IIO,L

            Q_Hyst_S_Fine(Indent+1) ;

         if (bt_Reselection_S_PCH) // Law: IIO,L

            T_Reselection_S(Indent+1) ;

         if (bt_Reselection_S_FACH) // Law: IIOL

            T_Reselection_S_Fine(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CellSelectReselectInfoTreselectionScaling_v5c0ext

// ASN.1:    CellSelectReselectInfoTreselectionScaling_v5c0ext ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void CellSelectReselectInfoTreselectionScaling_v5c0ext(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bnon_HCS_t_CR_Max = AddIE("non_HCS_t_CR_Max","Exists","Absent", Indent + 3) ;

         bool bspeedDependentScalingFactor = AddIE("speedDependentScalingFactor","Exists","Absent", Indent + 3) ;

         bool binterFrequencyTreselectionScalingFactor = AddIE("interFrequencyTreselectionScalingFactor","Exists","Absent", Indent + 3) ;

         bool binterRATTreselectionScalingFactor = AddIE("interRATTreselectionScalingFactor","Exists","Absent", Indent + 3) ;

//      __ For speed detection, the same HCS parameters are utilised

         if (bnon_HCS_t_CR_Max) // Law: IIO,L

            T_CRMax(Indent+1) ;

         if (bspeedDependentScalingFactor) // Law: IIO,L

            SpeedDependentScalingFactor(Indent+1) ;

         if (binterFrequencyTreselectionScalingFactor) // Law: IIO,L

            TreselectionScalingFactor(Indent+1) ;

         if (binterRATTreselectionScalingFactor) // Law: IIOL

            TreselectionScalingFactor(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CellSelectReselectInfoSIB_3_4

// ASN.1:    CellSelectReselectInfoSIB_3_4 ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void CellSelectReselectInfoSIB_3_4(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bmappingInfo = AddIE("mappingInfo","Exists","Absent", Indent + 3) ;

         bool bhcs_ServingCellInformation = AddIE("hcs_ServingCellInformation","Exists","Absent", Indent + 3) ;

         if (bmappingInfo) // Law: IIO,L

            MappingInfo(Indent+1) ;

         int icellSelectQualityMeasure1 = PopIntIE(1, "cellSelectQualityMeasure CHOICE { ", Indent + 2) ; // Law: IC{L

         switch(icellSelectQualityMeasure1)

         {

            case 0 : {               // cpich_Ec_N0

               bool bq_HYST_2_S = AddIE("q_HYST_2_S","Exists","Absent", Indent + 5) ;

//            __ Default value for q_HYST_2_S is q_HYST_1_S

               if (bq_HYST_2_S) // Law: IIOL

                  Q_Hyst_S(Indent+3) ;

             } // X) cellSelectQualityMeasure#1 3 2

             break ; // Y) cellSelectQualityMeasure#1

            case 1 /*cpich_RSCP*/ :

               BuildIE(0, "CellSelectReselectInfoSIB_3_4 Type :: = CHOICE{ cpich_RSCP }", Indent+3);

               NULL() ;

               break ;  // Law: INL

            default : break ; // U) cellSelectQualityMeasure#1

          } // V) CellSelectReselectInfoSIB_3_4 2 1

         int imodeSpecificInfo1 = PopIntIE(1, "modeSpecificInfo CHOICE { ", Indent + 2) ; // Law: IC{L

         switch(imodeSpecificInfo1)

         {

            case 0 : {               // fdd

               bool bs_Intrasearch = AddIE("s_Intrasearch","Exists","Absent", Indent + 5) ;

               bool bs_Intersearch = AddIE("s_Intersearch","Exists","Absent", Indent + 5) ;

               bool bs_SearchHCS = AddIE("s_SearchHCS","Exists","Absent", Indent + 5) ;

               bool brat_List = AddIE("rat_List","Exists","Absent", Indent + 5) ;

               if (bs_Intrasearch) // Law: IIO,L

                  S_SearchQual(Indent+3) ;

               if (bs_Intersearch) // Law: IIO,L

                  S_SearchQual(Indent+3) ;

               if (bs_SearchHCS) // Law: IIO,L

                  S_SearchRXLEV(Indent+3) ;

               if (brat_List) // Law: IIO,L

                  RAT_FDD_InfoList(Indent+3) ;

               Q_QualMin(Indent+3) ; // Law: II,L

               Q_RxlevMin(Indent+3) ; // Law: IIL},L

             } ; // modeSpecificInfo#3 3

             break ; // modeSpecificInfo#3

            case 1 : {               // tdd

               bool bs_Intrasearch = AddIE("s_Intrasearch","Exists","Absent", Indent + 5) ;

               bool bs_Intersearch = AddIE("s_Intersearch","Exists","Absent", Indent + 5) ;

               bool bs_SearchHCS = AddIE("s_SearchHCS","Exists","Absent", Indent + 5) ;

               bool brat_List = AddIE("rat_List","Exists","Absent", Indent + 5) ;

               if (bs_Intrasearch) // Law: IIO,L

                  S_SearchRXLEV(Indent+3) ;

               if (bs_Intersearch) // Law: IIO,L

                  S_SearchRXLEV(Indent+3) ;

               if (bs_SearchHCS) // Law: IIO,L

                  S_SearchRXLEV(Indent+3) ;

               if (brat_List) // Law: IIO,L

                  RAT_TDD_InfoList(Indent+3) ;

               Q_RxlevMin(Indent+3) ; // Law: IIL}L

            } // modeSpecificInfo#3 3

             break ; // modeSpecificInfo#3

            default : break ; // U) modeSpecificInfo#3

          } // V) CellSelectReselectInfoSIB_3_4 2 1

         Q_Hyst_S(Indent+1) ; // Law: II,L

         T_Reselection_S(Indent+1) ; // Law: II,L

         if (bhcs_ServingCellInformation) // Law: IIO,L

            HCS_ServingCellInformation(Indent+1) ;

         MaxAllowedUL_TX_Power(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: AccessClassBarred

// ASN.1:        barred, notBarred }

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void AccessClassBarred(int Indent) // Law: LLI=E{LI,I

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(1) ; // AccessClassBarred

         switch(iSwitcher1)

         {

            case 0 : BuildIE(1,"AccessClassBarred ENUMERATED { barred } ",Indent + 5) ; break ;

            case 1 : BuildIE(1,"AccessClassBarred ENUMERATED { notBarred } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: AccessClassBarredList

// ASN.1:     AccessClassBarred

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void AccessClassBarredList(int Indent) // Law: LLI=S(Z(I))FLIL

      {

         for(int iLoop1 = 1; iLoop1 <= maxAC; iLoop1++)

         {

            AccessClassBarred(Indent) ;

         }

      } // End of AccessClassBarredList


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: AllowedIndicator

// ASN.1:        allowed, notAllowed }

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void AllowedIndicator(int Indent) // Law: LI=E{LI,I

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(1) ; // AllowedIndicator

         switch(iSwitcher1)

         {

            case 0 : BuildIE(1,"AllowedIndicator ENUMERATED { allowed } ",Indent + 5) ; break ;

            case 1 : BuildIE(1,"AllowedIndicator ENUMERATED { notAllowed } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CellValueTag

// ASN.1:    CellValueTag ::= INTEGER (1..4)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void CellValueTag(int Indent) // Law: LLLI=G(IRI)L

      {

         int isize = log2l((4)-(1)-1)+1 ;

         BuildIE(isize,"CellValueTag ::= INTEGER(1..4) =",Indent + 1) ;

      } // End of CellValueTag


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CellValueTag2

// ASN.1:    CellValueTag2 ::= INTEGER (1..16)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void CellValueTag2(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((16)-(1)-1)+1 ;

         BuildIE(isize,"CellValueTag2 ::= INTEGER(1..16) =",Indent + 1) ;

      } // End of CellValueTag2


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CellValueTagExt

// ASN.1:    CellValueTagExt ::= INTEGER (0..3)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void CellValueTagExt(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((3)-(0)-1)+1 ;

         BuildIE(isize,"CellValueTagExt ::= INTEGER(0..3) =",Indent + 1) ;

      } // End of CellValueTagExt


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CSG_Identity

// ASN.1:    CSG_Identity ::= BIT STRING (SIZE (27))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void CSG_Identity(int Indent) // Law: LLI=B(Z(I))L

      {

         BuildIE(27,"CSG_Identity ::= BIT STRING (SIZE (27)) = ",Indent + 1) ;

      } // End of CSG_Identity


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CSG_PSCSplitInfo

// ASN.1:    CSG_PSCSplitInfo ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void CSG_PSCSplitInfo(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

//      __ Actual value = IE value * 8

         int istartPSC2 = log2l((63)-(0)-1)+1 ;

         BuildIE(istartPSC2,"startPSC INTEGER (0..63) =",Indent + 2) ;

         iSwitcher1 = PeekIntIE(4) ;

         switch(iSwitcher1)

         {

            case 0 : BuildIE(4,"numberOfPSCs ENUMERATED { psc5 } ",Indent + 4) ; break ;

            case 1 : BuildIE(4,"numberOfPSCs ENUMERATED { psc10 } ",Indent + 4) ; break ;

            case 2 : BuildIE(4,"numberOfPSCs ENUMERATED { psc15 } ",Indent + 4) ; break ;

            case 3 : BuildIE(4,"numberOfPSCs ENUMERATED { psc20 } ",Indent + 4) ; break ;

            case 4 : BuildIE(4,"numberOfPSCs ENUMERATED { psc30 } ",Indent + 4) ; break ;

            case 5 : BuildIE(4,"numberOfPSCs ENUMERATED { psc40 } ",Indent + 4) ; break ;

            case 6 : BuildIE(4,"numberOfPSCs ENUMERATED { psc50 } ",Indent + 4) ; break ;

            case 7 : BuildIE(4,"numberOfPSCs ENUMERATED { psc64 } ",Indent + 4) ; break ;

            case 8 : BuildIE(4,"numberOfPSCs ENUMERATED { psc80 } ",Indent + 4) ; break ;

            case 9 : BuildIE(4,"numberOfPSCs ENUMERATED { psc120 } ",Indent + 4) ; break ;

            case 10 : BuildIE(4,"numberOfPSCs ENUMERATED { psc160 } ",Indent + 4) ; break ;

            case 11 : BuildIE(4,"numberOfPSCs ENUMERATED { psc256 } ",Indent + 4) ; break ;

            case 12 : BuildIE(4,"numberOfPSCs ENUMERATED { alltheRest } ",Indent + 4) ; break ;

            case 13 : BuildIE(4,"numberOfPSCs ENUMERATED { spare3 } ",Indent + 4) ; break ;

            case 14 : BuildIE(4,"numberOfPSCs ENUMERATED { spare2 } ",Indent + 4) ; break ;

            case 15 : BuildIE(4,"numberOfPSCs ENUMERATED { spare1 } ",Indent + 4) ; break ;

            default: break ;

         }

//      __ Actual value = IE value * 8

         int ipscRange2Offset2 = log2l((63)-(1)-1)+1 ;

         BuildIE(ipscRange2Offset2,"pscRange2Offset INTEGER (1..63) =",Indent + 2) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CellAccessRestriction

// ASN.1:    CellAccessRestriction ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void CellAccessRestriction(int Indent) // Law: LLI=S{L

      {

         int iSwitcher1 = 0 ;

         bool baccessClassBarredList = AddIE("accessClassBarredList","Exists","Absent", Indent + 3) ;

         CellBarred(Indent+1) ; // Law: II,L

         ReservedIndicator(Indent+1) ; // Law: II,L

         ReservedIndicator(Indent+1) ; // Law: II,L

//      __ NOTE: IE accessClassBarredList should not be included if the IE CellAccessRestriction

//      __ is included in the IE SysInfoType4

         if (baccessClassBarredList) // Law: IIOL

            AccessClassBarredList(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CellAccessRestriction_v870ext

// ASN.1:    CellAccessRestriction_v870ext ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void CellAccessRestriction_v870ext(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bcellReservedForCSG = AddIE("cellReservedForCSG","Exists","Absent", Indent + 3) ;

         //        cellReservedForCSG ENUMERATED { true } OPTIONAL


         if(bcellReservedForCSG)

            PeekIE("cellReservedForCSG", sParseErr, "true", Indent) ;

    } // O)  0 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CellBarred

// ASN.1:    CellBarred ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void CellBarred(int Indent) // Law: LI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(1) ; // CellBarred

         switch(iSwitcher0)

         {

            case 0 : {               // barred

               AllowedIndicator(Indent+2) ; // Law: II,L

               T_Barred(Indent+2) ; // Law: IIL},L

             } ; // CellBarred 3

             break ; // CellBarred

            case 1 /*notBarred*/ :

               BuildIE(0, "CellBarred Type :: = CHOICE{ notBarred }", Indent+3);

               NULL() ;

               break ;  // Law: INL

            default : break ; // L) CellBarred

          } // M)  2 0

       } // R)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: BCCH_ModificationInfo

// ASN.1:       BCCH_ModificationInfo ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void BCCH_ModificationInfo(int Indent) // Law: I=S{L

      {

         int iSwitcher1 = 0 ;

         bool bbcch_ModificationTime = AddIE("bcch_ModificationTime","Exists","Absent", Indent + 3) ;

         MIB_ValueTag(Indent+1) ; // Law: II,L

         if (bbcch_ModificationTime) // Law: IIOL

            BCCH_ModificationTime(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: BCCH_ModificationInfo_vcxyext

// ASN.1:    BCCH_ModificationInfo_vcxyext ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void BCCH_ModificationInfo_vcxyext(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bmib_ValueTagExt = AddIE("mib_ValueTagExt","Exists","Absent", Indent + 3) ;

         bool bsb3_ValueTag = AddIE("sb3_ValueTag","Exists","Absent", Indent + 3) ;

         if (bmib_ValueTagExt) // Law: IIO,L

            MIB_ValueTagExt(Indent+1) ;

         if (bsb3_ValueTag) // Law: IIOL

            CellValueTag2(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: DeferredMeasurementControlReadingSupport

// ASN.1:    DeferredMeasurementControlReadingSupport ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void DeferredMeasurementControlReadingSupport(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bmodeSpecificInfo = AddIE("modeSpecificInfo","Exists","Absent", Indent + 3) ;

//      __ If modeSpecificInfo is not present, deferred SIB11, SIB11bis and SIB12 reading

//      __ with default measurement quantities applies

         int imodeSpecificInfo1 = PopIntIE(1, "modeSpecificInfo CHOICE { ", Indent + 2) ; // Law: IC{L

         switch(imodeSpecificInfo1)

         {

            case 0 : {               // fdd

               IntraFreqMeasQuantity_FDD_sib3(Indent+3) ; // Law: IIL},L

             } ; // modeSpecificInfo#7 3

             break ; // modeSpecificInfo#7

            case 1 : {               // tdd

               IntraFreqMeasQuantity_TDD_sib3List(Indent+3) ; // Law: IIL}L

            } // modeSpecificInfo#7 3

             break ; // modeSpecificInfo#7

            default : break ; // J) modeSpecificInfo#7

         } // modeSpecificInfo#7 2

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: DomainSpecificAccessRestrictionForSharedNetwork_v670ext

// ASN.1:    DomainSpecificAccessRestrictionForSharedNetwork_v670ext ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void DomainSpecificAccessRestrictionForSharedNetwork_v670ext(int Indent) // Law: LLI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(-2147483648) ; // DomainSpecificAccessRestrictionForSharedNetwork_v670ext

         switch(iSwitcher0)

         {

            case 0 /*domainSpecificAccessRestictionList*/ :

               BuildIE(0, "DomainSpecificAccessRestrictionForSharedNetwork_v670ext Type :: = CHOICE{ domainSpecificAccessRestictionList }", Indent+3);

               DomainSpecificAccessRestrictionList_v670ext(Indent+1) ;

               break ;  // Law: II,L

            default : break ; // L) DomainSpecificAccessRestrictionForSharedNetwork_v670ext

          } // M)  2 0

       } // R)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: DomainSpecificAccessRestrictionList_v670ext

// ASN.1:    DomainSpecificAccessRestrictionList_v670ext ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void DomainSpecificAccessRestrictionList_v670ext(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bdomainSpecificAccessRestrictionParametersForOperator1 = AddIE("domainSpecificAccessRestrictionParametersForOperator1","Exists","Absent", Indent + 3) ;

         bool bdomainSpecificAccessRestrictionParametersForOperator2 = AddIE("domainSpecificAccessRestrictionParametersForOperator2","Exists","Absent", Indent + 3) ;

         bool bdomainSpecificAccessRestrictionParametersForOperator3 = AddIE("domainSpecificAccessRestrictionParametersForOperator3","Exists","Absent", Indent + 3) ;

         bool bdomainSpecificAccessRestrictionParametersForOperator4 = AddIE("domainSpecificAccessRestrictionParametersForOperator4","Exists","Absent", Indent + 3) ;

         bool bdomainSpecificAccessRestrictionParametersForOperator5 = AddIE("domainSpecificAccessRestrictionParametersForOperator5","Exists","Absent", Indent + 3) ;

         if (bdomainSpecificAccessRestrictionParametersForOperator1) // Law: ILIO,L

            DomainSpecificAccessRestrictionParam_v670ext(Indent+1) ;

         if (bdomainSpecificAccessRestrictionParametersForOperator2) // Law: ILIO,L

            DomainSpecificAccessRestrictionParam_v670ext(Indent+1) ;

         if (bdomainSpecificAccessRestrictionParametersForOperator3) // Law: ILIO,L

            DomainSpecificAccessRestrictionParam_v670ext(Indent+1) ;

         if (bdomainSpecificAccessRestrictionParametersForOperator4) // Law: ILIO,L

            DomainSpecificAccessRestrictionParam_v670ext(Indent+1) ;

         if (bdomainSpecificAccessRestrictionParametersForOperator5) // Law: ILIOL

            DomainSpecificAccessRestrictionParam_v670ext(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: DomainSpecificAccessRestrictionParam_v670ext

// ASN.1:    DomainSpecificAccessRestrictionParam_v670ext ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void DomainSpecificAccessRestrictionParam_v670ext(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         DomainSpecificAccessRestriction_v670ext(Indent+1) ; // Law: II,L

         DomainSpecificAccessRestriction_v670ext(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: DomainSpecificAccessRestriction_v670ext

// ASN.1:    DomainSpecificAccessRestriction_v670ext ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void DomainSpecificAccessRestriction_v670ext(int Indent) // Law: LI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(1) ; // DomainSpecificAccessRestriction_v670ext

         switch(iSwitcher0)

         {

            case 0 /*noRestriction*/ :

               BuildIE(1, "DomainSpecificAccessRestriction_v670ext Type :: = CHOICE{ noRestriction }", Indent+3);

               NULL() ;

               break ;  // Law: IN,L

            case 1 : {               // restriction

               bool bdomainSpecficAccessClassBarredList = AddIE("domainSpecficAccessClassBarredList","Exists","Absent", Indent + 5) ;

               if (bdomainSpecficAccessClassBarredList) // Law: IIOL

                  AccessClassBarredList(Indent+2) ;

             } // O) DomainSpecificAccessRestriction_v670ext 3 1

             break ; // N) DomainSpecificAccessRestriction_v670ext

            default : break ; // L) DomainSpecificAccessRestriction_v670ext

          } // M)  2 0

       } // R)  1 0

// _ If IntraFreqMeasQuantity_FDD is used in InterRATMeasQuantity, then only

//  __ cpich_Ec_N0 and cpich_RSCP are allowed.

//  __ dummy is not used in this version of the specification, it should

//  __ not be sent and if received the UE behaviour is not specified.


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: IntraFreqMeasQuantity_FDD

// ASN.1:        cpich_RSCP,

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void IntraFreqMeasQuantity_FDD(int Indent) // Law: I=E{LI,LI

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(2) ; // IntraFreqMeasQuantity_FDD

         switch(iSwitcher1)

         {

            case 0 : BuildIE(2,"IntraFreqMeasQuantity_FDD ENUMERATED { cpich_Ec_N0 } ",Indent + 5) ; break ;

            case 1 : BuildIE(2,"IntraFreqMeasQuantity_FDD ENUMERATED { cpich_RSCP } ",Indent + 5) ; break ;

            case 2 : BuildIE(2,"IntraFreqMeasQuantity_FDD ENUMERATED { pathloss } ",Indent + 5) ; break ;

            case 3 : BuildIE(2,"IntraFreqMeasQuantity_FDD ENUMERATED { dummy } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: IntraFreqMeasQuantity_FDD_sib3

// ASN.1:        cpich_Ec_N0, cpich_RSCP }

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void IntraFreqMeasQuantity_FDD_sib3(int Indent) // Law: LLI=E{LI,I

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(1) ; // IntraFreqMeasQuantity_FDD_sib3

         switch(iSwitcher1)

         {

            case 0 : BuildIE(1,"IntraFreqMeasQuantity_FDD_sib3 ENUMERATED { cpich_Ec_N0 } ",Indent + 5) ; break ;

            case 1 : BuildIE(1,"IntraFreqMeasQuantity_FDD_sib3 ENUMERATED { cpich_RSCP } ",Indent + 5) ; break ;

            default: break ;

         }

      }

//  __ dummy is not used in this version of the specification, it should

//  __ not be sent and if received the UE behaviour is not specified.


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: IntraFreqMeasQuantity_TDD

// ASN.1:        pathloss,

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void IntraFreqMeasQuantity_TDD(int Indent) // Law: I=E{LI,LI

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(2) ; // IntraFreqMeasQuantity_TDD

         switch(iSwitcher1)

         {

            case 0 : BuildIE(2,"IntraFreqMeasQuantity_TDD ENUMERATED { primaryCCPCH_RSCP } ",Indent + 5) ; break ;

            case 1 : BuildIE(2,"IntraFreqMeasQuantity_TDD ENUMERATED { pathloss } ",Indent + 5) ; break ;

            case 2 : BuildIE(2,"IntraFreqMeasQuantity_TDD ENUMERATED { timeslotISCP } ",Indent + 5) ; break ;

            case 3 : BuildIE(2,"IntraFreqMeasQuantity_TDD ENUMERATED { dummy } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: IntraFreqMeasQuantity_TDDList

// ASN.1:     IntraFreqMeasQuantity_TDD

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void IntraFreqMeasQuantity_TDDList(int Indent) // Law: LLI=S(Z(IRI))FLIL

      {

         for(int iLoop1 = 1; iLoop1 <= 4; iLoop1++)

         {

            IntraFreqMeasQuantity_TDD(Indent) ;

         }

      } // End of IntraFreqMeasQuantity_TDDList


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: IntraFreqMeasQuantity_TDD_sib3List

// ASN.1:     ENUMERATED { primaryCCPCH_RSCP, timeslotISCP }

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void IntraFreqMeasQuantity_TDD_sib3List(int Indent) // Law: LI=S(Z(IRI))FLE{I,I}L

      {

         int iSwitcher1 = 0 ;

         for(int iLoop1 = 1; iLoop1 <= 2; iLoop1++)

         {

            iSwitcher1 = PeekIntIE(1) ;

            switch(iSwitcher1)

            {

               case 0 : BuildIE(1,"IntraFreqMeasQuantity_TDD_sib3List ENUMERATED { primaryCCPCH_RSCP } ",Indent + 4) ; break ;

               case 1 : BuildIE(1,"IntraFreqMeasQuantity_TDD_sib3List ENUMERATED { timeslotISCP } ",Indent + 4) ; break ;

               default: break ;

            } // End of IntraFreqMeasQuantity_TDD_sib3List 3

         } // End of 1 2

      } // End of IntraFreqMeasQuantity_TDD_sib3List


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SysInfoType3_v4b0ext_IEs

// ASN.1:    SysInfoType3_v4b0ext_IEs ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SysInfoType3_v4b0ext_IEs(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bmapping_LCR = AddIE("mapping_LCR","Exists","Absent", Indent + 3) ;

         if (bmapping_LCR) // Law: IIOL

            Mapping_LCR_r4(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SysInfoType3_v590ext

// ASN.1:    SysInfoType3_v590ext ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SysInfoType3_v590ext(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bcellSelectReselectInfo_v590ext = AddIE("cellSelectReselectInfo_v590ext","Exists","Absent", Indent + 3) ;

         if (bcellSelectReselectInfo_v590ext) // Law: IIOL

            CellSelectReselectInfo_v590ext(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SysInfoType3_v5c0ext_IEs

// ASN.1:    SysInfoType3_v5c0ext_IEs ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SysInfoType3_v5c0ext_IEs(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bcellSelectReselectInfoTreselectionScaling_v5c0ext = AddIE("cellSelectReselectInfoTreselectionScaling_v5c0ext","Exists","Absent", Indent + 3) ;

         if (bcellSelectReselectInfoTreselectionScaling_v5c0ext) // Law: ILIOL

            CellSelectReselectInfoTreselectionScaling_v5c0ext(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SysInfoType3_v670ext

// ASN.1:    SysInfoType3_v670ext ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SysInfoType3_v670ext(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bdomainSpecificAccessRestrictionParametersForPLMNOfMIB = AddIE("domainSpecificAccessRestrictionParametersForPLMNOfMIB","Exists","Absent", Indent + 3) ;

         bool bdomainSpecificAccessRestictionForSharedNetwork = AddIE("domainSpecificAccessRestictionForSharedNetwork","Exists","Absent", Indent + 3) ;

         if (bdomainSpecificAccessRestrictionParametersForPLMNOfMIB) // Law: ILIO,L

            DomainSpecificAccessRestrictionParam_v670ext(Indent+1) ;

         if (bdomainSpecificAccessRestictionForSharedNetwork) // Law: ILIOL

            DomainSpecificAccessRestrictionForSharedNetwork_v670ext(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SysInfoType3_v770ext_IEs

// ASN.1:    SysInfoType3_v770ext_IEs ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SysInfoType3_v770ext_IEs(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bdeferredMeasurementControlReadingSupport = AddIE("deferredMeasurementControlReadingSupport","Exists","Absent", Indent + 3) ;

         bool bq_QualMin_Offset = AddIE("q_QualMin_Offset","Exists","Absent", Indent + 3) ;

         bool bq_RxlevMin_Offset = AddIE("q_RxlevMin_Offset","Exists","Absent", Indent + 3) ;

         bool bmbsfnOnlyService = AddIE("mbsfnOnlyService","Exists","Absent", Indent + 3) ;

         if (bdeferredMeasurementControlReadingSupport) // Law: ILIO,L

            DeferredMeasurementControlReadingSupport(Indent+1) ;

         if (bq_QualMin_Offset) // Law: IIO,L

            Q_QualMin_Offset(Indent+1) ;

         if (bq_RxlevMin_Offset) // Law: IIO,L

            Q_RxlevMin_Offset(Indent+1) ;

         if (bmbsfnOnlyService) // Law: IIOL

            MBSFNOnlyService(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SysInfoType3_v830ext_IEs

// ASN.1:    SysInfoType3_v830ext_IEs ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SysInfoType3_v830ext_IEs(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bpagingPermissionWithAccessControlParametersForPLMNOfMIB = AddIE("pagingPermissionWithAccessControlParametersForPLMNOfMIB","Exists","Absent", Indent + 3) ;

         bool bpagingPermissionWithAccessControlParametersForSharedNetwork = AddIE("pagingPermissionWithAccessControlParametersForSharedNetwork","Exists","Absent", Indent + 3) ;

         if (bpagingPermissionWithAccessControlParametersForPLMNOfMIB) // Law: ILIO,L

            PagingPermissionWithAccessControlParameters(Indent+1) ;

         if (bpagingPermissionWithAccessControlParametersForSharedNetwork) // Law: ILIOL

            PagingPermissionWithAccessControlForSharedNetwork(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SysInfoType3_v860ext_IEs

// ASN.1:    SysInfoType3_v860ext_IEs ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SysInfoType3_v860ext_IEs(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bcsgIdentity = AddIE("csgIdentity","Exists","Absent", Indent + 3) ;

         bool bcsg_PSCSplitInfo = AddIE("csg_PSCSplitInfo","Exists","Absent", Indent + 3) ;

         if (bcsgIdentity) // Law: IIO,L

            CSG_Identity(Indent+1) ;

         if (bcsg_PSCSplitInfo) // Law: IIOL

            CSG_PSCSplitInfo(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SysInfoType3_v870ext_IEs

// ASN.1:    SysInfoType3_v870ext_IEs ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SysInfoType3_v870ext_IEs(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bcellAccessRestriction = AddIE("cellAccessRestriction","Exists","Absent", Indent + 3) ;

         if (bcellAccessRestriction) // Law: IIOL

            CellAccessRestriction_v870ext(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SysInfoType3_v920ext_IEs

// ASN.1:    SysInfoType3_v920ext_IEs ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SysInfoType3_v920ext_IEs(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bimsEmergencySupportIndicator = AddIE("imsEmergencySupportIndicator","Exists","Absent", Indent + 3) ;

         //        imsEmergencySupportIndicator ENUMERATED { supported } OPTIONAL


         if(bimsEmergencySupportIndicator)

            PeekIE("imsEmergencySupportIndicator", sParseErr, "supported", Indent) ;

    } // O)  0 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SysInfoType3_vcxyext_IEs

// ASN.1:    SysInfoType3_vcxyext_IEs ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SysInfoType3_vcxyext_IEs(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool btxFailParams = AddIE("txFailParams","Exists","Absent", Indent + 3) ;

         if (btxFailParams) // Law: IIOL

            TxFailParams(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SysInfoType3

// ASN.1:    SysInfoType3 ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SysInfoType3(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bv4b0NonCriticalExtensions = AddIE("v4b0NonCriticalExtensions","Exists","Absent", Indent + 3) ;

         BuildIE("sib4indicator BOOLEAN = ","True","False", Indent+1) ; // Boolean

//      __ UTRAN mobility IEs

         CellIdentity(Indent+1) ; // Law: II,L

         CellSelectReselectInfoSIB_3_4(Indent+1) ; // Law: II,L

         CellAccessRestriction(Indent+1) ; // Law: II,L

//      __ Extension mechanism for non_ release99 information

         //

         if (bv4b0NonCriticalExtensions)

         { // 0 v4b0NonCriticalExtensions 2

            bool bv590NonCriticalExtension = AddIE("v590NonCriticalExtension#12","Exists","Absent", Indent + 4) ;

            SysInfoType3_v4b0ext_IEs(Indent+2) ; // Law: II,L

            //

            if (bv590NonCriticalExtension)

            { // 0 v590NonCriticalExtension 3

               bool bv5c0NoncriticalExtension = AddIE("v5c0NoncriticalExtension#13","Exists","Absent", Indent + 5) ;

               SysInfoType3_v590ext(Indent+3) ; // Law: II,L

               //

               if (bv5c0NoncriticalExtension)

               { // 0 v5c0NoncriticalExtension 4

                  bool bv670NonCriticalExtension = AddIE("v670NonCriticalExtension#14","Exists","Absent", Indent + 6) ;

                  SysInfoType3_v5c0ext_IEs(Indent+4) ; // Law: II,L

                  //

                  if (bv670NonCriticalExtension)

                  { // 0 v670NonCriticalExtension 5

                     bool bv770NonCriticalExtension = AddIE("v770NonCriticalExtension#15","Exists","Absent", Indent + 7) ;

                     SysInfoType3_v670ext(Indent+5) ; // Law: II,L

                     //

                     if (bv770NonCriticalExtension)

                     { // 0 v770NonCriticalExtension 6

                        bool bv830NonCriticalExtension = AddIE("v830NonCriticalExtension#16","Exists","Absent", Indent + 8) ;

                        SysInfoType3_v770ext_IEs(Indent+6) ; // Law: II,L

                        //

                        if (bv830NonCriticalExtension)

                        { // 0 v830NonCriticalExtension 7

                           bool bv860NonCriticalExtension = AddIE("v860NonCriticalExtension#17","Exists","Absent", Indent + 9) ;

                           SysInfoType3_v830ext_IEs(Indent+7) ; // Law: II,L

                           //

                           if (bv860NonCriticalExtension)

                           { // 0 v860NonCriticalExtension 8

                              bool bv870NonCriticalExtension = AddIE("v870NonCriticalExtension#18","Exists","Absent", Indent + 10) ;

                              SysInfoType3_v860ext_IEs(Indent+8) ; // Law: II,L

                              //

                              if (bv870NonCriticalExtension)

                              { // 0 v870NonCriticalExtension 9

                                 bool bv900NonCriticalExtension = AddIE("v900NonCriticalExtension#19","Exists","Absent", Indent + 11) ;

                                 SysInfoType3_v870ext_IEs(Indent+9) ; // Law: II,L

                                 //

                                 if (bv900NonCriticalExtension)

                                 { // 0 v900NonCriticalExtension 10

                                    bool bvcxyNonCriticalExtension = AddIE("vcxyNonCriticalExtension#20","Exists","Absent", Indent + 12) ;

                                    SysInfoType3_v920ext_IEs(Indent+10) ; // Law: II,L

                                    //

                                    if (bvcxyNonCriticalExtension)

                                    { // 0 vcxyNonCriticalExtension 11

                                       bool bnonCriticalExtensions = AddIE("nonCriticalExtensions","Exists","Absent", Indent + 13) ;

                                       SysInfoType3_vcxyext_IEs(Indent+11) ; // Law: II,L

                                       if(bnonCriticalExtensions) // OPTIONAL

                                          PeekIE("nonCriticalExtensions", sParseErr, "{}", Indent) ; // Law: IS{}OL

                                    } // vcxyNonCriticalExtension#20 11

                                 } // v900NonCriticalExtension#19 10

                              } // v870NonCriticalExtension#18 9

                           } // v860NonCriticalExtension#17 8

                        } // v830NonCriticalExtension#16 7

                     } // v770NonCriticalExtension#15 6

                  } // v670NonCriticalExtension#14 5

               } // v5c0NoncriticalExtension#13 4

            } // v590NonCriticalExtension#12 3

         } // v4b0NonCriticalExtensions#11 2

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: RAB_Identity

// ASN.1:    RAB_Identity ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void RAB_Identity(int Indent) // Law: LI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(1) ; // RAB_Identity

         switch(iSwitcher0)

         {

            case 0 :BuildIE(8,"gsm_MAP_RAB_Identity = ",Indent + 4) ;

               break ; // 1// BIT STRING

            case 1 :BuildIE(8,"ansi_41_RAB_Identity = ",Indent + 4) ;

               break ; // 2// BIT STRING

            default : break ; // L) RAB_Identity

          } // M)  2 0

       } // R)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingRecord

// ASN.1:    PagingRecord ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void PagingRecord(int Indent) // Law: LLI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(2) ; // PagingRecord

         switch(iSwitcher0)

         {

            case 0 : {               // cn_Identity

               PagingCause(Indent+2) ; // Law: II,L

               CN_DomainIdentity(Indent+2) ; // Law: II,L

               CN_PagedUE_Identity(Indent+2) ; // Law: IIL},L

             } ; // PagingRecord 3

             break ; // PagingRecord

            case 1 : {               // utran_Identity

               bool bcn_OriginatedPage_connectedMode_UE = AddIE("cn_OriginatedPage_connectedMode_UE#23","Exists","Absent", Indent + 5) ;

               U_RNTI(Indent+2) ; // Law: II,L

               //

               if (bcn_OriginatedPage_connectedMode_UE)

               { // 0 cn_OriginatedPage_connectedMode_UE 4

                  PagingCause(Indent+3) ; // Law: II,L

                  CN_DomainIdentity(Indent+3) ; // Law: II,L

                  PagingRecordTypeID(Indent+3) ; // B)  // Law: IIL}OL

               } // C) End of PagingRecord 4

             } // O) PagingRecord 3 1

             break ; // N) PagingRecord

            default : break ; // L) PagingRecord

          } // M)  2 0

       } // R)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingRecord2_r5

// ASN.1:    PagingRecord2_r5 ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void PagingRecord2_r5(int Indent) // Law: LI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(-2147483648) ; // PagingRecord2_r5

         switch(iSwitcher0)

         {

            case 0 : {               // utran_SingleUE_Identity

               bool bcn_OriginatedPage_connectedMode_UE = AddIE("cn_OriginatedPage_connectedMode_UE#25","Exists","Absent", Indent + 5) ;

               U_RNTI(Indent+2) ; // Law: II,L

               //

               if (bcn_OriginatedPage_connectedMode_UE)

               { // 0 cn_OriginatedPage_connectedMode_UE 4

                  PagingCause(Indent+3) ; // Law: II,L

                  CN_DomainIdentity(Indent+3) ; // Law: II,L

                  PagingRecordTypeID(Indent+3) ; // B)  // Law: IIL}O,L

               } // C) End of PagingRecord2_r5 4

               RRC_ConnectionReleaseInformation(Indent+2) ; // Law: IIL},L

             } ; // PagingRecord2_r5 3

             break ; // PagingRecord2_r5

            case 1 /*utran_GroupIdentity*/:

            for(int iLoop1 = 1; iLoop1 <= maxURNTI_Group; iLoop1++)

            {

               GroupIdentityWithReleaseInformation(Indent) ;

            } // End of utran_GroupIdentity

            break; // 2 // Law: IS(Z(IRI))FLIL

            default : break ; // L) PagingRecord2_r5

          } // M)  2 0

       } // R)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingRecordList

// ASN.1:     PagingRecord

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PagingRecordList(int Indent) // Law: LI=S(Z(IRI))FLIL

      {

         for(int iLoop1 = 1; iLoop1 <= maxPage1; iLoop1++)

         {

            PagingRecord(Indent) ;

         }

      } // End of PagingRecordList


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingRecord2List_r5

// ASN.1:     PagingRecord2_r5

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PagingRecord2List_r5(int Indent) // Law: LI=S(Z(IRI))FLIL

      {

         for(int iLoop1 = 1; iLoop1 <= maxPage1; iLoop1++)

         {

            PagingRecord2_r5(Indent) ;

         }

      } // End of PagingRecord2List_r5


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingPermissionWithAccessControlParameters

// ASN.1:    PagingPermissionWithAccessControlParameters ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PagingPermissionWithAccessControlParameters(int Indent) // Law: LLI=S{L

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(2) ;

         switch(iSwitcher1)

         {

            case 0 : BuildIE(2,"pagingResponseRestrictionIndicator ENUMERATED { all } ",Indent + 4) ; break ;

            case 1 : BuildIE(2,"pagingResponseRestrictionIndicator ENUMERATED { cS } ",Indent + 4) ; break ;

            case 2 : BuildIE(2,"pagingResponseRestrictionIndicator ENUMERATED { pS } ",Indent + 4) ; break ;

            case 3 : BuildIE(2,"pagingResponseRestrictionIndicator ENUMERATED { none } ",Indent + 4) ; break ;

            default: break ;

         }

         iSwitcher1 = PeekIntIE(2) ;

         switch(iSwitcher1)

         {

            case 0 : BuildIE(2,"locationRegistrationRestrictionIndicator ENUMERATED { all } ",Indent + 3) ; break ;

            case 1 : BuildIE(2,"locationRegistrationRestrictionIndicator ENUMERATED { cS } ",Indent + 3) ; break ;

            case 2 : BuildIE(2,"locationRegistrationRestrictionIndicator ENUMERATED { pS } ",Indent + 3) ; break ;

            default: break ;

         } // End of locationRegistrationRestrictionIndicator 2

         LocationRegistrationParameters(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingPermissionWithAccessControlForSharedNetwork

// ASN.1:    PagingPermissionWithAccessControlForSharedNetwork ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void PagingPermissionWithAccessControlForSharedNetwork(int Indent) // Law: LI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(1) ; // PagingPermissionWithAccessControlForSharedNetwork

         switch(iSwitcher0)

         {

            case 0 /*pagingPermissionWithAccessControlList*/ :

               BuildIE(1, "PagingPermissionWithAccessControlForSharedNetwork Type :: = CHOICE{ pagingPermissionWithAccessControlList }", Indent+3);

               PagingPermissionWithAccessControlList(Indent+1) ;

               break ;  // Law: II,L

            case 1 : PagingPermissionWithAccessControlParameters(Indent+1) ; break ; // Law: IIL}L

            default : break ;

         } //  2

      } // function PagingPermissionWithAccessControlForSharedNetwork terminated


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: IntraDomainNasNodeSelector

// ASN.1:    IntraDomainNasNodeSelector ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void IntraDomainNasNodeSelector(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         int iversion1 = PopIntIE(1, "version CHOICE { ", Indent + 2) ; // Law: IC{L

         switch(iversion1)

         {

            case 0 : {               // release99

               int icn_Type3 = PopIntIE(1, "cn_Type CHOICE { ", Indent + 4) ; // Law: IC{L

               switch(icn_Type3)

               {

                  case 0 /*gsm_Map_IDNNS*/ :

                     BuildIE(1, "IntraDomainNasNodeSelector Type :: = CHOICE{ gsm_Map_IDNNS }", Indent+5);

                     Gsm_map_IDNNS(Indent+4) ;

                     break ;  // Law: II,L

                  case 1 : Ansi_41_IDNNS(Indent+4) ; break ; // Law: IIL}L

                  default : break ;

               } // release99#27 4

             } // X) version#26 3 2

             break ; // Y) version#26

            case 1 : {               // later

               BuildIE(15,"futurecoding = ",Indent + 5) ;// BIT STRING

             } // O) version#26 3 2

             break ; // N) version#26

            default : break ; // L) version#26

          } // M) IntraDomainNasNodeSelector 2 1

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: LAI

// ASN.1:    LAI ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void LAI(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         PLMN_Identity(Indent+1) ; // Law: II,L

         BuildIE(16,"lac = ",Indent + 3) ;// BIT STRING

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: LocationRegistrationAccessClassBarredList

// ASN.1:     AccessClassBarred

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void LocationRegistrationAccessClassBarredList(int Indent) // Law: LI=S(Z(I))FLIL

      {

         for(int iLoop1 = 1; iLoop1 <= 15; iLoop1++)

         {

            AccessClassBarred(Indent) ;

         }

      } // End of LocationRegistrationAccessClassBarredList


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: LocationRegistrationParameters

// ASN.1:    LocationRegistrationParameters ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void LocationRegistrationParameters(int Indent) // Law: LI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(1) ; // LocationRegistrationParameters

         switch(iSwitcher0)

         {

            case 0 /*noRestriction*/ :

               BuildIE(1, "LocationRegistrationParameters Type :: = CHOICE{ noRestriction }", Indent+3);

               NULL() ;

               break ;  // Law: IN,L

            case 1 : LocationRegistrationAccessClassBarredList(Indent+1) ; break ; // Law: IIL}L

            default : break ;

         } //  2

      } // function LocationRegistrationParameters terminated


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: TMSI_GSM_MAP

// ASN.1:   TMSI_GSM_MAP ::= BIT STRING (SIZE (32))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void TMSI_GSM_MAP(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(32,"TMSI_GSM_MAP ::= BIT STRING (SIZE (32)) = ",Indent + 1) ;

      } // End of TMSI_GSM_MAP


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: BCCH_ModificationTime

// ASN.1:   BCCH_ModificationTime ::= INTEGER (0..511)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void BCCH_ModificationTime(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((511)-(0)-1)+1 ;

         BuildIE(isize,"BCCH_ModificationTime ::= INTEGER(0..511) =",Indent + 1) ;

      } // End of BCCH_ModificationTime


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: SRNC_Identity

// ASN.1:   SRNC_Identity ::= BIT STRING (SIZE (12))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void SRNC_Identity(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(12,"SRNC_Identity ::= BIT STRING (SIZE (12)) = ",Indent + 1) ;

      } // End of SRNC_Identity


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: S_RNTI

// ASN.1:    S_RNTI ::= BIT STRING (SIZE (20))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void S_RNTI(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(20,"S_RNTI ::= BIT STRING (SIZE (20)) = ",Indent + 1) ;

      } // End of S_RNTI


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: S_RNTI_2

// ASN.1:    S_RNTI_2 ::= BIT STRING (SIZE (10))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void S_RNTI_2(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(10,"S_RNTI_2 ::= BIT STRING (SIZE (10)) = ",Indent + 1) ;

      } // End of S_RNTI_2


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Gsm_map_IDNNS

// ASN.1:    Gsm_map_IDNNS ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Gsm_map_IDNNS(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         int iroutingbasis1 = PopIntIE(3, "routingbasis CHOICE { ", Indent + 2) ; // Law: IC{L

         switch(iroutingbasis1)

         {

            case 0 : {               // localPTMSI

               RoutingParameter(Indent+3) ; // Law: IIL},L

             } ; // routingbasis#30 3

             break ; // routingbasis#30

            case 1 : {               // tMSIofsamePLMN

               RoutingParameter(Indent+3) ; // Law: IIL},L

             } ; // routingbasis#30 3

             break ; // routingbasis#30

            case 2 : {               // tMSIofdifferentPLMN

               RoutingParameter(Indent+3) ; // Law: IIL},L

             } ; // routingbasis#30 3

             break ; // routingbasis#30

            case 3 : {               // iMSIresponsetopaging

               RoutingParameter(Indent+3) ; // Law: IIL},L

             } ; // routingbasis#30 3

             break ; // routingbasis#30

            case 4 : {               // iMSIcauseUEinitiatedEvent

               RoutingParameter(Indent+3) ; // Law: IIL},L

             } ; // routingbasis#30 3

             break ; // routingbasis#30

            case 5 : {               // iMEI

               RoutingParameter(Indent+3) ; // Law: IIL},L

             } ; // routingbasis#30 3

             break ; // routingbasis#30

            case 6 : {               // spare2

               RoutingParameter(Indent+3) ; // Law: IIL},L

             } ; // routingbasis#30 3

             break ; // routingbasis#30

            case 7 : {               // spare1

               RoutingParameter(Indent+3) ; // Law: IIL}L

            } // routingbasis#30 3

             break ; // routingbasis#30

            default : break ; // U) routingbasis#30

          } // V) Gsm_map_IDNNS 2 1

//      __ dummy is not used in this version of the specification and

//      __ it should be ignored by the receiver.

         BuildIE("dummy BOOLEAN = ","True","False", Indent+1) ; // Boolean

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: Digit

// ASN.1:       Digit ::= INTEGER (0..9)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void Digit(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((9)-(0)-1)+1 ;

         BuildIE(isize,"Digit ::= INTEGER(0..9) =",Indent + 1) ;

      } // End of Digit


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: IMEI

// ASN.1:     IMEI_Digit

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void IMEI(int Indent) // Law: LI=S(Z(I))FLIL

      {

         for(int iLoop1 = 1; iLoop1 <= 15; iLoop1++)

         {

            IMEI_Digit(Indent) ;

         }

      } // End of IMEI


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: IMEI_Digit

// ASN.1:    IMEI_Digit ::= INTEGER (0..15)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void IMEI_Digit(int Indent) // Law: LI=G(IRI)L

      {

         int isize = log2l((15)-(0)-1)+1 ;

         BuildIE(isize,"IMEI_Digit ::= INTEGER(0..15) =",Indent + 1) ;

      } // End of IMEI_Digit


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: IMSI_GSM_MAP

// ASN.1:     Digit

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void IMSI_GSM_MAP(int Indent) // Law: LI=S(Z(IRI))FLIL

      {

         for(int iLoop1 = 6; iLoop1 <= 21; iLoop1++)

         {

            Digit(Indent) ;

         }

      } // End of IMSI_GSM_MAP


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MCC

// ASN.1:     Digit

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void MCC(int Indent) // Law: LI=S(Z(I))FLIL

      {

         for(int iLoop1 = 1; iLoop1 <= 3; iLoop1++)

         {

            Digit(Indent) ;

         }

      } // End of MCC


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MNC

// ASN.1:     Digit

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void MNC(int Indent) // Law: LI=S(Z(IRI))FLIL

      {

         for(int iLoop1 = 2; iLoop1 <= 3; iLoop1++)

         {

            Digit(Indent) ;

         }

      } // End of MNC


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MultiplePLMN_List_r6

// ASN.1:    MultiplePLMN_List_r6 ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void MultiplePLMN_List_r6(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         BuildIE("mibPLMN_Identity BOOLEAN = ","True","False", Indent+1) ; // Boolean

         

         for(int iLoop1 = 1; iLoop1 <= 5; iLoop1++)

         {

            PLMN_IdentityWithOptionalMCC_r6(Indent) ;

         } // End of multiplePLMNs // Law: IS(Z(IRI))FLIL

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: NAS_Message

// ASN.1:    NAS_Message ::= OCTET STRING (SIZE (1..4095))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void NAS_Message(int Indent) // Law: LI=8T(Z(IRI))L

      {

         int isize = log2l((4095)-(1)-1)+1 ;

         int idata = PopIntIE(isize,"NAS_Message  ::= OCTET STRING (SIZE (1..4095)) = ",Indent + 2) ;

         for(int iLoop1 = 1; iLoop1 <= (1+idata) ; iLoop1++)

            BuildIE(8,"NAS_Message[1] ::= OCTET STRING 1 = ",Indent + 3) ;// OCTET STRING

      } // End of NAS_Message


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: NAS_Synchronisation_Indicator

// ASN.1:    NAS_Synchronisation_Indicator ::= BIT STRING(SIZE(4))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void NAS_Synchronisation_Indicator(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(4,"NAS_Synchronisation_Indicator ::= BIT STRING (SIZE (4)) = ",Indent + 1) ;

      } // End of NAS_Synchronisation_Indicator


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: NAS_SystemInformationGSM_MAP

// ASN.1:    NAS_SystemInformationGSM_MAP ::= OCTET STRING (SIZE (1..8))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void NAS_SystemInformationGSM_MAP(int Indent) // Law: LI=8T(Z(IRI))L

      {

         int isize = log2l((8)-(1)-1)+1 ;

         int idata = PopIntIE(isize,"NAS_SystemInformationGSM_MAP  ::= OCTET STRING (SIZE (1..8)) = ",Indent + 2) ;

         for(int iLoop1 = 1; iLoop1 <= (1+idata) ; iLoop1++)

            BuildIE(8,"NAS_SystemInformationGSM_MAP[1] ::= OCTET STRING 1 = ",Indent + 3) ;// OCTET STRING

      } // End of NAS_SystemInformationGSM_MAP


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: P_TMSI_GSM_MAP

// ASN.1:    P_TMSI_GSM_MAP ::= BIT STRING (SIZE (32))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void P_TMSI_GSM_MAP(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(32,"P_TMSI_GSM_MAP ::= BIT STRING (SIZE (32)) = ",Indent + 1) ;

      } // End of P_TMSI_GSM_MAP


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingPermissionWithAccessControlList

// ASN.1:    PagingPermissionWithAccessControlList ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PagingPermissionWithAccessControlList(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bpagingPermissionWithAccessControlParametersForOperator1 = AddIE("pagingPermissionWithAccessControlParametersForOperator1","Exists","Absent", Indent + 3) ;

         bool bpagingPermissionWithAccessControlParametersForOperator2 = AddIE("pagingPermissionWithAccessControlParametersForOperator2","Exists","Absent", Indent + 3) ;

         bool bpagingPermissionWithAccessControlParametersForOperator3 = AddIE("pagingPermissionWithAccessControlParametersForOperator3","Exists","Absent", Indent + 3) ;

         bool bpagingPermissionWithAccessControlParametersForOperator4 = AddIE("pagingPermissionWithAccessControlParametersForOperator4","Exists","Absent", Indent + 3) ;

         bool bpagingPermissionWithAccessControlParametersForOperator5 = AddIE("pagingPermissionWithAccessControlParametersForOperator5","Exists","Absent", Indent + 3) ;

         if (bpagingPermissionWithAccessControlParametersForOperator1) // Law: ILIO,L

            PagingPermissionWithAccessControlParameters(Indent+1) ;

         if (bpagingPermissionWithAccessControlParametersForOperator2) // Law: ILIO,L

            PagingPermissionWithAccessControlParameters(Indent+1) ;

         if (bpagingPermissionWithAccessControlParametersForOperator3) // Law: ILIO,L

            PagingPermissionWithAccessControlParameters(Indent+1) ;

         if (bpagingPermissionWithAccessControlParametersForOperator4) // Law: ILIO,L

            PagingPermissionWithAccessControlParameters(Indent+1) ;

         if (bpagingPermissionWithAccessControlParametersForOperator5) // Law: ILIOL

            PagingPermissionWithAccessControlParameters(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingRecordTypeID

// ASN.1:        tmsi_GSM_MAP_P_TMSI,

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void PagingRecordTypeID(int Indent) // Law: LI=E{LI,LI

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(2) ; // PagingRecordTypeID

         switch(iSwitcher1)

         {

            case 0 : BuildIE(2,"PagingRecordTypeID ENUMERATED { imsi_GSM_MAP } ",Indent + 5) ; break ;

            case 1 : BuildIE(2,"PagingRecordTypeID ENUMERATED { tmsi_GSM_MAP_P_TMSI } ",Indent + 5) ; break ;

            case 2 : BuildIE(2,"PagingRecordTypeID ENUMERATED { imsi_DS_41 } ",Indent + 5) ; break ;

            case 3 : BuildIE(2,"PagingRecordTypeID ENUMERATED { tmsi_DS_41 } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PLMN_Identity

// ASN.1:    PLMN_Identity ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PLMN_Identity(int Indent) // Law: LLI=S{L

      {

         int iSwitcher1 = 0 ;

         MCC(Indent+1) ; // Law: II,L

         MNC(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PLMN_IdentityWithOptionalMCC_r6

// ASN.1:    PLMN_IdentityWithOptionalMCC_r6 ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PLMN_IdentityWithOptionalMCC_r6(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bmcc = AddIE("mcc","Exists","Absent", Indent + 3) ;

         if (bmcc) // Law: IIO,L

            MCC(Indent+1) ;

         MNC(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PLMN_Type

// ASN.1:    PLMN_Type ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void PLMN_Type(int Indent) // Law: LI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(2) ; // PLMN_Type

         switch(iSwitcher0)

         {

            case 0 : {               // gsm_MAP

               PLMN_Identity(Indent+2) ; // Law: IIL},L

             } ; // PLMN_Type 3

             break ; // PLMN_Type

            case 1 : {               // ansi_41

               P_REV(Indent+2) ; // Law: II,L

               Min_P_REV(Indent+2) ; // Law: II,L

               SID(Indent+2) ; // Law: II,L

               NID(Indent+2) ; // Law: IIL},L

             } ; // PLMN_Type 3

             break ; // PLMN_Type

            case 2 : {               // gsm_MAP_and_ANSI_41

               PLMN_Identity(Indent+2) ; // Law: II,L

               P_REV(Indent+2) ; // Law: II,L

               Min_P_REV(Indent+2) ; // Law: II,L

               SID(Indent+2) ; // Law: II,L

               NID(Indent+2) ; // Law: IIL},L

             } ; // PLMN_Type 3

             break ; // PLMN_Type

            case 3 /*spare*/ :

               BuildIE(0, "PLMN_Type Type :: = CHOICE{ spare }", Indent+3);

               NULL() ;

               break ;  // Law: INL

            default : break ; // L) PLMN_Type

          } // M)  2 0

       } // R)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: RAI

// ASN.1:    RAI ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void RAI(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         LAI(Indent+1) ; // Law: II,L

         RoutingAreaCode(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: RoutingAreaCode

// ASN.1:    RoutingAreaCode ::= BIT STRING (SIZE (8))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void RoutingAreaCode(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(8,"RoutingAreaCode ::= BIT STRING (SIZE (8)) = ",Indent + 1) ;

      } // End of RoutingAreaCode


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: RoutingParameter

// ASN.1:    RoutingParameter ::= BIT STRING (SIZE (10))

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void RoutingParameter(int Indent) // Law: LI=B(Z(I))L

      {

         BuildIE(10,"RoutingParameter ::= BIT STRING (SIZE (10)) = ",Indent + 1) ;

      } // End of RoutingParameter


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CN_DomainIdentity

// ASN.1:        ps_domain }

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void CN_DomainIdentity(int Indent) // Law: LI=E{LI,LI

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(1) ; // CN_DomainIdentity

         switch(iSwitcher1)

         {

            case 0 : BuildIE(1,"CN_DomainIdentity ENUMERATED { cs_domain } ",Indent + 5) ; break ;

            case 1 : BuildIE(1,"CN_DomainIdentity ENUMERATED { ps_domain } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingCause

// ASN.1:        terminatingStreamingCall,

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void PagingCause(int Indent) // Law: LLLI=E{LI,LI

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(3) ; // PagingCause

         switch(iSwitcher1)

         {

            case 0 : BuildIE(3,"PagingCause ENUMERATED { terminatingConversationalCall } ",Indent + 5) ; break ;

            case 1 : BuildIE(3,"PagingCause ENUMERATED { terminatingStreamingCall } ",Indent + 5) ; break ;

            case 2 : BuildIE(3,"PagingCause ENUMERATED { terminatingInteractiveCall } ",Indent + 5) ; break ;

            case 3 : BuildIE(3,"PagingCause ENUMERATED { terminatingBackgroundCall } ",Indent + 5) ; break ;

            case 4 : BuildIE(3,"PagingCause ENUMERATED { terminatingHighPrioritySignalling } ",Indent + 5) ; break ;

            case 5 : BuildIE(3,"PagingCause ENUMERATED { terminatingLowPrioritySignalling } ",Indent + 5) ; break ;

            case 6 : BuildIE(3,"PagingCause ENUMERATED { terminatingCauseUnknown } ",Indent + 5) ; break ;

            case 7 : BuildIE(3,"PagingCause ENUMERATED { spare } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: CN_PagedUE_Identity

// ASN.1:    CN_PagedUE_Identity ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void CN_PagedUE_Identity(int Indent) // Law: LLI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(3) ; // CN_PagedUE_Identity

         switch(iSwitcher0)

         {

            case 0 /*imsi_GSM_MAP*/ :

               BuildIE(3, "CN_PagedUE_Identity Type :: = CHOICE{ imsi_GSM_MAP }", Indent+3);

               IMSI_GSM_MAP(Indent+1) ;

               break ;  // Law: II,L

            case 1 /*tmsi_GSM_MAP*/ :

               BuildIE(3, "CN_PagedUE_Identity Type :: = CHOICE{ tmsi_GSM_MAP }", Indent+3);

               TMSI_GSM_MAP(Indent+1) ;

               break ;  // Law: II,L

            case 2 /*p_TMSI_GSM_MAP*/ :

               BuildIE(3, "CN_PagedUE_Identity Type :: = CHOICE{ p_TMSI_GSM_MAP }", Indent+3);

               P_TMSI_GSM_MAP(Indent+1) ;

               break ;  // Law: II,L

            case 3 /*imsi_DS_41*/ :

               BuildIE(3, "CN_PagedUE_Identity Type :: = CHOICE{ imsi_DS_41 }", Indent+3);

               IMSI_DS_41(Indent+1) ;

               break ;  // Law: II,L

            case 4 /*tmsi_DS_41*/ :

               BuildIE(3, "CN_PagedUE_Identity Type :: = CHOICE{ tmsi_DS_41 }", Indent+3);

               TMSI_DS_41(Indent+1) ;

               break ;  // Law: II,L

            case 5 /*spare3*/ :

               BuildIE(3, "CN_PagedUE_Identity Type :: = CHOICE{ spare3 }", Indent+3);

               NULL() ;

               break ;  // Law: IN,L

            case 6 /*spare2*/ :

               BuildIE(3, "CN_PagedUE_Identity Type :: = CHOICE{ spare2 }", Indent+3);

               NULL() ;

               break ;  // Law: IN,L

            case 7 /*spare1*/ :

               BuildIE(3, "CN_PagedUE_Identity Type :: = CHOICE{ spare1 }", Indent+3);

               NULL() ;

               break ;  // Law: INL

            default : break ; // L) CN_PagedUE_Identity

          } // M)  2 0

       } // R)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: U_RNTI

// ASN.1:       U_RNTI ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void U_RNTI(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         SRNC_Identity(Indent+1) ; // Law: II,L

         S_RNTI(Indent+1) ; // Law: IIL}L

      } //  1


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingRecord

// ASN.1:    PagingRecord ::= CHOICE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void PagingRecord(int Indent) // Law: LLI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(2) ; // PagingRecord

         switch(iSwitcher0)

         {

            case 0 : {               // cn_Identity

               PagingCause(Indent+2) ; // Law: II,L

               CN_DomainIdentity(Indent+2) ; // Law: II,L

               CN_PagedUE_Identity(Indent+2) ; // Law: IIL},L

             } ; // PagingRecord 3

             break ; // PagingRecord

            case 1 : {               // utran_Identity

               bool bcn_OriginatedPage_connectedMode_UE = AddIE("cn_OriginatedPage_connectedMode_UE#44","Exists","Absent", Indent + 5) ;

               U_RNTI(Indent+2) ; // Law: II,L

               //

               if (bcn_OriginatedPage_connectedMode_UE)

               { // 0 cn_OriginatedPage_connectedMode_UE 4

                  PagingCause(Indent+3) ; // Law: II,L

                  CN_DomainIdentity(Indent+3) ; // Law: II,L

                  PagingRecordTypeID(Indent+3) ; // B)  // Law: IIL}OL

               } // C) End of PagingRecord 4

             } // O) PagingRecord 3 1

             break ; // N) PagingRecord

            default : break ; // L) PagingRecord

          } // M)  2 0

       } // R)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingRecordList

// ASN.1:     PagingRecord

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PagingRecordList(int Indent) // Law: LI=S(Z(IRI))FLIL

      {

         for(int iLoop1 = 1; iLoop1 <= maxPage1; iLoop1++)

         {

            PagingRecord(Indent) ;

         }

      } // End of PagingRecordList


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingType1_v590ext_IEs

// ASN.1:    PagingType1_v590ext_IEs ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PagingType1_v590ext_IEs(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bpagingRecord2List = AddIE("pagingRecord2List","Exists","Absent", Indent + 3) ;

//      __ User equipment IEs

         if (bpagingRecord2List) // Law: IIOL

            PagingRecord2List_r5(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingType1_v860ext_IEs

// ASN.1:    PagingType1_v860ext_IEs ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PagingType1_v860ext_IEs(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool betws_Information = AddIE("etws_Information","Exists","Absent", Indent + 3) ;

//      __ Other IEs

         if (betws_Information) // Law: IIOL

            ETWS_Information(Indent+1) ;

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingType1_vcxyext_IEs

// ASN.1:    PagingType1_vcxyext_IEs ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PagingType1_vcxyext_IEs(int Indent) // Law: LI=S{L

      {

         int iSwitcher1 = 0 ;

         bool bbcch_ModificationInfo_vcxyext = AddIE("bcch_ModificationInfo_vcxyext","Exists","Absent", Indent + 3) ;

         if (bbcch_ModificationInfo_vcxyext) // Law: IIOL

            BCCH_ModificationInfo_vcxyext(Indent+1) ;

       } // O)  1 0

//  __ ***************************************************

//  __

//  __ PAGING TYPE 1

//  __

//  __ ***************************************************


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PagingType1

// ASN.1:    PagingType1 ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PagingType1(int Indent) // Law: I=S{L

      {

         int iSwitcher1 = 0 ;

         bool bpagingRecordList = AddIE("pagingRecordList","Exists","Absent", Indent + 3) ;

         bool bbcch_ModificationInfo = AddIE("bcch_ModificationInfo","Exists","Absent", Indent + 3) ;

         bool blaterNonCriticalExtensions = AddIE("laterNonCriticalExtensions","Exists","Absent", Indent + 3) ;

//      __ User equipment IEs

         if (bpagingRecordList) // Law: IIO,L

            PagingRecordList(Indent+1) ;

//      __ Other IEs

         if (bbcch_ModificationInfo) // Law: IIO,L

            BCCH_ModificationInfo(Indent+1) ;

         //

         if (blaterNonCriticalExtensions)

         { // 2 laterNonCriticalExtensions 2

            bool bpagingType1_r3_add_ext = AddIE("pagingType1_r3_add_ext","Exists","Absent", Indent + 4) ;

            bool bv590NonCriticalExtensions = AddIE("v590NonCriticalExtensions#46","Exists","Absent", Indent + 4) ;

//         __ Container for additional R99 extensions

               if (bpagingType1_r3_add_ext) // Law: IBO,L

                  pagingType1_r3_add_ext(Indent+2) ; // BITSTRING - this is wrong here

            //

            if (bv590NonCriticalExtensions)

            { // 1 v590NonCriticalExtensions 3

               bool bv860NonCriticalExtensions = AddIE("v860NonCriticalExtensions#47","Exists","Absent", Indent + 5) ;

               PagingType1_v590ext_IEs(Indent+3) ; // Law: II,L

               //

               if (bv860NonCriticalExtensions)

               { // 0 v860NonCriticalExtensions 4

                  bool bvcxyNonCriticalExtensions = AddIE("vcxyNonCriticalExtensions#48","Exists","Absent", Indent + 6) ;

                  PagingType1_v860ext_IEs(Indent+4) ; // Law: II,L

                  //

                  if (bvcxyNonCriticalExtensions)

                  { // 0 vcxyNonCriticalExtensions 5

                     bool bnonCriticalExtensions = AddIE("nonCriticalExtensions","Exists","Absent", Indent + 7) ;

                     PagingType1_vcxyext_IEs(Indent+5) ; // Law: II,L

                     if(bnonCriticalExtensions) // OPTIONAL

                        PeekIE("nonCriticalExtensions", sParseErr, "{}", Indent) ; // Law: IS{}OL

                  } // vcxyNonCriticalExtensions#48 5

               } // v860NonCriticalExtensions#47 4

            } // v590NonCriticalExtensions#46 3

         } // laterNonCriticalExtensions#45 2

       } // O)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MaxNumberOfReportingCellsType1

// ASN.1:        e1, e2, e3, e4, e5, e6}

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void MaxNumberOfReportingCellsType1(int Indent) // Law: LLI=E{LI,I

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(3) ; // MaxNumberOfReportingCellsType1

         switch(iSwitcher1)

         {

            case 0 : BuildIE(3,"MaxNumberOfReportingCellsType1 ENUMERATED { e1 } ",Indent + 5) ; break ;

            case 1 : BuildIE(3,"MaxNumberOfReportingCellsType1 ENUMERATED { e2 } ",Indent + 5) ; break ;

            case 2 : BuildIE(3,"MaxNumberOfReportingCellsType1 ENUMERATED { e3 } ",Indent + 5) ; break ;

            case 3 : BuildIE(3,"MaxNumberOfReportingCellsType1 ENUMERATED { e4 } ",Indent + 5) ; break ;

            case 4 : BuildIE(3,"MaxNumberOfReportingCellsType1 ENUMERATED { e5 } ",Indent + 5) ; break ;

            case 5 : BuildIE(3,"MaxNumberOfReportingCellsType1 ENUMERATED { e6 } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MaxNumberOfReportingCellsType2

// ASN.1:        e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12}

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void MaxNumberOfReportingCellsType2(int Indent) // Law: LLI=E{LI,I

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(4) ; // MaxNumberOfReportingCellsType2

         switch(iSwitcher1)

         {

            case 0 : BuildIE(4,"MaxNumberOfReportingCellsType2 ENUMERATED { e1 } ",Indent + 5) ; break ;

            case 1 : BuildIE(4,"MaxNumberOfReportingCellsType2 ENUMERATED { e2 } ",Indent + 5) ; break ;

            case 2 : BuildIE(4,"MaxNumberOfReportingCellsType2 ENUMERATED { e3 } ",Indent + 5) ; break ;

            case 3 : BuildIE(4,"MaxNumberOfReportingCellsType2 ENUMERATED { e4 } ",Indent + 5) ; break ;

            case 4 : BuildIE(4,"MaxNumberOfReportingCellsType2 ENUMERATED { e5 } ",Indent + 5) ; break ;

            case 5 : BuildIE(4,"MaxNumberOfReportingCellsType2 ENUMERATED { e6 } ",Indent + 5) ; break ;

            case 6 : BuildIE(4,"MaxNumberOfReportingCellsType2 ENUMERATED { e7 } ",Indent + 5) ; break ;

            case 7 : BuildIE(4,"MaxNumberOfReportingCellsType2 ENUMERATED { e8 } ",Indent + 5) ; break ;

            case 8 : BuildIE(4,"MaxNumberOfReportingCellsType2 ENUMERATED { e9 } ",Indent + 5) ; break ;

            case 9 : BuildIE(4,"MaxNumberOfReportingCellsType2 ENUMERATED { e10 } ",Indent + 5) ; break ;

            case 10 : BuildIE(4,"MaxNumberOfReportingCellsType2 ENUMERATED { e11 } ",Indent + 5) ; break ;

            case 11 : BuildIE(4,"MaxNumberOfReportingCellsType2 ENUMERATED { e12 } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MaxNumberOfReportingCellsType3

// ASN.1:        viactCellsPlus2,

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void MaxNumberOfReportingCellsType3(int Indent) // Law: LLI=E{LI,LI

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(3) ; // MaxNumberOfReportingCellsType3

         switch(iSwitcher1)

         {

            case 0 : BuildIE(3,"MaxNumberOfReportingCellsType3 ENUMERATED { viactCellsPlus1 } ",Indent + 5) ; break ;

            case 1 : BuildIE(3,"MaxNumberOfReportingCellsType3 ENUMERATED { viactCellsPlus2 } ",Indent + 5) ; break ;

            case 2 : BuildIE(3,"MaxNumberOfReportingCellsType3 ENUMERATED { viactCellsPlus3 } ",Indent + 5) ; break ;

            case 3 : BuildIE(3,"MaxNumberOfReportingCellsType3 ENUMERATED { viactCellsPlus4 } ",Indent + 5) ; break ;

            case 4 : BuildIE(3,"MaxNumberOfReportingCellsType3 ENUMERATED { viactCellsPlus5 } ",Indent + 5) ; break ;

            case 5 : BuildIE(3,"MaxNumberOfReportingCellsType3 ENUMERATED { viactCellsPlus6 } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MaxReportedCellsOnRACH

// ASN.1:        currentCell,

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void MaxReportedCellsOnRACH(int Indent) // Law: LLI=E{LI,LI

      {

         int iSwitcher1 = 0 ;

         iSwitcher1 = PeekIntIE(3) ; // MaxReportedCellsOnRACH

         switch(iSwitcher1)

         {

            case 0 : BuildIE(3,"MaxReportedCellsOnRACH ENUMERATED { noReport } ",Indent + 5) ; break ;

            case 1 : BuildIE(3,"MaxReportedCellsOnRACH ENUMERATED { currentCell } ",Indent + 5) ; break ;

            case 2 : BuildIE(3,"MaxReportedCellsOnRACH ENUMERATED { currentAnd_1_BestNeighbour } ",Indent + 5) ; break ;

            case 3 : BuildIE(3,"MaxReportedCellsOnRACH ENUMERATED { currentAnd_2_BestNeighbour } ",Indent + 5) ; break ;

            case 4 : BuildIE(3,"MaxReportedCellsOnRACH ENUMERATED { currentAnd_3_BestNeighbour } ",Indent + 5) ; break ;

            case 5 : BuildIE(3,"MaxReportedCellsOnRACH ENUMERATED { currentAnd_4_BestNeighbour } ",Indent + 5) ; break ;

            case 6 : BuildIE(3,"MaxReportedCellsOnRACH ENUMERATED { currentAnd_5_BestNeighbour } ",Indent + 5) ; break ;

            case 7 : BuildIE(3,"MaxReportedCellsOnRACH ENUMERATED { currentAnd_6_BestNeighbour } ",Indent + 5) ; break ;

            default: break ;

         }

      }


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: MaxReportedCellsOnRACHinterFreq

// ASN.1:    MaxReportedCellsOnRACHinterFreq ::= INTEGER (1..8)

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void MaxReportedCellsOnRACHinterFreq(int Indent) // Law: LLI=G(IRI)L

      {

         int isize = log2l((8)-(1)-1)+1 ;

         BuildIE(isize,"MaxReportedCellsOnRACHinterFreq ::= INTEGER(1..8) =",Indent + 1) ;

      } // End of MaxReportedCellsOnRACHinterFreq


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: ReportingCellStatus

// ASN.1:    ReportingCellStatus ::= CHOICE{

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////


      private void ReportingCellStatus(int Indent) // Law: LI=C{L

      {

         int iSwitcher0 = 0 ;

         iSwitcher0 = PeekIntIE(4) ; // ReportingCellStatus

         switch(iSwitcher0)

         {

            case 0 /*withinActiveSet*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ withinActiveSet }", Indent+3);

               MaxNumberOfReportingCellsType1(Indent+1) ;

               break ;  // Law: II,L

            case 1 /*withinMonitoredSetUsedFreq*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ withinMonitoredSetUsedFreq }", Indent+3);

               MaxNumberOfReportingCellsType1(Indent+1) ;

               break ;  // Law: II,L

            case 2 /*withinActiveAndOrMonitoredUsedFreq*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ withinActiveAndOrMonitoredUsedFreq }", Indent+3);

               MaxNumberOfReportingCellsType1(Indent+1) ;

               break ;  // Law: II,L

            case 3 /*withinDetectedSetUsedFreq*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ withinDetectedSetUsedFreq }", Indent+3);

               MaxNumberOfReportingCellsType1(Indent+1) ;

               break ;  // Law: II,L

            case 4 /*withinMonitoredAndOrDetectedUsedFreq*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ withinMonitoredAndOrDetectedUsedFreq }", Indent+3);

               MaxNumberOfReportingCellsType1(Indent+1) ;

               break ;  // Law: ILI,L

            case 5 /*allActiveplusMonitoredSet*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ allActiveplusMonitoredSet }", Indent+3);

               MaxNumberOfReportingCellsType3(Indent+1) ;

               break ;  // Law: II,L

            case 6 /*allActivePlusDetectedSet*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ allActivePlusDetectedSet }", Indent+3);

               MaxNumberOfReportingCellsType3(Indent+1) ;

               break ;  // Law: II,L

            case 7 /*allActivePlusMonitoredAndOrDetectedSet*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ allActivePlusMonitoredAndOrDetectedSet }", Indent+3);

               MaxNumberOfReportingCellsType3(Indent+1) ;

               break ;  // Law: ILI,L

            case 8 /*withinVirtualActSet*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ withinVirtualActSet }", Indent+3);

               MaxNumberOfReportingCellsType1(Indent+1) ;

               break ;  // Law: II,L

            case 9 /*withinMonitoredSetNonUsedFreq*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ withinMonitoredSetNonUsedFreq }", Indent+3);

               MaxNumberOfReportingCellsType1(Indent+1) ;

               break ;  // Law: II,L

            case 10 /*withinMonitoredAndOrVirtualActiveSetNonUsedFreq*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ withinMonitoredAndOrVirtualActiveSetNonUsedFreq }", Indent+3);

               MaxNumberOfReportingCellsType1(Indent+1) ;

               break ;  // Law: ILI,L

            case 11 /*allVirtualActSetplusMonitoredSetNonUsedFreq*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ allVirtualActSetplusMonitoredSetNonUsedFreq }", Indent+3);

               MaxNumberOfReportingCellsType3(Indent+1) ;

               break ;  // Law: ILI,L

            case 12 /*withinActSetOrVirtualActSet_InterRATcells*/ :

               BuildIE(4, "ReportingCellStatus Type :: = CHOICE{ withinActSetOrVirtualActSet_InterRATcells }", Indent+3);

               MaxNumberOfReportingCellsType2(Indent+1) ;

               break ;  // Law: ILI,L

            default : break ; // L) ReportingCellStatus

          } // M)  2 0

       } // R)  1 0


/////////////// Eigenkom (c) 2015 ///////////////////////////////////

//

// function: PhysicalChannelReconfigurationFailure

// ASN.1:    PhysicalChannelReconfigurationFailure ::= SEQUENCE {

// Author: David Watts robotomation

// Date: Jun 19 2015

// Time: Fri Jun 19 11:52:38 2015

// Version: v1.0ein

// All rights reserved. Copyright (c) Eigenkom 2013-2015

// History:

//    DESCRIPTION          |    AUTHOR |    DATE      |  VERSION

//    Initial Creation     |    DPW    | Jun 19 2015  | v1.0

//

/////////////// Eigenkom (c) 2015 ///////////////////////////////////



      private void PhysicalChannelReconfigurationFailure(int Indent) // Law: LLI=S{L

      {

         int iSwitcher1 = 0 ;

         bool brrc_TransactionIdentifier = AddIE("rrc_TransactionIdentifier","Exists","Absent", Indent + 3) ;

         bool blaterNonCriticalExtensions = AddIE("laterNonCriticalExtensions","Exists","Absent", Indent + 3) ;

//      __ User equipment IEs

         if (brrc_TransactionIdentifier) // Law: IIO,L

            RRC_TransactionIdentifier(Indent+1) ;

         FailureCauseWithProtErr(Indent+1) ; // Law: II,L

         //

         if (blaterNonCriticalExtensions)

         { // 1 laterNonCriticalExtensions 2

            bool bphysicalChannelReconfigurationFailure_r3_add_ext = AddIE("physicalChannelReconfigurationFailure_r3_add_ext","Exists","Absent", Indent + 4) ;

            bool bnonCriticalExtensions = AddIE("nonCriticalExtensions","Exists","Absent", Indent + 4) ;

//         __ Container for additional R99 extensions

               if (bphysicalChannelReconfigurationFailure_r3_add_ext) // Law: IBO,L

                  physicalChannelReconfigurationFailure_r3_add_ext(Indent+2) ; // BITSTRING - this is wrong here

            if(bnonCriticalExtensions) // OPTIONAL

               PeekIE("nonCriticalExtensions", sParseErr, "{}", Indent) ; // Law: IS{}OL

         } // laterNonCriticalExtensions#49 2

       } // O)  1 0

   }

}