// This C++ header file was generated by the TTCN-3 compiler
// of the TTCN-3 Test Executor version 9.0.0
// The generation of user and time information were disabled by the -D flag.

// Copyright (c) 2000-2023 Ericsson Telecom AB

// Do not edit this file unless you know what you are doing.

#ifndef MobileL3__SMS__Types_HH
#define MobileL3__SMS__Types_HH

#ifdef TITAN_RUNTIME_2
#error Generated code does not match with used runtime.\
 Code was generated without -R option but -DTITAN_RUNTIME_2 was used.
#endif

/* Header file includes */

#include <TTCN3.hh>
#include "General_Types.hh"

#if TTCN3_VERSION != 90000
#error Version mismatch detected.\
 Please check the version of the TTCN-3 compiler and the base library.\
 Run make clean and rebuild the project if the version of the compiler changed recently.
#endif

#ifndef LINUX
#error This file should be compiled on LINUX
#endif

#undef MobileL3__SMS__Types_HH
#endif

namespace MobileL3__SMS__Types {

/* Forward declarations of classes */

class L3__SMS__MS__SGSN;
class L3__SMS__MS__SGSN_template;
class RPDU__MS__SGSN;
class RPDU__MS__SGSN_template;
class RP__OriginatorAddressLV;
class RP__OriginatorAddressLV_template;
class RP__NumberingPlan__and__NumberDigits;
class RP__NumberingPlan__and__NumberDigits_template;
class RP__DestinationAddressLV;
class RP__DestinationAddressLV_template;
class TPDU__RP__DATA__MS__SGSN;
class TPDU__RP__DATA__MS__SGSN_template;
class TP__DA__NoPad;
class TP__DA__NoPad_template;
class TP__DA;
class TP__DA_template;
class TP__UDL__UD;
class TP__UDL__UD_template;
class SMS__SUBMIT;
class SMS__SUBMIT_template;
class TP__VP;
class TP__VP_template;
class TP__CDL__CD;
class TP__CDL__CD_template;
class SMS__COMMAND;
class SMS__COMMAND_template;
class RP__DATA__User__DataLV__MS__SGSN;
class RP__DATA__User__DataLV__MS__SGSN_template;
class RP__DATA__MS__SGSN;
class RP__DATA__MS__SGSN_template;
class RP__ACK__MS__SGSN;
class RP__ACK__MS__SGSN_template;
class TPDU__RP__ACK__MS__SGSN;
class TPDU__RP__ACK__MS__SGSN_template;
class SMS__DELIVER__REPORT__in__RP__ACK;
class SMS__DELIVER__REPORT__in__RP__ACK_template;
class RP__ACK__User__DataTLV__MS__SGSN;
class RP__ACK__User__DataTLV__MS__SGSN_template;
class RP__CauseV;
class RP__CauseV_template;
class RP__CauseLV;
class RP__CauseLV_template;
class RP__ERROR__MS__SGSN;
class RP__ERROR__MS__SGSN_template;
class TPDU__RP__ERROR__MS__SGSN;
class TPDU__RP__ERROR__MS__SGSN_template;
class SMS__DELIVER__REPORT__in__RP__ERROR;
class SMS__DELIVER__REPORT__in__RP__ERROR_template;
class RP__ERROR__User__DataTLV__MS__SGSN;
class RP__ERROR__User__DataTLV__MS__SGSN_template;
class RP__SMMA;
class RP__SMMA_template;
class CP__User__DataLV__MS__SGSN;
class CP__User__DataLV__MS__SGSN_template;
class CP__DATA__MS__SGSN;
class CP__DATA__MS__SGSN_template;
class CP__ACK;
class CP__ACK_template;
class CP__CauseV;
class CP__CauseV_template;
class CP__ERROR;
class CP__ERROR_template;
class L3__SMS__SGSN__MS;
class L3__SMS__SGSN__MS_template;
class RPDU__SGSN__MS;
class RPDU__SGSN__MS_template;
class TPDU__RP__DATA__SGSN__MS;
class TPDU__RP__DATA__SGSN__MS_template;
class TP__OA__NoPad;
class TP__OA__NoPad_template;
class TP__OA;
class TP__OA_template;
class SMS__DELIVER;
class SMS__DELIVER_template;
class TP__RA__NoPad;
class TP__RA__NoPad_template;
class TP__RA;
class TP__RA_template;
class SMS__STATUS__REPORT;
class SMS__STATUS__REPORT_template;
class RP__DATA__User__DataLV__SGSN__MS;
class RP__DATA__User__DataLV__SGSN__MS_template;
class RP__DATA__SGSN__MS;
class RP__DATA__SGSN__MS_template;
class RP__ACK__SGSN__MS;
class RP__ACK__SGSN__MS_template;
class TPDU__RP__ACK__SGSN__MS;
class TPDU__RP__ACK__SGSN__MS_template;
class SMS__SUBMIT__REPORT__in__RP__ACK;
class SMS__SUBMIT__REPORT__in__RP__ACK_template;
class RP__ACK__User__DataTLV__SGSN__MS;
class RP__ACK__User__DataTLV__SGSN__MS_template;
class RP__ERROR__SGSN__MS;
class RP__ERROR__SGSN__MS_template;
class TPDU__RP__ERROR__SGSN__MS;
class TPDU__RP__ERROR__SGSN__MS_template;
class SMS__SUBMIT__REPORT__in__RP__ERROR;
class SMS__SUBMIT__REPORT__in__RP__ERROR_template;
class RP__ERROR__User__DataTLV__SGSN__MS;
class RP__ERROR__User__DataTLV__SGSN__MS_template;
class CP__User__DataLV__SGSN__MS;
class CP__User__DataLV__SGSN__MS_template;
class CP__DATA__SGSN__MS;
class CP__DATA__SGSN__MS_template;

} /* end of namespace */

#ifndef MobileL3__SMS__Types_HH
#define MobileL3__SMS__Types_HH

namespace MobileL3__SMS__Types {

/* Type definitions */

typedef OCTETSTRING TP__DCS;
typedef OCTETSTRING_template TP__DCS_template;

/* Class definitions */

class L3__SMS__MS__SGSN : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_cP__DATA = 1, ALT_cP__ACK = 2, ALT_cP__ERROR = 3 };
private:
union_selection_type union_selection;
union {
CP__DATA__MS__SGSN *field_cP__DATA;
CP__ACK *field_cP__ACK;
CP__ERROR *field_cP__ERROR;
};
void copy_value(const L3__SMS__MS__SGSN& other_value);

public:
L3__SMS__MS__SGSN();
L3__SMS__MS__SGSN(const L3__SMS__MS__SGSN& other_value);
~L3__SMS__MS__SGSN();
L3__SMS__MS__SGSN& operator=(const L3__SMS__MS__SGSN& other_value);
boolean operator==(const L3__SMS__MS__SGSN& other_value) const;
inline boolean operator!=(const L3__SMS__MS__SGSN& other_value) const { return !(*this == other_value); }
CP__DATA__MS__SGSN& cP__DATA();
const CP__DATA__MS__SGSN& cP__DATA() const;
CP__ACK& cP__ACK();
const CP__ACK& cP__ACK() const;
CP__ERROR& cP__ERROR();
const CP__ERROR& cP__ERROR() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class L3__SMS__MS__SGSN_template : public Base_Template {
union {
struct {
L3__SMS__MS__SGSN::union_selection_type union_selection;
union {
CP__DATA__MS__SGSN_template *field_cP__DATA;
CP__ACK_template *field_cP__ACK;
CP__ERROR_template *field_cP__ERROR;
};
} single_value;
struct {
unsigned int n_values;
L3__SMS__MS__SGSN_template *list_value;
} value_list;
struct {
L3__SMS__MS__SGSN_template* precondition;
L3__SMS__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<L3__SMS__MS__SGSN>* dyn_match;
};
void copy_value(const L3__SMS__MS__SGSN& other_value);

void copy_template(const L3__SMS__MS__SGSN_template& other_value);

public:
L3__SMS__MS__SGSN_template();
L3__SMS__MS__SGSN_template(template_sel other_value);
L3__SMS__MS__SGSN_template(const L3__SMS__MS__SGSN& other_value);
L3__SMS__MS__SGSN_template(const OPTIONAL<L3__SMS__MS__SGSN>& other_value);
L3__SMS__MS__SGSN_template(L3__SMS__MS__SGSN_template* p_precondition, L3__SMS__MS__SGSN_template* p_implied_template);
L3__SMS__MS__SGSN_template(Dynamic_Match_Interface<L3__SMS__MS__SGSN>* p_dyn_match);
L3__SMS__MS__SGSN_template(const L3__SMS__MS__SGSN_template& other_value);
~L3__SMS__MS__SGSN_template();
void clean_up();
L3__SMS__MS__SGSN_template& operator=(template_sel other_value);
L3__SMS__MS__SGSN_template& operator=(const L3__SMS__MS__SGSN& other_value);
L3__SMS__MS__SGSN_template& operator=(const OPTIONAL<L3__SMS__MS__SGSN>& other_value);
L3__SMS__MS__SGSN_template& operator=(const L3__SMS__MS__SGSN_template& other_value);
boolean match(const L3__SMS__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_value() const;L3__SMS__MS__SGSN valueof() const;
L3__SMS__MS__SGSN_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
CP__DATA__MS__SGSN_template& cP__DATA();
const CP__DATA__MS__SGSN_template& cP__DATA() const;
CP__ACK_template& cP__ACK();
const CP__ACK_template& cP__ACK() const;
CP__ERROR_template& cP__ERROR();
const CP__ERROR_template& cP__ERROR() const;
boolean ischosen(L3__SMS__MS__SGSN::union_selection_type checked_selection) const;
void log() const;
void log_match(const L3__SMS__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class RPDU__MS__SGSN : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_rP__DATA__MS__SGSN = 1, ALT_rP__ACK__MS__SGSN = 2, ALT_rP__ERROR__MS__SGSN = 3, ALT_rP__SMMA = 4 };
private:
union_selection_type union_selection;
union {
RP__DATA__MS__SGSN *field_rP__DATA__MS__SGSN;
RP__ACK__MS__SGSN *field_rP__ACK__MS__SGSN;
RP__ERROR__MS__SGSN *field_rP__ERROR__MS__SGSN;
RP__SMMA *field_rP__SMMA;
};
void copy_value(const RPDU__MS__SGSN& other_value);

public:
RPDU__MS__SGSN();
RPDU__MS__SGSN(const RPDU__MS__SGSN& other_value);
~RPDU__MS__SGSN();
RPDU__MS__SGSN& operator=(const RPDU__MS__SGSN& other_value);
boolean operator==(const RPDU__MS__SGSN& other_value) const;
inline boolean operator!=(const RPDU__MS__SGSN& other_value) const { return !(*this == other_value); }
RP__DATA__MS__SGSN& rP__DATA__MS__SGSN();
const RP__DATA__MS__SGSN& rP__DATA__MS__SGSN() const;
RP__ACK__MS__SGSN& rP__ACK__MS__SGSN();
const RP__ACK__MS__SGSN& rP__ACK__MS__SGSN() const;
RP__ERROR__MS__SGSN& rP__ERROR__MS__SGSN();
const RP__ERROR__MS__SGSN& rP__ERROR__MS__SGSN() const;
RP__SMMA& rP__SMMA();
const RP__SMMA& rP__SMMA() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RPDU__MS__SGSN_template : public Base_Template {
union {
struct {
RPDU__MS__SGSN::union_selection_type union_selection;
union {
RP__DATA__MS__SGSN_template *field_rP__DATA__MS__SGSN;
RP__ACK__MS__SGSN_template *field_rP__ACK__MS__SGSN;
RP__ERROR__MS__SGSN_template *field_rP__ERROR__MS__SGSN;
RP__SMMA_template *field_rP__SMMA;
};
} single_value;
struct {
unsigned int n_values;
RPDU__MS__SGSN_template *list_value;
} value_list;
struct {
RPDU__MS__SGSN_template* precondition;
RPDU__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<RPDU__MS__SGSN>* dyn_match;
};
void copy_value(const RPDU__MS__SGSN& other_value);

void copy_template(const RPDU__MS__SGSN_template& other_value);

public:
RPDU__MS__SGSN_template();
RPDU__MS__SGSN_template(template_sel other_value);
RPDU__MS__SGSN_template(const RPDU__MS__SGSN& other_value);
RPDU__MS__SGSN_template(const OPTIONAL<RPDU__MS__SGSN>& other_value);
RPDU__MS__SGSN_template(RPDU__MS__SGSN_template* p_precondition, RPDU__MS__SGSN_template* p_implied_template);
RPDU__MS__SGSN_template(Dynamic_Match_Interface<RPDU__MS__SGSN>* p_dyn_match);
RPDU__MS__SGSN_template(const RPDU__MS__SGSN_template& other_value);
~RPDU__MS__SGSN_template();
void clean_up();
RPDU__MS__SGSN_template& operator=(template_sel other_value);
RPDU__MS__SGSN_template& operator=(const RPDU__MS__SGSN& other_value);
RPDU__MS__SGSN_template& operator=(const OPTIONAL<RPDU__MS__SGSN>& other_value);
RPDU__MS__SGSN_template& operator=(const RPDU__MS__SGSN_template& other_value);
boolean match(const RPDU__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_value() const;RPDU__MS__SGSN valueof() const;
RPDU__MS__SGSN_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
RP__DATA__MS__SGSN_template& rP__DATA__MS__SGSN();
const RP__DATA__MS__SGSN_template& rP__DATA__MS__SGSN() const;
RP__ACK__MS__SGSN_template& rP__ACK__MS__SGSN();
const RP__ACK__MS__SGSN_template& rP__ACK__MS__SGSN() const;
RP__ERROR__MS__SGSN_template& rP__ERROR__MS__SGSN();
const RP__ERROR__MS__SGSN_template& rP__ERROR__MS__SGSN() const;
RP__SMMA_template& rP__SMMA();
const RP__SMMA_template& rP__SMMA() const;
boolean ischosen(RPDU__MS__SGSN::union_selection_type checked_selection) const;
void log() const;
void log_match(const RPDU__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class RP__OriginatorAddressLV : public Base_Type {
  INTEGER field_lengthIndicator;
  OPTIONAL< RP__NumberingPlan__and__NumberDigits > field_rP__OriginatorAddress;
public:
  RP__OriginatorAddressLV();
  RP__OriginatorAddressLV(const INTEGER& par_lengthIndicator,
    const OPTIONAL< RP__NumberingPlan__and__NumberDigits >& par_rP__OriginatorAddress);
  RP__OriginatorAddressLV(const RP__OriginatorAddressLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__OriginatorAddressLV& operator=(const RP__OriginatorAddressLV& other_value);
  boolean operator==(const RP__OriginatorAddressLV& other_value) const;
  inline boolean operator!=(const RP__OriginatorAddressLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline OPTIONAL< RP__NumberingPlan__and__NumberDigits >& rP__OriginatorAddress()
    {return field_rP__OriginatorAddress;}
  inline const OPTIONAL< RP__NumberingPlan__and__NumberDigits >& rP__OriginatorAddress() const
    {return field_rP__OriginatorAddress;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__OriginatorAddressLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__OriginatorAddressLV_template *list_value;
} value_list;
struct {
RP__OriginatorAddressLV_template* precondition;
RP__OriginatorAddressLV_template* implied_template;
} implication_;
dynmatch_struct<RP__OriginatorAddressLV>* dyn_match;
};

void set_specific();
void copy_value(const RP__OriginatorAddressLV& other_value);
void copy_template(const RP__OriginatorAddressLV_template& other_value);

public:
RP__OriginatorAddressLV_template();
RP__OriginatorAddressLV_template(template_sel other_value);
RP__OriginatorAddressLV_template(const RP__OriginatorAddressLV& other_value);
RP__OriginatorAddressLV_template(const OPTIONAL<RP__OriginatorAddressLV>& other_value);
RP__OriginatorAddressLV_template(RP__OriginatorAddressLV_template* p_precondition, RP__OriginatorAddressLV_template* p_implied_template);
RP__OriginatorAddressLV_template(Dynamic_Match_Interface<RP__OriginatorAddressLV>* p_dyn_match);
RP__OriginatorAddressLV_template(const RP__OriginatorAddressLV_template& other_value);
~RP__OriginatorAddressLV_template();
RP__OriginatorAddressLV_template& operator=(template_sel other_value);
RP__OriginatorAddressLV_template& operator=(const RP__OriginatorAddressLV& other_value);
RP__OriginatorAddressLV_template& operator=(const OPTIONAL<RP__OriginatorAddressLV>& other_value);
RP__OriginatorAddressLV_template& operator=(const RP__OriginatorAddressLV_template& other_value);
boolean match(const RP__OriginatorAddressLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__OriginatorAddressLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__OriginatorAddressLV_template& list_item(unsigned int list_index) const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
RP__NumberingPlan__and__NumberDigits_template& rP__OriginatorAddress();
const RP__NumberingPlan__and__NumberDigits_template& rP__OriginatorAddress() const;
int size_of() const;
void log() const;
void log_match(const RP__OriginatorAddressLV& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__NumberingPlan__and__NumberDigits : public Base_Type {
  BITSTRING field_rP__NumberingPlanIdentification;
  BITSTRING field_rP__TypeOfNumber;
  BITSTRING field_rP__Ext;
  HEXSTRING field_rP__NumberDigits;
public:
  RP__NumberingPlan__and__NumberDigits();
  RP__NumberingPlan__and__NumberDigits(const BITSTRING& par_rP__NumberingPlanIdentification,
    const BITSTRING& par_rP__TypeOfNumber,
    const BITSTRING& par_rP__Ext,
    const HEXSTRING& par_rP__NumberDigits);
  RP__NumberingPlan__and__NumberDigits(const RP__NumberingPlan__and__NumberDigits& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__NumberingPlan__and__NumberDigits& operator=(const RP__NumberingPlan__and__NumberDigits& other_value);
  boolean operator==(const RP__NumberingPlan__and__NumberDigits& other_value) const;
  inline boolean operator!=(const RP__NumberingPlan__and__NumberDigits& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rP__NumberingPlanIdentification()
    {return field_rP__NumberingPlanIdentification;}
  inline const BITSTRING& rP__NumberingPlanIdentification() const
    {return field_rP__NumberingPlanIdentification;}
  inline BITSTRING& rP__TypeOfNumber()
    {return field_rP__TypeOfNumber;}
  inline const BITSTRING& rP__TypeOfNumber() const
    {return field_rP__TypeOfNumber;}
  inline BITSTRING& rP__Ext()
    {return field_rP__Ext;}
  inline const BITSTRING& rP__Ext() const
    {return field_rP__Ext;}
  inline HEXSTRING& rP__NumberDigits()
    {return field_rP__NumberDigits;}
  inline const HEXSTRING& rP__NumberDigits() const
    {return field_rP__NumberDigits;}
  inline int size_of() const
    {return 4;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__NumberingPlan__and__NumberDigits_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__NumberingPlan__and__NumberDigits_template *list_value;
} value_list;
struct {
RP__NumberingPlan__and__NumberDigits_template* precondition;
RP__NumberingPlan__and__NumberDigits_template* implied_template;
} implication_;
dynmatch_struct<RP__NumberingPlan__and__NumberDigits>* dyn_match;
};

void set_specific();
void copy_value(const RP__NumberingPlan__and__NumberDigits& other_value);
void copy_template(const RP__NumberingPlan__and__NumberDigits_template& other_value);

public:
RP__NumberingPlan__and__NumberDigits_template();
RP__NumberingPlan__and__NumberDigits_template(template_sel other_value);
RP__NumberingPlan__and__NumberDigits_template(const RP__NumberingPlan__and__NumberDigits& other_value);
RP__NumberingPlan__and__NumberDigits_template(const OPTIONAL<RP__NumberingPlan__and__NumberDigits>& other_value);
RP__NumberingPlan__and__NumberDigits_template(RP__NumberingPlan__and__NumberDigits_template* p_precondition, RP__NumberingPlan__and__NumberDigits_template* p_implied_template);
RP__NumberingPlan__and__NumberDigits_template(Dynamic_Match_Interface<RP__NumberingPlan__and__NumberDigits>* p_dyn_match);
RP__NumberingPlan__and__NumberDigits_template(const RP__NumberingPlan__and__NumberDigits_template& other_value);
~RP__NumberingPlan__and__NumberDigits_template();
RP__NumberingPlan__and__NumberDigits_template& operator=(template_sel other_value);
RP__NumberingPlan__and__NumberDigits_template& operator=(const RP__NumberingPlan__and__NumberDigits& other_value);
RP__NumberingPlan__and__NumberDigits_template& operator=(const OPTIONAL<RP__NumberingPlan__and__NumberDigits>& other_value);
RP__NumberingPlan__and__NumberDigits_template& operator=(const RP__NumberingPlan__and__NumberDigits_template& other_value);
boolean match(const RP__NumberingPlan__and__NumberDigits& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__NumberingPlan__and__NumberDigits valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__NumberingPlan__and__NumberDigits_template& list_item(unsigned int list_index) const;
BITSTRING_template& rP__NumberingPlanIdentification();
const BITSTRING_template& rP__NumberingPlanIdentification() const;
BITSTRING_template& rP__TypeOfNumber();
const BITSTRING_template& rP__TypeOfNumber() const;
BITSTRING_template& rP__Ext();
const BITSTRING_template& rP__Ext() const;
HEXSTRING_template& rP__NumberDigits();
const HEXSTRING_template& rP__NumberDigits() const;
int size_of() const;
void log() const;
void log_match(const RP__NumberingPlan__and__NumberDigits& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__DestinationAddressLV : public Base_Type {
  INTEGER field_lengthIndicator;
  OPTIONAL< RP__NumberingPlan__and__NumberDigits > field_rP__DestinationAddress;
public:
  RP__DestinationAddressLV();
  RP__DestinationAddressLV(const INTEGER& par_lengthIndicator,
    const OPTIONAL< RP__NumberingPlan__and__NumberDigits >& par_rP__DestinationAddress);
  RP__DestinationAddressLV(const RP__DestinationAddressLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__DestinationAddressLV& operator=(const RP__DestinationAddressLV& other_value);
  boolean operator==(const RP__DestinationAddressLV& other_value) const;
  inline boolean operator!=(const RP__DestinationAddressLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline OPTIONAL< RP__NumberingPlan__and__NumberDigits >& rP__DestinationAddress()
    {return field_rP__DestinationAddress;}
  inline const OPTIONAL< RP__NumberingPlan__and__NumberDigits >& rP__DestinationAddress() const
    {return field_rP__DestinationAddress;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__DestinationAddressLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__DestinationAddressLV_template *list_value;
} value_list;
struct {
RP__DestinationAddressLV_template* precondition;
RP__DestinationAddressLV_template* implied_template;
} implication_;
dynmatch_struct<RP__DestinationAddressLV>* dyn_match;
};

void set_specific();
void copy_value(const RP__DestinationAddressLV& other_value);
void copy_template(const RP__DestinationAddressLV_template& other_value);

public:
RP__DestinationAddressLV_template();
RP__DestinationAddressLV_template(template_sel other_value);
RP__DestinationAddressLV_template(const RP__DestinationAddressLV& other_value);
RP__DestinationAddressLV_template(const OPTIONAL<RP__DestinationAddressLV>& other_value);
RP__DestinationAddressLV_template(RP__DestinationAddressLV_template* p_precondition, RP__DestinationAddressLV_template* p_implied_template);
RP__DestinationAddressLV_template(Dynamic_Match_Interface<RP__DestinationAddressLV>* p_dyn_match);
RP__DestinationAddressLV_template(const RP__DestinationAddressLV_template& other_value);
~RP__DestinationAddressLV_template();
RP__DestinationAddressLV_template& operator=(template_sel other_value);
RP__DestinationAddressLV_template& operator=(const RP__DestinationAddressLV& other_value);
RP__DestinationAddressLV_template& operator=(const OPTIONAL<RP__DestinationAddressLV>& other_value);
RP__DestinationAddressLV_template& operator=(const RP__DestinationAddressLV_template& other_value);
boolean match(const RP__DestinationAddressLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__DestinationAddressLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__DestinationAddressLV_template& list_item(unsigned int list_index) const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
RP__NumberingPlan__and__NumberDigits_template& rP__DestinationAddress();
const RP__NumberingPlan__and__NumberDigits_template& rP__DestinationAddress() const;
int size_of() const;
void log() const;
void log_match(const RP__DestinationAddressLV& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TPDU__RP__DATA__MS__SGSN : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_sMS__SUBMIT = 1, ALT_sMS__COMMAND = 2 };
private:
union_selection_type union_selection;
union {
SMS__SUBMIT *field_sMS__SUBMIT;
SMS__COMMAND *field_sMS__COMMAND;
};
void copy_value(const TPDU__RP__DATA__MS__SGSN& other_value);

public:
TPDU__RP__DATA__MS__SGSN();
TPDU__RP__DATA__MS__SGSN(const TPDU__RP__DATA__MS__SGSN& other_value);
~TPDU__RP__DATA__MS__SGSN();
TPDU__RP__DATA__MS__SGSN& operator=(const TPDU__RP__DATA__MS__SGSN& other_value);
boolean operator==(const TPDU__RP__DATA__MS__SGSN& other_value) const;
inline boolean operator!=(const TPDU__RP__DATA__MS__SGSN& other_value) const { return !(*this == other_value); }
SMS__SUBMIT& sMS__SUBMIT();
const SMS__SUBMIT& sMS__SUBMIT() const;
SMS__COMMAND& sMS__COMMAND();
const SMS__COMMAND& sMS__COMMAND() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TPDU__RP__DATA__MS__SGSN_template : public Base_Template {
union {
struct {
TPDU__RP__DATA__MS__SGSN::union_selection_type union_selection;
union {
SMS__SUBMIT_template *field_sMS__SUBMIT;
SMS__COMMAND_template *field_sMS__COMMAND;
};
} single_value;
struct {
unsigned int n_values;
TPDU__RP__DATA__MS__SGSN_template *list_value;
} value_list;
struct {
TPDU__RP__DATA__MS__SGSN_template* precondition;
TPDU__RP__DATA__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<TPDU__RP__DATA__MS__SGSN>* dyn_match;
};
void copy_value(const TPDU__RP__DATA__MS__SGSN& other_value);

void copy_template(const TPDU__RP__DATA__MS__SGSN_template& other_value);

public:
TPDU__RP__DATA__MS__SGSN_template();
TPDU__RP__DATA__MS__SGSN_template(template_sel other_value);
TPDU__RP__DATA__MS__SGSN_template(const TPDU__RP__DATA__MS__SGSN& other_value);
TPDU__RP__DATA__MS__SGSN_template(const OPTIONAL<TPDU__RP__DATA__MS__SGSN>& other_value);
TPDU__RP__DATA__MS__SGSN_template(TPDU__RP__DATA__MS__SGSN_template* p_precondition, TPDU__RP__DATA__MS__SGSN_template* p_implied_template);
TPDU__RP__DATA__MS__SGSN_template(Dynamic_Match_Interface<TPDU__RP__DATA__MS__SGSN>* p_dyn_match);
TPDU__RP__DATA__MS__SGSN_template(const TPDU__RP__DATA__MS__SGSN_template& other_value);
~TPDU__RP__DATA__MS__SGSN_template();
void clean_up();
TPDU__RP__DATA__MS__SGSN_template& operator=(template_sel other_value);
TPDU__RP__DATA__MS__SGSN_template& operator=(const TPDU__RP__DATA__MS__SGSN& other_value);
TPDU__RP__DATA__MS__SGSN_template& operator=(const OPTIONAL<TPDU__RP__DATA__MS__SGSN>& other_value);
TPDU__RP__DATA__MS__SGSN_template& operator=(const TPDU__RP__DATA__MS__SGSN_template& other_value);
boolean match(const TPDU__RP__DATA__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_value() const;TPDU__RP__DATA__MS__SGSN valueof() const;
TPDU__RP__DATA__MS__SGSN_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__SUBMIT_template& sMS__SUBMIT();
const SMS__SUBMIT_template& sMS__SUBMIT() const;
SMS__COMMAND_template& sMS__COMMAND();
const SMS__COMMAND_template& sMS__COMMAND() const;
boolean ischosen(TPDU__RP__DATA__MS__SGSN::union_selection_type checked_selection) const;
void log() const;
void log_match(const TPDU__RP__DATA__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class TP__DA__NoPad : public Base_Type {
  INTEGER field_tP__LengthIndicator;
  BITSTRING field_tP__NumberingPlanID;
  BITSTRING field_tP__TypeOfNumber;
  BITSTRING field_tp__Spare;
  HEXSTRING field_tP__DAValue;
public:
  TP__DA__NoPad();
  TP__DA__NoPad(const INTEGER& par_tP__LengthIndicator,
    const BITSTRING& par_tP__NumberingPlanID,
    const BITSTRING& par_tP__TypeOfNumber,
    const BITSTRING& par_tp__Spare,
    const HEXSTRING& par_tP__DAValue);
  TP__DA__NoPad(const TP__DA__NoPad& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  TP__DA__NoPad& operator=(const TP__DA__NoPad& other_value);
  boolean operator==(const TP__DA__NoPad& other_value) const;
  inline boolean operator!=(const TP__DA__NoPad& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& tP__LengthIndicator()
    {return field_tP__LengthIndicator;}
  inline const INTEGER& tP__LengthIndicator() const
    {return field_tP__LengthIndicator;}
  inline BITSTRING& tP__NumberingPlanID()
    {return field_tP__NumberingPlanID;}
  inline const BITSTRING& tP__NumberingPlanID() const
    {return field_tP__NumberingPlanID;}
  inline BITSTRING& tP__TypeOfNumber()
    {return field_tP__TypeOfNumber;}
  inline const BITSTRING& tP__TypeOfNumber() const
    {return field_tP__TypeOfNumber;}
  inline BITSTRING& tp__Spare()
    {return field_tp__Spare;}
  inline const BITSTRING& tp__Spare() const
    {return field_tp__Spare;}
  inline HEXSTRING& tP__DAValue()
    {return field_tP__DAValue;}
  inline const HEXSTRING& tP__DAValue() const
    {return field_tP__DAValue;}
  inline int size_of() const
    {return 5;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TP__DA__NoPad_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
TP__DA__NoPad_template *list_value;
} value_list;
struct {
TP__DA__NoPad_template* precondition;
TP__DA__NoPad_template* implied_template;
} implication_;
dynmatch_struct<TP__DA__NoPad>* dyn_match;
};

void set_specific();
void copy_value(const TP__DA__NoPad& other_value);
void copy_template(const TP__DA__NoPad_template& other_value);

public:
TP__DA__NoPad_template();
TP__DA__NoPad_template(template_sel other_value);
TP__DA__NoPad_template(const TP__DA__NoPad& other_value);
TP__DA__NoPad_template(const OPTIONAL<TP__DA__NoPad>& other_value);
TP__DA__NoPad_template(TP__DA__NoPad_template* p_precondition, TP__DA__NoPad_template* p_implied_template);
TP__DA__NoPad_template(Dynamic_Match_Interface<TP__DA__NoPad>* p_dyn_match);
TP__DA__NoPad_template(const TP__DA__NoPad_template& other_value);
~TP__DA__NoPad_template();
TP__DA__NoPad_template& operator=(template_sel other_value);
TP__DA__NoPad_template& operator=(const TP__DA__NoPad& other_value);
TP__DA__NoPad_template& operator=(const OPTIONAL<TP__DA__NoPad>& other_value);
TP__DA__NoPad_template& operator=(const TP__DA__NoPad_template& other_value);
boolean match(const TP__DA__NoPad& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
TP__DA__NoPad valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
TP__DA__NoPad_template& list_item(unsigned int list_index) const;
INTEGER_template& tP__LengthIndicator();
const INTEGER_template& tP__LengthIndicator() const;
BITSTRING_template& tP__NumberingPlanID();
const BITSTRING_template& tP__NumberingPlanID() const;
BITSTRING_template& tP__TypeOfNumber();
const BITSTRING_template& tP__TypeOfNumber() const;
BITSTRING_template& tp__Spare();
const BITSTRING_template& tp__Spare() const;
HEXSTRING_template& tP__DAValue();
const HEXSTRING_template& tP__DAValue() const;
int size_of() const;
void log() const;
void log_match(const TP__DA__NoPad& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TP__DA : public Base_Type {
  TP__DA__NoPad field_tP__DA__NoPad;
public:
  TP__DA();
  TP__DA(const TP__DA__NoPad& par_tP__DA__NoPad);
  TP__DA(const TP__DA& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  TP__DA& operator=(const TP__DA& other_value);
  boolean operator==(const TP__DA& other_value) const;
  inline boolean operator!=(const TP__DA& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline TP__DA__NoPad& tP__DA__NoPad()
    {return field_tP__DA__NoPad;}
  inline const TP__DA__NoPad& tP__DA__NoPad() const
    {return field_tP__DA__NoPad;}
  inline int size_of() const
    {return 1;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TP__DA_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
TP__DA_template *list_value;
} value_list;
struct {
TP__DA_template* precondition;
TP__DA_template* implied_template;
} implication_;
dynmatch_struct<TP__DA>* dyn_match;
};

void set_specific();
void copy_value(const TP__DA& other_value);
void copy_template(const TP__DA_template& other_value);

public:
TP__DA_template();
TP__DA_template(template_sel other_value);
TP__DA_template(const TP__DA& other_value);
TP__DA_template(const OPTIONAL<TP__DA>& other_value);
TP__DA_template(TP__DA_template* p_precondition, TP__DA_template* p_implied_template);
TP__DA_template(Dynamic_Match_Interface<TP__DA>* p_dyn_match);
TP__DA_template(const TP__DA_template& other_value);
~TP__DA_template();
TP__DA_template& operator=(template_sel other_value);
TP__DA_template& operator=(const TP__DA& other_value);
TP__DA_template& operator=(const OPTIONAL<TP__DA>& other_value);
TP__DA_template& operator=(const TP__DA_template& other_value);
boolean match(const TP__DA& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
TP__DA valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
TP__DA_template& list_item(unsigned int list_index) const;
TP__DA__NoPad_template& tP__DA__NoPad();
const TP__DA__NoPad_template& tP__DA__NoPad() const;
int size_of() const;
void log() const;
void log_match(const TP__DA& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TP__UDL__UD : public Base_Type {
  INTEGER field_tP__LengthIndicator;
  OCTETSTRING field_tP__UD;
public:
  TP__UDL__UD();
  TP__UDL__UD(const INTEGER& par_tP__LengthIndicator,
    const OCTETSTRING& par_tP__UD);
  TP__UDL__UD(const TP__UDL__UD& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  TP__UDL__UD& operator=(const TP__UDL__UD& other_value);
  boolean operator==(const TP__UDL__UD& other_value) const;
  inline boolean operator!=(const TP__UDL__UD& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& tP__LengthIndicator()
    {return field_tP__LengthIndicator;}
  inline const INTEGER& tP__LengthIndicator() const
    {return field_tP__LengthIndicator;}
  inline OCTETSTRING& tP__UD()
    {return field_tP__UD;}
  inline const OCTETSTRING& tP__UD() const
    {return field_tP__UD;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TP__UDL__UD_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
TP__UDL__UD_template *list_value;
} value_list;
struct {
TP__UDL__UD_template* precondition;
TP__UDL__UD_template* implied_template;
} implication_;
dynmatch_struct<TP__UDL__UD>* dyn_match;
};

void set_specific();
void copy_value(const TP__UDL__UD& other_value);
void copy_template(const TP__UDL__UD_template& other_value);

public:
TP__UDL__UD_template();
TP__UDL__UD_template(template_sel other_value);
TP__UDL__UD_template(const TP__UDL__UD& other_value);
TP__UDL__UD_template(const OPTIONAL<TP__UDL__UD>& other_value);
TP__UDL__UD_template(TP__UDL__UD_template* p_precondition, TP__UDL__UD_template* p_implied_template);
TP__UDL__UD_template(Dynamic_Match_Interface<TP__UDL__UD>* p_dyn_match);
TP__UDL__UD_template(const TP__UDL__UD_template& other_value);
~TP__UDL__UD_template();
TP__UDL__UD_template& operator=(template_sel other_value);
TP__UDL__UD_template& operator=(const TP__UDL__UD& other_value);
TP__UDL__UD_template& operator=(const OPTIONAL<TP__UDL__UD>& other_value);
TP__UDL__UD_template& operator=(const TP__UDL__UD_template& other_value);
boolean match(const TP__UDL__UD& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
TP__UDL__UD valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
TP__UDL__UD_template& list_item(unsigned int list_index) const;
INTEGER_template& tP__LengthIndicator();
const INTEGER_template& tP__LengthIndicator() const;
OCTETSTRING_template& tP__UD();
const OCTETSTRING_template& tP__UD() const;
int size_of() const;
void log() const;
void log_match(const TP__UDL__UD& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class SMS__SUBMIT : public Base_Type {
  BITSTRING field_tP__MTI;
  BITSTRING field_tP__RD;
  BITSTRING field_tP__VPF;
  BITSTRING field_tP__SRR;
  BITSTRING field_tP__UDHI;
  BITSTRING field_tP__RP;
  OCTETSTRING field_tP__MR;
  TP__DA field_tP__DA;
  OCTETSTRING field_tP__PID;
  OCTETSTRING field_tP__DCS;
  OPTIONAL< TP__VP > field_tP__VP;
  TP__UDL__UD field_tP__UDL__UD;
public:
  SMS__SUBMIT();
  SMS__SUBMIT(const BITSTRING& par_tP__MTI,
    const BITSTRING& par_tP__RD,
    const BITSTRING& par_tP__VPF,
    const BITSTRING& par_tP__SRR,
    const BITSTRING& par_tP__UDHI,
    const BITSTRING& par_tP__RP,
    const OCTETSTRING& par_tP__MR,
    const TP__DA& par_tP__DA,
    const OCTETSTRING& par_tP__PID,
    const OCTETSTRING& par_tP__DCS,
    const OPTIONAL< TP__VP >& par_tP__VP,
    const TP__UDL__UD& par_tP__UDL__UD);
  SMS__SUBMIT(const SMS__SUBMIT& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SMS__SUBMIT& operator=(const SMS__SUBMIT& other_value);
  boolean operator==(const SMS__SUBMIT& other_value) const;
  inline boolean operator!=(const SMS__SUBMIT& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& tP__MTI()
    {return field_tP__MTI;}
  inline const BITSTRING& tP__MTI() const
    {return field_tP__MTI;}
  inline BITSTRING& tP__RD()
    {return field_tP__RD;}
  inline const BITSTRING& tP__RD() const
    {return field_tP__RD;}
  inline BITSTRING& tP__VPF()
    {return field_tP__VPF;}
  inline const BITSTRING& tP__VPF() const
    {return field_tP__VPF;}
  inline BITSTRING& tP__SRR()
    {return field_tP__SRR;}
  inline const BITSTRING& tP__SRR() const
    {return field_tP__SRR;}
  inline BITSTRING& tP__UDHI()
    {return field_tP__UDHI;}
  inline const BITSTRING& tP__UDHI() const
    {return field_tP__UDHI;}
  inline BITSTRING& tP__RP()
    {return field_tP__RP;}
  inline const BITSTRING& tP__RP() const
    {return field_tP__RP;}
  inline OCTETSTRING& tP__MR()
    {return field_tP__MR;}
  inline const OCTETSTRING& tP__MR() const
    {return field_tP__MR;}
  inline TP__DA& tP__DA()
    {return field_tP__DA;}
  inline const TP__DA& tP__DA() const
    {return field_tP__DA;}
  inline OCTETSTRING& tP__PID()
    {return field_tP__PID;}
  inline const OCTETSTRING& tP__PID() const
    {return field_tP__PID;}
  inline OCTETSTRING& tP__DCS()
    {return field_tP__DCS;}
  inline const OCTETSTRING& tP__DCS() const
    {return field_tP__DCS;}
  inline OPTIONAL< TP__VP >& tP__VP()
    {return field_tP__VP;}
  inline const OPTIONAL< TP__VP >& tP__VP() const
    {return field_tP__VP;}
  inline TP__UDL__UD& tP__UDL__UD()
    {return field_tP__UDL__UD;}
  inline const TP__UDL__UD& tP__UDL__UD() const
    {return field_tP__UDL__UD;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class SMS__SUBMIT_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SMS__SUBMIT_template *list_value;
} value_list;
struct {
SMS__SUBMIT_template* precondition;
SMS__SUBMIT_template* implied_template;
} implication_;
dynmatch_struct<SMS__SUBMIT>* dyn_match;
};

void set_specific();
void copy_value(const SMS__SUBMIT& other_value);
void copy_template(const SMS__SUBMIT_template& other_value);

public:
SMS__SUBMIT_template();
SMS__SUBMIT_template(template_sel other_value);
SMS__SUBMIT_template(const SMS__SUBMIT& other_value);
SMS__SUBMIT_template(const OPTIONAL<SMS__SUBMIT>& other_value);
SMS__SUBMIT_template(SMS__SUBMIT_template* p_precondition, SMS__SUBMIT_template* p_implied_template);
SMS__SUBMIT_template(Dynamic_Match_Interface<SMS__SUBMIT>* p_dyn_match);
SMS__SUBMIT_template(const SMS__SUBMIT_template& other_value);
~SMS__SUBMIT_template();
SMS__SUBMIT_template& operator=(template_sel other_value);
SMS__SUBMIT_template& operator=(const SMS__SUBMIT& other_value);
SMS__SUBMIT_template& operator=(const OPTIONAL<SMS__SUBMIT>& other_value);
SMS__SUBMIT_template& operator=(const SMS__SUBMIT_template& other_value);
boolean match(const SMS__SUBMIT& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SMS__SUBMIT valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__SUBMIT_template& list_item(unsigned int list_index) const;
BITSTRING_template& tP__MTI();
const BITSTRING_template& tP__MTI() const;
BITSTRING_template& tP__RD();
const BITSTRING_template& tP__RD() const;
BITSTRING_template& tP__VPF();
const BITSTRING_template& tP__VPF() const;
BITSTRING_template& tP__SRR();
const BITSTRING_template& tP__SRR() const;
BITSTRING_template& tP__UDHI();
const BITSTRING_template& tP__UDHI() const;
BITSTRING_template& tP__RP();
const BITSTRING_template& tP__RP() const;
OCTETSTRING_template& tP__MR();
const OCTETSTRING_template& tP__MR() const;
TP__DA_template& tP__DA();
const TP__DA_template& tP__DA() const;
OCTETSTRING_template& tP__PID();
const OCTETSTRING_template& tP__PID() const;
OCTETSTRING_template& tP__DCS();
const OCTETSTRING_template& tP__DCS() const;
TP__VP_template& tP__VP();
const TP__VP_template& tP__VP() const;
TP__UDL__UD_template& tP__UDL__UD();
const TP__UDL__UD_template& tP__UDL__UD() const;
int size_of() const;
void log() const;
void log_match(const SMS__SUBMIT& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TP__VP : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_tP__VP__relative__format = 1, ALT_tP__VP__enhanced__format = 2, ALT_tP__VP__absolute__format = 3 };
private:
union_selection_type union_selection;
union {
OCTETSTRING *field_tP__VP__relative__format;
OCTETSTRING *field_tP__VP__enhanced__format;
OCTETSTRING *field_tP__VP__absolute__format;
};
void copy_value(const TP__VP& other_value);

public:
TP__VP();
TP__VP(const TP__VP& other_value);
~TP__VP();
TP__VP& operator=(const TP__VP& other_value);
boolean operator==(const TP__VP& other_value) const;
inline boolean operator!=(const TP__VP& other_value) const { return !(*this == other_value); }
OCTETSTRING& tP__VP__relative__format();
const OCTETSTRING& tP__VP__relative__format() const;
OCTETSTRING& tP__VP__enhanced__format();
const OCTETSTRING& tP__VP__enhanced__format() const;
OCTETSTRING& tP__VP__absolute__format();
const OCTETSTRING& tP__VP__absolute__format() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TP__VP_template : public Base_Template {
union {
struct {
TP__VP::union_selection_type union_selection;
union {
OCTETSTRING_template *field_tP__VP__relative__format;
OCTETSTRING_template *field_tP__VP__enhanced__format;
OCTETSTRING_template *field_tP__VP__absolute__format;
};
} single_value;
struct {
unsigned int n_values;
TP__VP_template *list_value;
} value_list;
struct {
TP__VP_template* precondition;
TP__VP_template* implied_template;
} implication_;
dynmatch_struct<TP__VP>* dyn_match;
};
void copy_value(const TP__VP& other_value);

void copy_template(const TP__VP_template& other_value);

public:
TP__VP_template();
TP__VP_template(template_sel other_value);
TP__VP_template(const TP__VP& other_value);
TP__VP_template(const OPTIONAL<TP__VP>& other_value);
TP__VP_template(TP__VP_template* p_precondition, TP__VP_template* p_implied_template);
TP__VP_template(Dynamic_Match_Interface<TP__VP>* p_dyn_match);
TP__VP_template(const TP__VP_template& other_value);
~TP__VP_template();
void clean_up();
TP__VP_template& operator=(template_sel other_value);
TP__VP_template& operator=(const TP__VP& other_value);
TP__VP_template& operator=(const OPTIONAL<TP__VP>& other_value);
TP__VP_template& operator=(const TP__VP_template& other_value);
boolean match(const TP__VP& other_value, boolean legacy = FALSE) const;
boolean is_value() const;TP__VP valueof() const;
TP__VP_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
OCTETSTRING_template& tP__VP__relative__format();
const OCTETSTRING_template& tP__VP__relative__format() const;
OCTETSTRING_template& tP__VP__enhanced__format();
const OCTETSTRING_template& tP__VP__enhanced__format() const;
OCTETSTRING_template& tP__VP__absolute__format();
const OCTETSTRING_template& tP__VP__absolute__format() const;
boolean ischosen(TP__VP::union_selection_type checked_selection) const;
void log() const;
void log_match(const TP__VP& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class TP__CDL__CD : public Base_Type {
  INTEGER field_tP__CDL;
  OCTETSTRING field_tP__CD;
public:
  TP__CDL__CD();
  TP__CDL__CD(const INTEGER& par_tP__CDL,
    const OCTETSTRING& par_tP__CD);
  TP__CDL__CD(const TP__CDL__CD& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  TP__CDL__CD& operator=(const TP__CDL__CD& other_value);
  boolean operator==(const TP__CDL__CD& other_value) const;
  inline boolean operator!=(const TP__CDL__CD& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& tP__CDL()
    {return field_tP__CDL;}
  inline const INTEGER& tP__CDL() const
    {return field_tP__CDL;}
  inline OCTETSTRING& tP__CD()
    {return field_tP__CD;}
  inline const OCTETSTRING& tP__CD() const
    {return field_tP__CD;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TP__CDL__CD_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
TP__CDL__CD_template *list_value;
} value_list;
struct {
TP__CDL__CD_template* precondition;
TP__CDL__CD_template* implied_template;
} implication_;
dynmatch_struct<TP__CDL__CD>* dyn_match;
};

void set_specific();
void copy_value(const TP__CDL__CD& other_value);
void copy_template(const TP__CDL__CD_template& other_value);

public:
TP__CDL__CD_template();
TP__CDL__CD_template(template_sel other_value);
TP__CDL__CD_template(const TP__CDL__CD& other_value);
TP__CDL__CD_template(const OPTIONAL<TP__CDL__CD>& other_value);
TP__CDL__CD_template(TP__CDL__CD_template* p_precondition, TP__CDL__CD_template* p_implied_template);
TP__CDL__CD_template(Dynamic_Match_Interface<TP__CDL__CD>* p_dyn_match);
TP__CDL__CD_template(const TP__CDL__CD_template& other_value);
~TP__CDL__CD_template();
TP__CDL__CD_template& operator=(template_sel other_value);
TP__CDL__CD_template& operator=(const TP__CDL__CD& other_value);
TP__CDL__CD_template& operator=(const OPTIONAL<TP__CDL__CD>& other_value);
TP__CDL__CD_template& operator=(const TP__CDL__CD_template& other_value);
boolean match(const TP__CDL__CD& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
TP__CDL__CD valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
TP__CDL__CD_template& list_item(unsigned int list_index) const;
INTEGER_template& tP__CDL();
const INTEGER_template& tP__CDL() const;
OCTETSTRING_template& tP__CD();
const OCTETSTRING_template& tP__CD() const;
int size_of() const;
void log() const;
void log_match(const TP__CDL__CD& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class SMS__COMMAND : public Base_Type {
  BITSTRING field_tP__MTI;
  BITSTRING field_tP__Spare1;
  BITSTRING field_tP__SRR;
  BITSTRING field_tP__UDHI;
  BITSTRING field_tP__Spare2;
  OCTETSTRING field_tP__MR;
  OCTETSTRING field_tP__PID;
  OCTETSTRING field_tP__CT;
  OCTETSTRING field_tP__MN;
  TP__DA field_tP__DA;
  TP__CDL__CD field_tP__CDL__CD;
public:
  SMS__COMMAND();
  SMS__COMMAND(const BITSTRING& par_tP__MTI,
    const BITSTRING& par_tP__Spare1,
    const BITSTRING& par_tP__SRR,
    const BITSTRING& par_tP__UDHI,
    const BITSTRING& par_tP__Spare2,
    const OCTETSTRING& par_tP__MR,
    const OCTETSTRING& par_tP__PID,
    const OCTETSTRING& par_tP__CT,
    const OCTETSTRING& par_tP__MN,
    const TP__DA& par_tP__DA,
    const TP__CDL__CD& par_tP__CDL__CD);
  SMS__COMMAND(const SMS__COMMAND& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SMS__COMMAND& operator=(const SMS__COMMAND& other_value);
  boolean operator==(const SMS__COMMAND& other_value) const;
  inline boolean operator!=(const SMS__COMMAND& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& tP__MTI()
    {return field_tP__MTI;}
  inline const BITSTRING& tP__MTI() const
    {return field_tP__MTI;}
  inline BITSTRING& tP__Spare1()
    {return field_tP__Spare1;}
  inline const BITSTRING& tP__Spare1() const
    {return field_tP__Spare1;}
  inline BITSTRING& tP__SRR()
    {return field_tP__SRR;}
  inline const BITSTRING& tP__SRR() const
    {return field_tP__SRR;}
  inline BITSTRING& tP__UDHI()
    {return field_tP__UDHI;}
  inline const BITSTRING& tP__UDHI() const
    {return field_tP__UDHI;}
  inline BITSTRING& tP__Spare2()
    {return field_tP__Spare2;}
  inline const BITSTRING& tP__Spare2() const
    {return field_tP__Spare2;}
  inline OCTETSTRING& tP__MR()
    {return field_tP__MR;}
  inline const OCTETSTRING& tP__MR() const
    {return field_tP__MR;}
  inline OCTETSTRING& tP__PID()
    {return field_tP__PID;}
  inline const OCTETSTRING& tP__PID() const
    {return field_tP__PID;}
  inline OCTETSTRING& tP__CT()
    {return field_tP__CT;}
  inline const OCTETSTRING& tP__CT() const
    {return field_tP__CT;}
  inline OCTETSTRING& tP__MN()
    {return field_tP__MN;}
  inline const OCTETSTRING& tP__MN() const
    {return field_tP__MN;}
  inline TP__DA& tP__DA()
    {return field_tP__DA;}
  inline const TP__DA& tP__DA() const
    {return field_tP__DA;}
  inline TP__CDL__CD& tP__CDL__CD()
    {return field_tP__CDL__CD;}
  inline const TP__CDL__CD& tP__CDL__CD() const
    {return field_tP__CDL__CD;}
  inline int size_of() const
    {return 11;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class SMS__COMMAND_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SMS__COMMAND_template *list_value;
} value_list;
struct {
SMS__COMMAND_template* precondition;
SMS__COMMAND_template* implied_template;
} implication_;
dynmatch_struct<SMS__COMMAND>* dyn_match;
};

void set_specific();
void copy_value(const SMS__COMMAND& other_value);
void copy_template(const SMS__COMMAND_template& other_value);

public:
SMS__COMMAND_template();
SMS__COMMAND_template(template_sel other_value);
SMS__COMMAND_template(const SMS__COMMAND& other_value);
SMS__COMMAND_template(const OPTIONAL<SMS__COMMAND>& other_value);
SMS__COMMAND_template(SMS__COMMAND_template* p_precondition, SMS__COMMAND_template* p_implied_template);
SMS__COMMAND_template(Dynamic_Match_Interface<SMS__COMMAND>* p_dyn_match);
SMS__COMMAND_template(const SMS__COMMAND_template& other_value);
~SMS__COMMAND_template();
SMS__COMMAND_template& operator=(template_sel other_value);
SMS__COMMAND_template& operator=(const SMS__COMMAND& other_value);
SMS__COMMAND_template& operator=(const OPTIONAL<SMS__COMMAND>& other_value);
SMS__COMMAND_template& operator=(const SMS__COMMAND_template& other_value);
boolean match(const SMS__COMMAND& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SMS__COMMAND valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__COMMAND_template& list_item(unsigned int list_index) const;
BITSTRING_template& tP__MTI();
const BITSTRING_template& tP__MTI() const;
BITSTRING_template& tP__Spare1();
const BITSTRING_template& tP__Spare1() const;
BITSTRING_template& tP__SRR();
const BITSTRING_template& tP__SRR() const;
BITSTRING_template& tP__UDHI();
const BITSTRING_template& tP__UDHI() const;
BITSTRING_template& tP__Spare2();
const BITSTRING_template& tP__Spare2() const;
OCTETSTRING_template& tP__MR();
const OCTETSTRING_template& tP__MR() const;
OCTETSTRING_template& tP__PID();
const OCTETSTRING_template& tP__PID() const;
OCTETSTRING_template& tP__CT();
const OCTETSTRING_template& tP__CT() const;
OCTETSTRING_template& tP__MN();
const OCTETSTRING_template& tP__MN() const;
TP__DA_template& tP__DA();
const TP__DA_template& tP__DA() const;
TP__CDL__CD_template& tP__CDL__CD();
const TP__CDL__CD_template& tP__CDL__CD() const;
int size_of() const;
void log() const;
void log_match(const SMS__COMMAND& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__DATA__User__DataLV__MS__SGSN : public Base_Type {
  INTEGER field_rP__LengthIndicator;
  TPDU__RP__DATA__MS__SGSN field_rP__TPDU;
public:
  RP__DATA__User__DataLV__MS__SGSN();
  RP__DATA__User__DataLV__MS__SGSN(const INTEGER& par_rP__LengthIndicator,
    const TPDU__RP__DATA__MS__SGSN& par_rP__TPDU);
  RP__DATA__User__DataLV__MS__SGSN(const RP__DATA__User__DataLV__MS__SGSN& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__DATA__User__DataLV__MS__SGSN& operator=(const RP__DATA__User__DataLV__MS__SGSN& other_value);
  boolean operator==(const RP__DATA__User__DataLV__MS__SGSN& other_value) const;
  inline boolean operator!=(const RP__DATA__User__DataLV__MS__SGSN& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& rP__LengthIndicator()
    {return field_rP__LengthIndicator;}
  inline const INTEGER& rP__LengthIndicator() const
    {return field_rP__LengthIndicator;}
  inline TPDU__RP__DATA__MS__SGSN& rP__TPDU()
    {return field_rP__TPDU;}
  inline const TPDU__RP__DATA__MS__SGSN& rP__TPDU() const
    {return field_rP__TPDU;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__DATA__User__DataLV__MS__SGSN_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__DATA__User__DataLV__MS__SGSN_template *list_value;
} value_list;
struct {
RP__DATA__User__DataLV__MS__SGSN_template* precondition;
RP__DATA__User__DataLV__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<RP__DATA__User__DataLV__MS__SGSN>* dyn_match;
};

void set_specific();
void copy_value(const RP__DATA__User__DataLV__MS__SGSN& other_value);
void copy_template(const RP__DATA__User__DataLV__MS__SGSN_template& other_value);

public:
RP__DATA__User__DataLV__MS__SGSN_template();
RP__DATA__User__DataLV__MS__SGSN_template(template_sel other_value);
RP__DATA__User__DataLV__MS__SGSN_template(const RP__DATA__User__DataLV__MS__SGSN& other_value);
RP__DATA__User__DataLV__MS__SGSN_template(const OPTIONAL<RP__DATA__User__DataLV__MS__SGSN>& other_value);
RP__DATA__User__DataLV__MS__SGSN_template(RP__DATA__User__DataLV__MS__SGSN_template* p_precondition, RP__DATA__User__DataLV__MS__SGSN_template* p_implied_template);
RP__DATA__User__DataLV__MS__SGSN_template(Dynamic_Match_Interface<RP__DATA__User__DataLV__MS__SGSN>* p_dyn_match);
RP__DATA__User__DataLV__MS__SGSN_template(const RP__DATA__User__DataLV__MS__SGSN_template& other_value);
~RP__DATA__User__DataLV__MS__SGSN_template();
RP__DATA__User__DataLV__MS__SGSN_template& operator=(template_sel other_value);
RP__DATA__User__DataLV__MS__SGSN_template& operator=(const RP__DATA__User__DataLV__MS__SGSN& other_value);
RP__DATA__User__DataLV__MS__SGSN_template& operator=(const OPTIONAL<RP__DATA__User__DataLV__MS__SGSN>& other_value);
RP__DATA__User__DataLV__MS__SGSN_template& operator=(const RP__DATA__User__DataLV__MS__SGSN_template& other_value);
boolean match(const RP__DATA__User__DataLV__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__DATA__User__DataLV__MS__SGSN valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__DATA__User__DataLV__MS__SGSN_template& list_item(unsigned int list_index) const;
INTEGER_template& rP__LengthIndicator();
const INTEGER_template& rP__LengthIndicator() const;
TPDU__RP__DATA__MS__SGSN_template& rP__TPDU();
const TPDU__RP__DATA__MS__SGSN_template& rP__TPDU() const;
int size_of() const;
void log() const;
void log_match(const RP__DATA__User__DataLV__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__DATA__MS__SGSN : public Base_Type {
  BITSTRING field_rP__MTI;
  BITSTRING field_rP__Spare;
  OCTETSTRING field_rP__MessageReference;
  RP__OriginatorAddressLV field_rP__OriginatorAddress;
  RP__DestinationAddressLV field_rP__DestinationAddress;
  RP__DATA__User__DataLV__MS__SGSN field_rP__User__Data;
public:
  RP__DATA__MS__SGSN();
  RP__DATA__MS__SGSN(const BITSTRING& par_rP__MTI,
    const BITSTRING& par_rP__Spare,
    const OCTETSTRING& par_rP__MessageReference,
    const RP__OriginatorAddressLV& par_rP__OriginatorAddress,
    const RP__DestinationAddressLV& par_rP__DestinationAddress,
    const RP__DATA__User__DataLV__MS__SGSN& par_rP__User__Data);
  RP__DATA__MS__SGSN(const RP__DATA__MS__SGSN& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__DATA__MS__SGSN& operator=(const RP__DATA__MS__SGSN& other_value);
  boolean operator==(const RP__DATA__MS__SGSN& other_value) const;
  inline boolean operator!=(const RP__DATA__MS__SGSN& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rP__MTI()
    {return field_rP__MTI;}
  inline const BITSTRING& rP__MTI() const
    {return field_rP__MTI;}
  inline BITSTRING& rP__Spare()
    {return field_rP__Spare;}
  inline const BITSTRING& rP__Spare() const
    {return field_rP__Spare;}
  inline OCTETSTRING& rP__MessageReference()
    {return field_rP__MessageReference;}
  inline const OCTETSTRING& rP__MessageReference() const
    {return field_rP__MessageReference;}
  inline RP__OriginatorAddressLV& rP__OriginatorAddress()
    {return field_rP__OriginatorAddress;}
  inline const RP__OriginatorAddressLV& rP__OriginatorAddress() const
    {return field_rP__OriginatorAddress;}
  inline RP__DestinationAddressLV& rP__DestinationAddress()
    {return field_rP__DestinationAddress;}
  inline const RP__DestinationAddressLV& rP__DestinationAddress() const
    {return field_rP__DestinationAddress;}
  inline RP__DATA__User__DataLV__MS__SGSN& rP__User__Data()
    {return field_rP__User__Data;}
  inline const RP__DATA__User__DataLV__MS__SGSN& rP__User__Data() const
    {return field_rP__User__Data;}
  inline int size_of() const
    {return 6;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__DATA__MS__SGSN_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__DATA__MS__SGSN_template *list_value;
} value_list;
struct {
RP__DATA__MS__SGSN_template* precondition;
RP__DATA__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<RP__DATA__MS__SGSN>* dyn_match;
};

void set_specific();
void copy_value(const RP__DATA__MS__SGSN& other_value);
void copy_template(const RP__DATA__MS__SGSN_template& other_value);

public:
RP__DATA__MS__SGSN_template();
RP__DATA__MS__SGSN_template(template_sel other_value);
RP__DATA__MS__SGSN_template(const RP__DATA__MS__SGSN& other_value);
RP__DATA__MS__SGSN_template(const OPTIONAL<RP__DATA__MS__SGSN>& other_value);
RP__DATA__MS__SGSN_template(RP__DATA__MS__SGSN_template* p_precondition, RP__DATA__MS__SGSN_template* p_implied_template);
RP__DATA__MS__SGSN_template(Dynamic_Match_Interface<RP__DATA__MS__SGSN>* p_dyn_match);
RP__DATA__MS__SGSN_template(const RP__DATA__MS__SGSN_template& other_value);
~RP__DATA__MS__SGSN_template();
RP__DATA__MS__SGSN_template& operator=(template_sel other_value);
RP__DATA__MS__SGSN_template& operator=(const RP__DATA__MS__SGSN& other_value);
RP__DATA__MS__SGSN_template& operator=(const OPTIONAL<RP__DATA__MS__SGSN>& other_value);
RP__DATA__MS__SGSN_template& operator=(const RP__DATA__MS__SGSN_template& other_value);
boolean match(const RP__DATA__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__DATA__MS__SGSN valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__DATA__MS__SGSN_template& list_item(unsigned int list_index) const;
BITSTRING_template& rP__MTI();
const BITSTRING_template& rP__MTI() const;
BITSTRING_template& rP__Spare();
const BITSTRING_template& rP__Spare() const;
OCTETSTRING_template& rP__MessageReference();
const OCTETSTRING_template& rP__MessageReference() const;
RP__OriginatorAddressLV_template& rP__OriginatorAddress();
const RP__OriginatorAddressLV_template& rP__OriginatorAddress() const;
RP__DestinationAddressLV_template& rP__DestinationAddress();
const RP__DestinationAddressLV_template& rP__DestinationAddress() const;
RP__DATA__User__DataLV__MS__SGSN_template& rP__User__Data();
const RP__DATA__User__DataLV__MS__SGSN_template& rP__User__Data() const;
int size_of() const;
void log() const;
void log_match(const RP__DATA__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__ACK__MS__SGSN : public Base_Type {
  BITSTRING field_rP__MTI;
  BITSTRING field_rP__Spare;
  OCTETSTRING field_rP__MessageReference;
  OPTIONAL< RP__ACK__User__DataTLV__MS__SGSN > field_rP__User__Data;
public:
  RP__ACK__MS__SGSN();
  RP__ACK__MS__SGSN(const BITSTRING& par_rP__MTI,
    const BITSTRING& par_rP__Spare,
    const OCTETSTRING& par_rP__MessageReference,
    const OPTIONAL< RP__ACK__User__DataTLV__MS__SGSN >& par_rP__User__Data);
  RP__ACK__MS__SGSN(const RP__ACK__MS__SGSN& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__ACK__MS__SGSN& operator=(const RP__ACK__MS__SGSN& other_value);
  boolean operator==(const RP__ACK__MS__SGSN& other_value) const;
  inline boolean operator!=(const RP__ACK__MS__SGSN& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rP__MTI()
    {return field_rP__MTI;}
  inline const BITSTRING& rP__MTI() const
    {return field_rP__MTI;}
  inline BITSTRING& rP__Spare()
    {return field_rP__Spare;}
  inline const BITSTRING& rP__Spare() const
    {return field_rP__Spare;}
  inline OCTETSTRING& rP__MessageReference()
    {return field_rP__MessageReference;}
  inline const OCTETSTRING& rP__MessageReference() const
    {return field_rP__MessageReference;}
  inline OPTIONAL< RP__ACK__User__DataTLV__MS__SGSN >& rP__User__Data()
    {return field_rP__User__Data;}
  inline const OPTIONAL< RP__ACK__User__DataTLV__MS__SGSN >& rP__User__Data() const
    {return field_rP__User__Data;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__ACK__MS__SGSN_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__ACK__MS__SGSN_template *list_value;
} value_list;
struct {
RP__ACK__MS__SGSN_template* precondition;
RP__ACK__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<RP__ACK__MS__SGSN>* dyn_match;
};

void set_specific();
void copy_value(const RP__ACK__MS__SGSN& other_value);
void copy_template(const RP__ACK__MS__SGSN_template& other_value);

public:
RP__ACK__MS__SGSN_template();
RP__ACK__MS__SGSN_template(template_sel other_value);
RP__ACK__MS__SGSN_template(const RP__ACK__MS__SGSN& other_value);
RP__ACK__MS__SGSN_template(const OPTIONAL<RP__ACK__MS__SGSN>& other_value);
RP__ACK__MS__SGSN_template(RP__ACK__MS__SGSN_template* p_precondition, RP__ACK__MS__SGSN_template* p_implied_template);
RP__ACK__MS__SGSN_template(Dynamic_Match_Interface<RP__ACK__MS__SGSN>* p_dyn_match);
RP__ACK__MS__SGSN_template(const RP__ACK__MS__SGSN_template& other_value);
~RP__ACK__MS__SGSN_template();
RP__ACK__MS__SGSN_template& operator=(template_sel other_value);
RP__ACK__MS__SGSN_template& operator=(const RP__ACK__MS__SGSN& other_value);
RP__ACK__MS__SGSN_template& operator=(const OPTIONAL<RP__ACK__MS__SGSN>& other_value);
RP__ACK__MS__SGSN_template& operator=(const RP__ACK__MS__SGSN_template& other_value);
boolean match(const RP__ACK__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__ACK__MS__SGSN valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__ACK__MS__SGSN_template& list_item(unsigned int list_index) const;
BITSTRING_template& rP__MTI();
const BITSTRING_template& rP__MTI() const;
BITSTRING_template& rP__Spare();
const BITSTRING_template& rP__Spare() const;
OCTETSTRING_template& rP__MessageReference();
const OCTETSTRING_template& rP__MessageReference() const;
RP__ACK__User__DataTLV__MS__SGSN_template& rP__User__Data();
const RP__ACK__User__DataTLV__MS__SGSN_template& rP__User__Data() const;
int size_of() const;
void log() const;
void log_match(const RP__ACK__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TPDU__RP__ACK__MS__SGSN : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_sMS__DELIVER__REPORT = 1 };
private:
union_selection_type union_selection;
union {
SMS__DELIVER__REPORT__in__RP__ACK *field_sMS__DELIVER__REPORT;
};
void copy_value(const TPDU__RP__ACK__MS__SGSN& other_value);

public:
TPDU__RP__ACK__MS__SGSN();
TPDU__RP__ACK__MS__SGSN(const TPDU__RP__ACK__MS__SGSN& other_value);
~TPDU__RP__ACK__MS__SGSN();
TPDU__RP__ACK__MS__SGSN& operator=(const TPDU__RP__ACK__MS__SGSN& other_value);
boolean operator==(const TPDU__RP__ACK__MS__SGSN& other_value) const;
inline boolean operator!=(const TPDU__RP__ACK__MS__SGSN& other_value) const { return !(*this == other_value); }
SMS__DELIVER__REPORT__in__RP__ACK& sMS__DELIVER__REPORT();
const SMS__DELIVER__REPORT__in__RP__ACK& sMS__DELIVER__REPORT() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TPDU__RP__ACK__MS__SGSN_template : public Base_Template {
union {
struct {
TPDU__RP__ACK__MS__SGSN::union_selection_type union_selection;
union {
SMS__DELIVER__REPORT__in__RP__ACK_template *field_sMS__DELIVER__REPORT;
};
} single_value;
struct {
unsigned int n_values;
TPDU__RP__ACK__MS__SGSN_template *list_value;
} value_list;
struct {
TPDU__RP__ACK__MS__SGSN_template* precondition;
TPDU__RP__ACK__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<TPDU__RP__ACK__MS__SGSN>* dyn_match;
};
void copy_value(const TPDU__RP__ACK__MS__SGSN& other_value);

void copy_template(const TPDU__RP__ACK__MS__SGSN_template& other_value);

public:
TPDU__RP__ACK__MS__SGSN_template();
TPDU__RP__ACK__MS__SGSN_template(template_sel other_value);
TPDU__RP__ACK__MS__SGSN_template(const TPDU__RP__ACK__MS__SGSN& other_value);
TPDU__RP__ACK__MS__SGSN_template(const OPTIONAL<TPDU__RP__ACK__MS__SGSN>& other_value);
TPDU__RP__ACK__MS__SGSN_template(TPDU__RP__ACK__MS__SGSN_template* p_precondition, TPDU__RP__ACK__MS__SGSN_template* p_implied_template);
TPDU__RP__ACK__MS__SGSN_template(Dynamic_Match_Interface<TPDU__RP__ACK__MS__SGSN>* p_dyn_match);
TPDU__RP__ACK__MS__SGSN_template(const TPDU__RP__ACK__MS__SGSN_template& other_value);
~TPDU__RP__ACK__MS__SGSN_template();
void clean_up();
TPDU__RP__ACK__MS__SGSN_template& operator=(template_sel other_value);
TPDU__RP__ACK__MS__SGSN_template& operator=(const TPDU__RP__ACK__MS__SGSN& other_value);
TPDU__RP__ACK__MS__SGSN_template& operator=(const OPTIONAL<TPDU__RP__ACK__MS__SGSN>& other_value);
TPDU__RP__ACK__MS__SGSN_template& operator=(const TPDU__RP__ACK__MS__SGSN_template& other_value);
boolean match(const TPDU__RP__ACK__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_value() const;TPDU__RP__ACK__MS__SGSN valueof() const;
TPDU__RP__ACK__MS__SGSN_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__DELIVER__REPORT__in__RP__ACK_template& sMS__DELIVER__REPORT();
const SMS__DELIVER__REPORT__in__RP__ACK_template& sMS__DELIVER__REPORT() const;
boolean ischosen(TPDU__RP__ACK__MS__SGSN::union_selection_type checked_selection) const;
void log() const;
void log_match(const TPDU__RP__ACK__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class SMS__DELIVER__REPORT__in__RP__ACK : public Base_Type {
  BITSTRING field_tP__MTI;
  BITSTRING field_tP__Spare1;
  BITSTRING field_tP__UDHI;
  BITSTRING field_tP__Spare2;
  BITSTRING field_tP__PresenceBitTP__PID;
  BITSTRING field_tP__PresenceBitTP__DCS;
  BITSTRING field_tP__PresenceBitTP__UDL;
  BITSTRING field_tP__Reserved;
  BITSTRING field_tP__ExtensionBit;
  OPTIONAL< OCTETSTRING > field_tP__PID;
  OPTIONAL< OCTETSTRING > field_tP__DCS;
  OPTIONAL< TP__UDL__UD > field_tP__UDL__UD;
public:
  SMS__DELIVER__REPORT__in__RP__ACK();
  SMS__DELIVER__REPORT__in__RP__ACK(const BITSTRING& par_tP__MTI,
    const BITSTRING& par_tP__Spare1,
    const BITSTRING& par_tP__UDHI,
    const BITSTRING& par_tP__Spare2,
    const BITSTRING& par_tP__PresenceBitTP__PID,
    const BITSTRING& par_tP__PresenceBitTP__DCS,
    const BITSTRING& par_tP__PresenceBitTP__UDL,
    const BITSTRING& par_tP__Reserved,
    const BITSTRING& par_tP__ExtensionBit,
    const OPTIONAL< OCTETSTRING >& par_tP__PID,
    const OPTIONAL< OCTETSTRING >& par_tP__DCS,
    const OPTIONAL< TP__UDL__UD >& par_tP__UDL__UD);
  SMS__DELIVER__REPORT__in__RP__ACK(const SMS__DELIVER__REPORT__in__RP__ACK& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SMS__DELIVER__REPORT__in__RP__ACK& operator=(const SMS__DELIVER__REPORT__in__RP__ACK& other_value);
  boolean operator==(const SMS__DELIVER__REPORT__in__RP__ACK& other_value) const;
  inline boolean operator!=(const SMS__DELIVER__REPORT__in__RP__ACK& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& tP__MTI()
    {return field_tP__MTI;}
  inline const BITSTRING& tP__MTI() const
    {return field_tP__MTI;}
  inline BITSTRING& tP__Spare1()
    {return field_tP__Spare1;}
  inline const BITSTRING& tP__Spare1() const
    {return field_tP__Spare1;}
  inline BITSTRING& tP__UDHI()
    {return field_tP__UDHI;}
  inline const BITSTRING& tP__UDHI() const
    {return field_tP__UDHI;}
  inline BITSTRING& tP__Spare2()
    {return field_tP__Spare2;}
  inline const BITSTRING& tP__Spare2() const
    {return field_tP__Spare2;}
  inline BITSTRING& tP__PresenceBitTP__PID()
    {return field_tP__PresenceBitTP__PID;}
  inline const BITSTRING& tP__PresenceBitTP__PID() const
    {return field_tP__PresenceBitTP__PID;}
  inline BITSTRING& tP__PresenceBitTP__DCS()
    {return field_tP__PresenceBitTP__DCS;}
  inline const BITSTRING& tP__PresenceBitTP__DCS() const
    {return field_tP__PresenceBitTP__DCS;}
  inline BITSTRING& tP__PresenceBitTP__UDL()
    {return field_tP__PresenceBitTP__UDL;}
  inline const BITSTRING& tP__PresenceBitTP__UDL() const
    {return field_tP__PresenceBitTP__UDL;}
  inline BITSTRING& tP__Reserved()
    {return field_tP__Reserved;}
  inline const BITSTRING& tP__Reserved() const
    {return field_tP__Reserved;}
  inline BITSTRING& tP__ExtensionBit()
    {return field_tP__ExtensionBit;}
  inline const BITSTRING& tP__ExtensionBit() const
    {return field_tP__ExtensionBit;}
  inline OPTIONAL< OCTETSTRING >& tP__PID()
    {return field_tP__PID;}
  inline const OPTIONAL< OCTETSTRING >& tP__PID() const
    {return field_tP__PID;}
  inline OPTIONAL< OCTETSTRING >& tP__DCS()
    {return field_tP__DCS;}
  inline const OPTIONAL< OCTETSTRING >& tP__DCS() const
    {return field_tP__DCS;}
  inline OPTIONAL< TP__UDL__UD >& tP__UDL__UD()
    {return field_tP__UDL__UD;}
  inline const OPTIONAL< TP__UDL__UD >& tP__UDL__UD() const
    {return field_tP__UDL__UD;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class SMS__DELIVER__REPORT__in__RP__ACK_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SMS__DELIVER__REPORT__in__RP__ACK_template *list_value;
} value_list;
struct {
SMS__DELIVER__REPORT__in__RP__ACK_template* precondition;
SMS__DELIVER__REPORT__in__RP__ACK_template* implied_template;
} implication_;
dynmatch_struct<SMS__DELIVER__REPORT__in__RP__ACK>* dyn_match;
};

void set_specific();
void copy_value(const SMS__DELIVER__REPORT__in__RP__ACK& other_value);
void copy_template(const SMS__DELIVER__REPORT__in__RP__ACK_template& other_value);

public:
SMS__DELIVER__REPORT__in__RP__ACK_template();
SMS__DELIVER__REPORT__in__RP__ACK_template(template_sel other_value);
SMS__DELIVER__REPORT__in__RP__ACK_template(const SMS__DELIVER__REPORT__in__RP__ACK& other_value);
SMS__DELIVER__REPORT__in__RP__ACK_template(const OPTIONAL<SMS__DELIVER__REPORT__in__RP__ACK>& other_value);
SMS__DELIVER__REPORT__in__RP__ACK_template(SMS__DELIVER__REPORT__in__RP__ACK_template* p_precondition, SMS__DELIVER__REPORT__in__RP__ACK_template* p_implied_template);
SMS__DELIVER__REPORT__in__RP__ACK_template(Dynamic_Match_Interface<SMS__DELIVER__REPORT__in__RP__ACK>* p_dyn_match);
SMS__DELIVER__REPORT__in__RP__ACK_template(const SMS__DELIVER__REPORT__in__RP__ACK_template& other_value);
~SMS__DELIVER__REPORT__in__RP__ACK_template();
SMS__DELIVER__REPORT__in__RP__ACK_template& operator=(template_sel other_value);
SMS__DELIVER__REPORT__in__RP__ACK_template& operator=(const SMS__DELIVER__REPORT__in__RP__ACK& other_value);
SMS__DELIVER__REPORT__in__RP__ACK_template& operator=(const OPTIONAL<SMS__DELIVER__REPORT__in__RP__ACK>& other_value);
SMS__DELIVER__REPORT__in__RP__ACK_template& operator=(const SMS__DELIVER__REPORT__in__RP__ACK_template& other_value);
boolean match(const SMS__DELIVER__REPORT__in__RP__ACK& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SMS__DELIVER__REPORT__in__RP__ACK valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__DELIVER__REPORT__in__RP__ACK_template& list_item(unsigned int list_index) const;
BITSTRING_template& tP__MTI();
const BITSTRING_template& tP__MTI() const;
BITSTRING_template& tP__Spare1();
const BITSTRING_template& tP__Spare1() const;
BITSTRING_template& tP__UDHI();
const BITSTRING_template& tP__UDHI() const;
BITSTRING_template& tP__Spare2();
const BITSTRING_template& tP__Spare2() const;
BITSTRING_template& tP__PresenceBitTP__PID();
const BITSTRING_template& tP__PresenceBitTP__PID() const;
BITSTRING_template& tP__PresenceBitTP__DCS();
const BITSTRING_template& tP__PresenceBitTP__DCS() const;
BITSTRING_template& tP__PresenceBitTP__UDL();
const BITSTRING_template& tP__PresenceBitTP__UDL() const;
BITSTRING_template& tP__Reserved();
const BITSTRING_template& tP__Reserved() const;
BITSTRING_template& tP__ExtensionBit();
const BITSTRING_template& tP__ExtensionBit() const;
OCTETSTRING_template& tP__PID();
const OCTETSTRING_template& tP__PID() const;
OCTETSTRING_template& tP__DCS();
const OCTETSTRING_template& tP__DCS() const;
TP__UDL__UD_template& tP__UDL__UD();
const TP__UDL__UD_template& tP__UDL__UD() const;
int size_of() const;
void log() const;
void log_match(const SMS__DELIVER__REPORT__in__RP__ACK& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__ACK__User__DataTLV__MS__SGSN : public Base_Type {
  BITSTRING field_rP__Spare;
  BITSTRING field_rP__UserDataIEI;
  INTEGER field_rP__LengthIndicator;
  TPDU__RP__ACK__MS__SGSN field_rP__TPDU;
public:
  RP__ACK__User__DataTLV__MS__SGSN();
  RP__ACK__User__DataTLV__MS__SGSN(const BITSTRING& par_rP__Spare,
    const BITSTRING& par_rP__UserDataIEI,
    const INTEGER& par_rP__LengthIndicator,
    const TPDU__RP__ACK__MS__SGSN& par_rP__TPDU);
  RP__ACK__User__DataTLV__MS__SGSN(const RP__ACK__User__DataTLV__MS__SGSN& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__ACK__User__DataTLV__MS__SGSN& operator=(const RP__ACK__User__DataTLV__MS__SGSN& other_value);
  boolean operator==(const RP__ACK__User__DataTLV__MS__SGSN& other_value) const;
  inline boolean operator!=(const RP__ACK__User__DataTLV__MS__SGSN& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rP__Spare()
    {return field_rP__Spare;}
  inline const BITSTRING& rP__Spare() const
    {return field_rP__Spare;}
  inline BITSTRING& rP__UserDataIEI()
    {return field_rP__UserDataIEI;}
  inline const BITSTRING& rP__UserDataIEI() const
    {return field_rP__UserDataIEI;}
  inline INTEGER& rP__LengthIndicator()
    {return field_rP__LengthIndicator;}
  inline const INTEGER& rP__LengthIndicator() const
    {return field_rP__LengthIndicator;}
  inline TPDU__RP__ACK__MS__SGSN& rP__TPDU()
    {return field_rP__TPDU;}
  inline const TPDU__RP__ACK__MS__SGSN& rP__TPDU() const
    {return field_rP__TPDU;}
  inline int size_of() const
    {return 4;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__ACK__User__DataTLV__MS__SGSN_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__ACK__User__DataTLV__MS__SGSN_template *list_value;
} value_list;
struct {
RP__ACK__User__DataTLV__MS__SGSN_template* precondition;
RP__ACK__User__DataTLV__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<RP__ACK__User__DataTLV__MS__SGSN>* dyn_match;
};

void set_specific();
void copy_value(const RP__ACK__User__DataTLV__MS__SGSN& other_value);
void copy_template(const RP__ACK__User__DataTLV__MS__SGSN_template& other_value);

public:
RP__ACK__User__DataTLV__MS__SGSN_template();
RP__ACK__User__DataTLV__MS__SGSN_template(template_sel other_value);
RP__ACK__User__DataTLV__MS__SGSN_template(const RP__ACK__User__DataTLV__MS__SGSN& other_value);
RP__ACK__User__DataTLV__MS__SGSN_template(const OPTIONAL<RP__ACK__User__DataTLV__MS__SGSN>& other_value);
RP__ACK__User__DataTLV__MS__SGSN_template(RP__ACK__User__DataTLV__MS__SGSN_template* p_precondition, RP__ACK__User__DataTLV__MS__SGSN_template* p_implied_template);
RP__ACK__User__DataTLV__MS__SGSN_template(Dynamic_Match_Interface<RP__ACK__User__DataTLV__MS__SGSN>* p_dyn_match);
RP__ACK__User__DataTLV__MS__SGSN_template(const RP__ACK__User__DataTLV__MS__SGSN_template& other_value);
~RP__ACK__User__DataTLV__MS__SGSN_template();
RP__ACK__User__DataTLV__MS__SGSN_template& operator=(template_sel other_value);
RP__ACK__User__DataTLV__MS__SGSN_template& operator=(const RP__ACK__User__DataTLV__MS__SGSN& other_value);
RP__ACK__User__DataTLV__MS__SGSN_template& operator=(const OPTIONAL<RP__ACK__User__DataTLV__MS__SGSN>& other_value);
RP__ACK__User__DataTLV__MS__SGSN_template& operator=(const RP__ACK__User__DataTLV__MS__SGSN_template& other_value);
boolean match(const RP__ACK__User__DataTLV__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__ACK__User__DataTLV__MS__SGSN valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__ACK__User__DataTLV__MS__SGSN_template& list_item(unsigned int list_index) const;
BITSTRING_template& rP__Spare();
const BITSTRING_template& rP__Spare() const;
BITSTRING_template& rP__UserDataIEI();
const BITSTRING_template& rP__UserDataIEI() const;
INTEGER_template& rP__LengthIndicator();
const INTEGER_template& rP__LengthIndicator() const;
TPDU__RP__ACK__MS__SGSN_template& rP__TPDU();
const TPDU__RP__ACK__MS__SGSN_template& rP__TPDU() const;
int size_of() const;
void log() const;
void log_match(const RP__ACK__User__DataTLV__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__CauseV : public Base_Type {
  BITSTRING field_causeValue;
  BITSTRING field_ext;
public:
  RP__CauseV();
  RP__CauseV(const BITSTRING& par_causeValue,
    const BITSTRING& par_ext);
  RP__CauseV(const RP__CauseV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__CauseV& operator=(const RP__CauseV& other_value);
  boolean operator==(const RP__CauseV& other_value) const;
  inline boolean operator!=(const RP__CauseV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& causeValue()
    {return field_causeValue;}
  inline const BITSTRING& causeValue() const
    {return field_causeValue;}
  inline BITSTRING& ext()
    {return field_ext;}
  inline const BITSTRING& ext() const
    {return field_ext;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__CauseV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__CauseV_template *list_value;
} value_list;
struct {
RP__CauseV_template* precondition;
RP__CauseV_template* implied_template;
} implication_;
dynmatch_struct<RP__CauseV>* dyn_match;
};

void set_specific();
void copy_value(const RP__CauseV& other_value);
void copy_template(const RP__CauseV_template& other_value);

public:
RP__CauseV_template();
RP__CauseV_template(template_sel other_value);
RP__CauseV_template(const RP__CauseV& other_value);
RP__CauseV_template(const OPTIONAL<RP__CauseV>& other_value);
RP__CauseV_template(RP__CauseV_template* p_precondition, RP__CauseV_template* p_implied_template);
RP__CauseV_template(Dynamic_Match_Interface<RP__CauseV>* p_dyn_match);
RP__CauseV_template(const RP__CauseV_template& other_value);
~RP__CauseV_template();
RP__CauseV_template& operator=(template_sel other_value);
RP__CauseV_template& operator=(const RP__CauseV& other_value);
RP__CauseV_template& operator=(const OPTIONAL<RP__CauseV>& other_value);
RP__CauseV_template& operator=(const RP__CauseV_template& other_value);
boolean match(const RP__CauseV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__CauseV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__CauseV_template& list_item(unsigned int list_index) const;
BITSTRING_template& causeValue();
const BITSTRING_template& causeValue() const;
BITSTRING_template& ext();
const BITSTRING_template& ext() const;
int size_of() const;
void log() const;
void log_match(const RP__CauseV& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__CauseLV : public Base_Type {
  INTEGER field_rP__LengthIndicator;
  RP__CauseV field_rP__CauseV;
  OPTIONAL< OCTETSTRING > field_rP__diagnisticField;
public:
  RP__CauseLV();
  RP__CauseLV(const INTEGER& par_rP__LengthIndicator,
    const RP__CauseV& par_rP__CauseV,
    const OPTIONAL< OCTETSTRING >& par_rP__diagnisticField);
  RP__CauseLV(const RP__CauseLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__CauseLV& operator=(const RP__CauseLV& other_value);
  boolean operator==(const RP__CauseLV& other_value) const;
  inline boolean operator!=(const RP__CauseLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& rP__LengthIndicator()
    {return field_rP__LengthIndicator;}
  inline const INTEGER& rP__LengthIndicator() const
    {return field_rP__LengthIndicator;}
  inline RP__CauseV& rP__CauseV()
    {return field_rP__CauseV;}
  inline const RP__CauseV& rP__CauseV() const
    {return field_rP__CauseV;}
  inline OPTIONAL< OCTETSTRING >& rP__diagnisticField()
    {return field_rP__diagnisticField;}
  inline const OPTIONAL< OCTETSTRING >& rP__diagnisticField() const
    {return field_rP__diagnisticField;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__CauseLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__CauseLV_template *list_value;
} value_list;
struct {
RP__CauseLV_template* precondition;
RP__CauseLV_template* implied_template;
} implication_;
dynmatch_struct<RP__CauseLV>* dyn_match;
};

void set_specific();
void copy_value(const RP__CauseLV& other_value);
void copy_template(const RP__CauseLV_template& other_value);

public:
RP__CauseLV_template();
RP__CauseLV_template(template_sel other_value);
RP__CauseLV_template(const RP__CauseLV& other_value);
RP__CauseLV_template(const OPTIONAL<RP__CauseLV>& other_value);
RP__CauseLV_template(RP__CauseLV_template* p_precondition, RP__CauseLV_template* p_implied_template);
RP__CauseLV_template(Dynamic_Match_Interface<RP__CauseLV>* p_dyn_match);
RP__CauseLV_template(const RP__CauseLV_template& other_value);
~RP__CauseLV_template();
RP__CauseLV_template& operator=(template_sel other_value);
RP__CauseLV_template& operator=(const RP__CauseLV& other_value);
RP__CauseLV_template& operator=(const OPTIONAL<RP__CauseLV>& other_value);
RP__CauseLV_template& operator=(const RP__CauseLV_template& other_value);
boolean match(const RP__CauseLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__CauseLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__CauseLV_template& list_item(unsigned int list_index) const;
INTEGER_template& rP__LengthIndicator();
const INTEGER_template& rP__LengthIndicator() const;
RP__CauseV_template& rP__CauseV();
const RP__CauseV_template& rP__CauseV() const;
OCTETSTRING_template& rP__diagnisticField();
const OCTETSTRING_template& rP__diagnisticField() const;
int size_of() const;
void log() const;
void log_match(const RP__CauseLV& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__ERROR__MS__SGSN : public Base_Type {
  BITSTRING field_rP__MTI;
  BITSTRING field_rP__Spare;
  OCTETSTRING field_rP__Message__Reference;
  RP__CauseLV field_rP__CauseLV;
  OPTIONAL< RP__ERROR__User__DataTLV__MS__SGSN > field_rP__User__Data;
public:
  RP__ERROR__MS__SGSN();
  RP__ERROR__MS__SGSN(const BITSTRING& par_rP__MTI,
    const BITSTRING& par_rP__Spare,
    const OCTETSTRING& par_rP__Message__Reference,
    const RP__CauseLV& par_rP__CauseLV,
    const OPTIONAL< RP__ERROR__User__DataTLV__MS__SGSN >& par_rP__User__Data);
  RP__ERROR__MS__SGSN(const RP__ERROR__MS__SGSN& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__ERROR__MS__SGSN& operator=(const RP__ERROR__MS__SGSN& other_value);
  boolean operator==(const RP__ERROR__MS__SGSN& other_value) const;
  inline boolean operator!=(const RP__ERROR__MS__SGSN& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rP__MTI()
    {return field_rP__MTI;}
  inline const BITSTRING& rP__MTI() const
    {return field_rP__MTI;}
  inline BITSTRING& rP__Spare()
    {return field_rP__Spare;}
  inline const BITSTRING& rP__Spare() const
    {return field_rP__Spare;}
  inline OCTETSTRING& rP__Message__Reference()
    {return field_rP__Message__Reference;}
  inline const OCTETSTRING& rP__Message__Reference() const
    {return field_rP__Message__Reference;}
  inline RP__CauseLV& rP__CauseLV()
    {return field_rP__CauseLV;}
  inline const RP__CauseLV& rP__CauseLV() const
    {return field_rP__CauseLV;}
  inline OPTIONAL< RP__ERROR__User__DataTLV__MS__SGSN >& rP__User__Data()
    {return field_rP__User__Data;}
  inline const OPTIONAL< RP__ERROR__User__DataTLV__MS__SGSN >& rP__User__Data() const
    {return field_rP__User__Data;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__ERROR__MS__SGSN_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__ERROR__MS__SGSN_template *list_value;
} value_list;
struct {
RP__ERROR__MS__SGSN_template* precondition;
RP__ERROR__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<RP__ERROR__MS__SGSN>* dyn_match;
};

void set_specific();
void copy_value(const RP__ERROR__MS__SGSN& other_value);
void copy_template(const RP__ERROR__MS__SGSN_template& other_value);

public:
RP__ERROR__MS__SGSN_template();
RP__ERROR__MS__SGSN_template(template_sel other_value);
RP__ERROR__MS__SGSN_template(const RP__ERROR__MS__SGSN& other_value);
RP__ERROR__MS__SGSN_template(const OPTIONAL<RP__ERROR__MS__SGSN>& other_value);
RP__ERROR__MS__SGSN_template(RP__ERROR__MS__SGSN_template* p_precondition, RP__ERROR__MS__SGSN_template* p_implied_template);
RP__ERROR__MS__SGSN_template(Dynamic_Match_Interface<RP__ERROR__MS__SGSN>* p_dyn_match);
RP__ERROR__MS__SGSN_template(const RP__ERROR__MS__SGSN_template& other_value);
~RP__ERROR__MS__SGSN_template();
RP__ERROR__MS__SGSN_template& operator=(template_sel other_value);
RP__ERROR__MS__SGSN_template& operator=(const RP__ERROR__MS__SGSN& other_value);
RP__ERROR__MS__SGSN_template& operator=(const OPTIONAL<RP__ERROR__MS__SGSN>& other_value);
RP__ERROR__MS__SGSN_template& operator=(const RP__ERROR__MS__SGSN_template& other_value);
boolean match(const RP__ERROR__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__ERROR__MS__SGSN valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__ERROR__MS__SGSN_template& list_item(unsigned int list_index) const;
BITSTRING_template& rP__MTI();
const BITSTRING_template& rP__MTI() const;
BITSTRING_template& rP__Spare();
const BITSTRING_template& rP__Spare() const;
OCTETSTRING_template& rP__Message__Reference();
const OCTETSTRING_template& rP__Message__Reference() const;
RP__CauseLV_template& rP__CauseLV();
const RP__CauseLV_template& rP__CauseLV() const;
RP__ERROR__User__DataTLV__MS__SGSN_template& rP__User__Data();
const RP__ERROR__User__DataTLV__MS__SGSN_template& rP__User__Data() const;
int size_of() const;
void log() const;
void log_match(const RP__ERROR__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TPDU__RP__ERROR__MS__SGSN : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_sMS__DELIVER__REPORT = 1 };
private:
union_selection_type union_selection;
union {
SMS__DELIVER__REPORT__in__RP__ERROR *field_sMS__DELIVER__REPORT;
};
void copy_value(const TPDU__RP__ERROR__MS__SGSN& other_value);

public:
TPDU__RP__ERROR__MS__SGSN();
TPDU__RP__ERROR__MS__SGSN(const TPDU__RP__ERROR__MS__SGSN& other_value);
~TPDU__RP__ERROR__MS__SGSN();
TPDU__RP__ERROR__MS__SGSN& operator=(const TPDU__RP__ERROR__MS__SGSN& other_value);
boolean operator==(const TPDU__RP__ERROR__MS__SGSN& other_value) const;
inline boolean operator!=(const TPDU__RP__ERROR__MS__SGSN& other_value) const { return !(*this == other_value); }
SMS__DELIVER__REPORT__in__RP__ERROR& sMS__DELIVER__REPORT();
const SMS__DELIVER__REPORT__in__RP__ERROR& sMS__DELIVER__REPORT() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TPDU__RP__ERROR__MS__SGSN_template : public Base_Template {
union {
struct {
TPDU__RP__ERROR__MS__SGSN::union_selection_type union_selection;
union {
SMS__DELIVER__REPORT__in__RP__ERROR_template *field_sMS__DELIVER__REPORT;
};
} single_value;
struct {
unsigned int n_values;
TPDU__RP__ERROR__MS__SGSN_template *list_value;
} value_list;
struct {
TPDU__RP__ERROR__MS__SGSN_template* precondition;
TPDU__RP__ERROR__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<TPDU__RP__ERROR__MS__SGSN>* dyn_match;
};
void copy_value(const TPDU__RP__ERROR__MS__SGSN& other_value);

void copy_template(const TPDU__RP__ERROR__MS__SGSN_template& other_value);

public:
TPDU__RP__ERROR__MS__SGSN_template();
TPDU__RP__ERROR__MS__SGSN_template(template_sel other_value);
TPDU__RP__ERROR__MS__SGSN_template(const TPDU__RP__ERROR__MS__SGSN& other_value);
TPDU__RP__ERROR__MS__SGSN_template(const OPTIONAL<TPDU__RP__ERROR__MS__SGSN>& other_value);
TPDU__RP__ERROR__MS__SGSN_template(TPDU__RP__ERROR__MS__SGSN_template* p_precondition, TPDU__RP__ERROR__MS__SGSN_template* p_implied_template);
TPDU__RP__ERROR__MS__SGSN_template(Dynamic_Match_Interface<TPDU__RP__ERROR__MS__SGSN>* p_dyn_match);
TPDU__RP__ERROR__MS__SGSN_template(const TPDU__RP__ERROR__MS__SGSN_template& other_value);
~TPDU__RP__ERROR__MS__SGSN_template();
void clean_up();
TPDU__RP__ERROR__MS__SGSN_template& operator=(template_sel other_value);
TPDU__RP__ERROR__MS__SGSN_template& operator=(const TPDU__RP__ERROR__MS__SGSN& other_value);
TPDU__RP__ERROR__MS__SGSN_template& operator=(const OPTIONAL<TPDU__RP__ERROR__MS__SGSN>& other_value);
TPDU__RP__ERROR__MS__SGSN_template& operator=(const TPDU__RP__ERROR__MS__SGSN_template& other_value);
boolean match(const TPDU__RP__ERROR__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_value() const;TPDU__RP__ERROR__MS__SGSN valueof() const;
TPDU__RP__ERROR__MS__SGSN_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__DELIVER__REPORT__in__RP__ERROR_template& sMS__DELIVER__REPORT();
const SMS__DELIVER__REPORT__in__RP__ERROR_template& sMS__DELIVER__REPORT() const;
boolean ischosen(TPDU__RP__ERROR__MS__SGSN::union_selection_type checked_selection) const;
void log() const;
void log_match(const TPDU__RP__ERROR__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class SMS__DELIVER__REPORT__in__RP__ERROR : public Base_Type {
  BITSTRING field_tP__MTI;
  BITSTRING field_tP__Spare1;
  BITSTRING field_tP__UDHI;
  BITSTRING field_tP__Spare2;
  OCTETSTRING field_tP__FCS;
  BITSTRING field_tP__PresenceBitTP__PID;
  BITSTRING field_tP__PresenceBitTP__DCS;
  BITSTRING field_tP__PresenceBitTP__UDL;
  BITSTRING field_tP__Reserved;
  BITSTRING field_tP__ExtensionBit;
  OPTIONAL< OCTETSTRING > field_tP__PID;
  OPTIONAL< OCTETSTRING > field_tP__DCS;
  OPTIONAL< TP__UDL__UD > field_tP__UDL__UD;
public:
  SMS__DELIVER__REPORT__in__RP__ERROR();
  SMS__DELIVER__REPORT__in__RP__ERROR(const BITSTRING& par_tP__MTI,
    const BITSTRING& par_tP__Spare1,
    const BITSTRING& par_tP__UDHI,
    const BITSTRING& par_tP__Spare2,
    const OCTETSTRING& par_tP__FCS,
    const BITSTRING& par_tP__PresenceBitTP__PID,
    const BITSTRING& par_tP__PresenceBitTP__DCS,
    const BITSTRING& par_tP__PresenceBitTP__UDL,
    const BITSTRING& par_tP__Reserved,
    const BITSTRING& par_tP__ExtensionBit,
    const OPTIONAL< OCTETSTRING >& par_tP__PID,
    const OPTIONAL< OCTETSTRING >& par_tP__DCS,
    const OPTIONAL< TP__UDL__UD >& par_tP__UDL__UD);
  SMS__DELIVER__REPORT__in__RP__ERROR(const SMS__DELIVER__REPORT__in__RP__ERROR& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SMS__DELIVER__REPORT__in__RP__ERROR& operator=(const SMS__DELIVER__REPORT__in__RP__ERROR& other_value);
  boolean operator==(const SMS__DELIVER__REPORT__in__RP__ERROR& other_value) const;
  inline boolean operator!=(const SMS__DELIVER__REPORT__in__RP__ERROR& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& tP__MTI()
    {return field_tP__MTI;}
  inline const BITSTRING& tP__MTI() const
    {return field_tP__MTI;}
  inline BITSTRING& tP__Spare1()
    {return field_tP__Spare1;}
  inline const BITSTRING& tP__Spare1() const
    {return field_tP__Spare1;}
  inline BITSTRING& tP__UDHI()
    {return field_tP__UDHI;}
  inline const BITSTRING& tP__UDHI() const
    {return field_tP__UDHI;}
  inline BITSTRING& tP__Spare2()
    {return field_tP__Spare2;}
  inline const BITSTRING& tP__Spare2() const
    {return field_tP__Spare2;}
  inline OCTETSTRING& tP__FCS()
    {return field_tP__FCS;}
  inline const OCTETSTRING& tP__FCS() const
    {return field_tP__FCS;}
  inline BITSTRING& tP__PresenceBitTP__PID()
    {return field_tP__PresenceBitTP__PID;}
  inline const BITSTRING& tP__PresenceBitTP__PID() const
    {return field_tP__PresenceBitTP__PID;}
  inline BITSTRING& tP__PresenceBitTP__DCS()
    {return field_tP__PresenceBitTP__DCS;}
  inline const BITSTRING& tP__PresenceBitTP__DCS() const
    {return field_tP__PresenceBitTP__DCS;}
  inline BITSTRING& tP__PresenceBitTP__UDL()
    {return field_tP__PresenceBitTP__UDL;}
  inline const BITSTRING& tP__PresenceBitTP__UDL() const
    {return field_tP__PresenceBitTP__UDL;}
  inline BITSTRING& tP__Reserved()
    {return field_tP__Reserved;}
  inline const BITSTRING& tP__Reserved() const
    {return field_tP__Reserved;}
  inline BITSTRING& tP__ExtensionBit()
    {return field_tP__ExtensionBit;}
  inline const BITSTRING& tP__ExtensionBit() const
    {return field_tP__ExtensionBit;}
  inline OPTIONAL< OCTETSTRING >& tP__PID()
    {return field_tP__PID;}
  inline const OPTIONAL< OCTETSTRING >& tP__PID() const
    {return field_tP__PID;}
  inline OPTIONAL< OCTETSTRING >& tP__DCS()
    {return field_tP__DCS;}
  inline const OPTIONAL< OCTETSTRING >& tP__DCS() const
    {return field_tP__DCS;}
  inline OPTIONAL< TP__UDL__UD >& tP__UDL__UD()
    {return field_tP__UDL__UD;}
  inline const OPTIONAL< TP__UDL__UD >& tP__UDL__UD() const
    {return field_tP__UDL__UD;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class SMS__DELIVER__REPORT__in__RP__ERROR_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SMS__DELIVER__REPORT__in__RP__ERROR_template *list_value;
} value_list;
struct {
SMS__DELIVER__REPORT__in__RP__ERROR_template* precondition;
SMS__DELIVER__REPORT__in__RP__ERROR_template* implied_template;
} implication_;
dynmatch_struct<SMS__DELIVER__REPORT__in__RP__ERROR>* dyn_match;
};

void set_specific();
void copy_value(const SMS__DELIVER__REPORT__in__RP__ERROR& other_value);
void copy_template(const SMS__DELIVER__REPORT__in__RP__ERROR_template& other_value);

public:
SMS__DELIVER__REPORT__in__RP__ERROR_template();
SMS__DELIVER__REPORT__in__RP__ERROR_template(template_sel other_value);
SMS__DELIVER__REPORT__in__RP__ERROR_template(const SMS__DELIVER__REPORT__in__RP__ERROR& other_value);
SMS__DELIVER__REPORT__in__RP__ERROR_template(const OPTIONAL<SMS__DELIVER__REPORT__in__RP__ERROR>& other_value);
SMS__DELIVER__REPORT__in__RP__ERROR_template(SMS__DELIVER__REPORT__in__RP__ERROR_template* p_precondition, SMS__DELIVER__REPORT__in__RP__ERROR_template* p_implied_template);
SMS__DELIVER__REPORT__in__RP__ERROR_template(Dynamic_Match_Interface<SMS__DELIVER__REPORT__in__RP__ERROR>* p_dyn_match);
SMS__DELIVER__REPORT__in__RP__ERROR_template(const SMS__DELIVER__REPORT__in__RP__ERROR_template& other_value);
~SMS__DELIVER__REPORT__in__RP__ERROR_template();
SMS__DELIVER__REPORT__in__RP__ERROR_template& operator=(template_sel other_value);
SMS__DELIVER__REPORT__in__RP__ERROR_template& operator=(const SMS__DELIVER__REPORT__in__RP__ERROR& other_value);
SMS__DELIVER__REPORT__in__RP__ERROR_template& operator=(const OPTIONAL<SMS__DELIVER__REPORT__in__RP__ERROR>& other_value);
SMS__DELIVER__REPORT__in__RP__ERROR_template& operator=(const SMS__DELIVER__REPORT__in__RP__ERROR_template& other_value);
boolean match(const SMS__DELIVER__REPORT__in__RP__ERROR& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SMS__DELIVER__REPORT__in__RP__ERROR valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__DELIVER__REPORT__in__RP__ERROR_template& list_item(unsigned int list_index) const;
BITSTRING_template& tP__MTI();
const BITSTRING_template& tP__MTI() const;
BITSTRING_template& tP__Spare1();
const BITSTRING_template& tP__Spare1() const;
BITSTRING_template& tP__UDHI();
const BITSTRING_template& tP__UDHI() const;
BITSTRING_template& tP__Spare2();
const BITSTRING_template& tP__Spare2() const;
OCTETSTRING_template& tP__FCS();
const OCTETSTRING_template& tP__FCS() const;
BITSTRING_template& tP__PresenceBitTP__PID();
const BITSTRING_template& tP__PresenceBitTP__PID() const;
BITSTRING_template& tP__PresenceBitTP__DCS();
const BITSTRING_template& tP__PresenceBitTP__DCS() const;
BITSTRING_template& tP__PresenceBitTP__UDL();
const BITSTRING_template& tP__PresenceBitTP__UDL() const;
BITSTRING_template& tP__Reserved();
const BITSTRING_template& tP__Reserved() const;
BITSTRING_template& tP__ExtensionBit();
const BITSTRING_template& tP__ExtensionBit() const;
OCTETSTRING_template& tP__PID();
const OCTETSTRING_template& tP__PID() const;
OCTETSTRING_template& tP__DCS();
const OCTETSTRING_template& tP__DCS() const;
TP__UDL__UD_template& tP__UDL__UD();
const TP__UDL__UD_template& tP__UDL__UD() const;
int size_of() const;
void log() const;
void log_match(const SMS__DELIVER__REPORT__in__RP__ERROR& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__ERROR__User__DataTLV__MS__SGSN : public Base_Type {
  BITSTRING field_rP__Spare;
  BITSTRING field_rP__UserDataIEI;
  INTEGER field_rP__LengthIndicator;
  TPDU__RP__ERROR__MS__SGSN field_rP__TPDU;
public:
  RP__ERROR__User__DataTLV__MS__SGSN();
  RP__ERROR__User__DataTLV__MS__SGSN(const BITSTRING& par_rP__Spare,
    const BITSTRING& par_rP__UserDataIEI,
    const INTEGER& par_rP__LengthIndicator,
    const TPDU__RP__ERROR__MS__SGSN& par_rP__TPDU);
  RP__ERROR__User__DataTLV__MS__SGSN(const RP__ERROR__User__DataTLV__MS__SGSN& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__ERROR__User__DataTLV__MS__SGSN& operator=(const RP__ERROR__User__DataTLV__MS__SGSN& other_value);
  boolean operator==(const RP__ERROR__User__DataTLV__MS__SGSN& other_value) const;
  inline boolean operator!=(const RP__ERROR__User__DataTLV__MS__SGSN& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rP__Spare()
    {return field_rP__Spare;}
  inline const BITSTRING& rP__Spare() const
    {return field_rP__Spare;}
  inline BITSTRING& rP__UserDataIEI()
    {return field_rP__UserDataIEI;}
  inline const BITSTRING& rP__UserDataIEI() const
    {return field_rP__UserDataIEI;}
  inline INTEGER& rP__LengthIndicator()
    {return field_rP__LengthIndicator;}
  inline const INTEGER& rP__LengthIndicator() const
    {return field_rP__LengthIndicator;}
  inline TPDU__RP__ERROR__MS__SGSN& rP__TPDU()
    {return field_rP__TPDU;}
  inline const TPDU__RP__ERROR__MS__SGSN& rP__TPDU() const
    {return field_rP__TPDU;}
  inline int size_of() const
    {return 4;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__ERROR__User__DataTLV__MS__SGSN_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__ERROR__User__DataTLV__MS__SGSN_template *list_value;
} value_list;
struct {
RP__ERROR__User__DataTLV__MS__SGSN_template* precondition;
RP__ERROR__User__DataTLV__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<RP__ERROR__User__DataTLV__MS__SGSN>* dyn_match;
};

void set_specific();
void copy_value(const RP__ERROR__User__DataTLV__MS__SGSN& other_value);
void copy_template(const RP__ERROR__User__DataTLV__MS__SGSN_template& other_value);

public:
RP__ERROR__User__DataTLV__MS__SGSN_template();
RP__ERROR__User__DataTLV__MS__SGSN_template(template_sel other_value);
RP__ERROR__User__DataTLV__MS__SGSN_template(const RP__ERROR__User__DataTLV__MS__SGSN& other_value);
RP__ERROR__User__DataTLV__MS__SGSN_template(const OPTIONAL<RP__ERROR__User__DataTLV__MS__SGSN>& other_value);
RP__ERROR__User__DataTLV__MS__SGSN_template(RP__ERROR__User__DataTLV__MS__SGSN_template* p_precondition, RP__ERROR__User__DataTLV__MS__SGSN_template* p_implied_template);
RP__ERROR__User__DataTLV__MS__SGSN_template(Dynamic_Match_Interface<RP__ERROR__User__DataTLV__MS__SGSN>* p_dyn_match);
RP__ERROR__User__DataTLV__MS__SGSN_template(const RP__ERROR__User__DataTLV__MS__SGSN_template& other_value);
~RP__ERROR__User__DataTLV__MS__SGSN_template();
RP__ERROR__User__DataTLV__MS__SGSN_template& operator=(template_sel other_value);
RP__ERROR__User__DataTLV__MS__SGSN_template& operator=(const RP__ERROR__User__DataTLV__MS__SGSN& other_value);
RP__ERROR__User__DataTLV__MS__SGSN_template& operator=(const OPTIONAL<RP__ERROR__User__DataTLV__MS__SGSN>& other_value);
RP__ERROR__User__DataTLV__MS__SGSN_template& operator=(const RP__ERROR__User__DataTLV__MS__SGSN_template& other_value);
boolean match(const RP__ERROR__User__DataTLV__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__ERROR__User__DataTLV__MS__SGSN valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__ERROR__User__DataTLV__MS__SGSN_template& list_item(unsigned int list_index) const;
BITSTRING_template& rP__Spare();
const BITSTRING_template& rP__Spare() const;
BITSTRING_template& rP__UserDataIEI();
const BITSTRING_template& rP__UserDataIEI() const;
INTEGER_template& rP__LengthIndicator();
const INTEGER_template& rP__LengthIndicator() const;
TPDU__RP__ERROR__MS__SGSN_template& rP__TPDU();
const TPDU__RP__ERROR__MS__SGSN_template& rP__TPDU() const;
int size_of() const;
void log() const;
void log_match(const RP__ERROR__User__DataTLV__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__SMMA : public Base_Type {
  BITSTRING field_rP__MTI;
  BITSTRING field_rP__Spare;
  OCTETSTRING field_rP__MessageReference;
public:
  RP__SMMA();
  RP__SMMA(const BITSTRING& par_rP__MTI,
    const BITSTRING& par_rP__Spare,
    const OCTETSTRING& par_rP__MessageReference);
  RP__SMMA(const RP__SMMA& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__SMMA& operator=(const RP__SMMA& other_value);
  boolean operator==(const RP__SMMA& other_value) const;
  inline boolean operator!=(const RP__SMMA& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rP__MTI()
    {return field_rP__MTI;}
  inline const BITSTRING& rP__MTI() const
    {return field_rP__MTI;}
  inline BITSTRING& rP__Spare()
    {return field_rP__Spare;}
  inline const BITSTRING& rP__Spare() const
    {return field_rP__Spare;}
  inline OCTETSTRING& rP__MessageReference()
    {return field_rP__MessageReference;}
  inline const OCTETSTRING& rP__MessageReference() const
    {return field_rP__MessageReference;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__SMMA_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__SMMA_template *list_value;
} value_list;
struct {
RP__SMMA_template* precondition;
RP__SMMA_template* implied_template;
} implication_;
dynmatch_struct<RP__SMMA>* dyn_match;
};

void set_specific();
void copy_value(const RP__SMMA& other_value);
void copy_template(const RP__SMMA_template& other_value);

public:
RP__SMMA_template();
RP__SMMA_template(template_sel other_value);
RP__SMMA_template(const RP__SMMA& other_value);
RP__SMMA_template(const OPTIONAL<RP__SMMA>& other_value);
RP__SMMA_template(RP__SMMA_template* p_precondition, RP__SMMA_template* p_implied_template);
RP__SMMA_template(Dynamic_Match_Interface<RP__SMMA>* p_dyn_match);
RP__SMMA_template(const RP__SMMA_template& other_value);
~RP__SMMA_template();
RP__SMMA_template& operator=(template_sel other_value);
RP__SMMA_template& operator=(const RP__SMMA& other_value);
RP__SMMA_template& operator=(const OPTIONAL<RP__SMMA>& other_value);
RP__SMMA_template& operator=(const RP__SMMA_template& other_value);
boolean match(const RP__SMMA& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__SMMA valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__SMMA_template& list_item(unsigned int list_index) const;
BITSTRING_template& rP__MTI();
const BITSTRING_template& rP__MTI() const;
BITSTRING_template& rP__Spare();
const BITSTRING_template& rP__Spare() const;
OCTETSTRING_template& rP__MessageReference();
const OCTETSTRING_template& rP__MessageReference() const;
int size_of() const;
void log() const;
void log_match(const RP__SMMA& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class CP__User__DataLV__MS__SGSN : public Base_Type {
  INTEGER field_lengthIndicator;
  RPDU__MS__SGSN field_cP__RPDU;
public:
  CP__User__DataLV__MS__SGSN();
  CP__User__DataLV__MS__SGSN(const INTEGER& par_lengthIndicator,
    const RPDU__MS__SGSN& par_cP__RPDU);
  CP__User__DataLV__MS__SGSN(const CP__User__DataLV__MS__SGSN& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CP__User__DataLV__MS__SGSN& operator=(const CP__User__DataLV__MS__SGSN& other_value);
  boolean operator==(const CP__User__DataLV__MS__SGSN& other_value) const;
  inline boolean operator!=(const CP__User__DataLV__MS__SGSN& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline RPDU__MS__SGSN& cP__RPDU()
    {return field_cP__RPDU;}
  inline const RPDU__MS__SGSN& cP__RPDU() const
    {return field_cP__RPDU;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class CP__User__DataLV__MS__SGSN_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CP__User__DataLV__MS__SGSN_template *list_value;
} value_list;
struct {
CP__User__DataLV__MS__SGSN_template* precondition;
CP__User__DataLV__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<CP__User__DataLV__MS__SGSN>* dyn_match;
};

void set_specific();
void copy_value(const CP__User__DataLV__MS__SGSN& other_value);
void copy_template(const CP__User__DataLV__MS__SGSN_template& other_value);

public:
CP__User__DataLV__MS__SGSN_template();
CP__User__DataLV__MS__SGSN_template(template_sel other_value);
CP__User__DataLV__MS__SGSN_template(const CP__User__DataLV__MS__SGSN& other_value);
CP__User__DataLV__MS__SGSN_template(const OPTIONAL<CP__User__DataLV__MS__SGSN>& other_value);
CP__User__DataLV__MS__SGSN_template(CP__User__DataLV__MS__SGSN_template* p_precondition, CP__User__DataLV__MS__SGSN_template* p_implied_template);
CP__User__DataLV__MS__SGSN_template(Dynamic_Match_Interface<CP__User__DataLV__MS__SGSN>* p_dyn_match);
CP__User__DataLV__MS__SGSN_template(const CP__User__DataLV__MS__SGSN_template& other_value);
~CP__User__DataLV__MS__SGSN_template();
CP__User__DataLV__MS__SGSN_template& operator=(template_sel other_value);
CP__User__DataLV__MS__SGSN_template& operator=(const CP__User__DataLV__MS__SGSN& other_value);
CP__User__DataLV__MS__SGSN_template& operator=(const OPTIONAL<CP__User__DataLV__MS__SGSN>& other_value);
CP__User__DataLV__MS__SGSN_template& operator=(const CP__User__DataLV__MS__SGSN_template& other_value);
boolean match(const CP__User__DataLV__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CP__User__DataLV__MS__SGSN valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CP__User__DataLV__MS__SGSN_template& list_item(unsigned int list_index) const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
RPDU__MS__SGSN_template& cP__RPDU();
const RPDU__MS__SGSN_template& cP__RPDU() const;
int size_of() const;
void log() const;
void log_match(const CP__User__DataLV__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class CP__DATA__MS__SGSN : public Base_Type {
  BITSTRING field_cP__messageType;
  CP__User__DataLV__MS__SGSN field_cP__User__Data;
public:
  CP__DATA__MS__SGSN();
  CP__DATA__MS__SGSN(const BITSTRING& par_cP__messageType,
    const CP__User__DataLV__MS__SGSN& par_cP__User__Data);
  CP__DATA__MS__SGSN(const CP__DATA__MS__SGSN& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CP__DATA__MS__SGSN& operator=(const CP__DATA__MS__SGSN& other_value);
  boolean operator==(const CP__DATA__MS__SGSN& other_value) const;
  inline boolean operator!=(const CP__DATA__MS__SGSN& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& cP__messageType()
    {return field_cP__messageType;}
  inline const BITSTRING& cP__messageType() const
    {return field_cP__messageType;}
  inline CP__User__DataLV__MS__SGSN& cP__User__Data()
    {return field_cP__User__Data;}
  inline const CP__User__DataLV__MS__SGSN& cP__User__Data() const
    {return field_cP__User__Data;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class CP__DATA__MS__SGSN_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CP__DATA__MS__SGSN_template *list_value;
} value_list;
struct {
CP__DATA__MS__SGSN_template* precondition;
CP__DATA__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<CP__DATA__MS__SGSN>* dyn_match;
};

void set_specific();
void copy_value(const CP__DATA__MS__SGSN& other_value);
void copy_template(const CP__DATA__MS__SGSN_template& other_value);

public:
CP__DATA__MS__SGSN_template();
CP__DATA__MS__SGSN_template(template_sel other_value);
CP__DATA__MS__SGSN_template(const CP__DATA__MS__SGSN& other_value);
CP__DATA__MS__SGSN_template(const OPTIONAL<CP__DATA__MS__SGSN>& other_value);
CP__DATA__MS__SGSN_template(CP__DATA__MS__SGSN_template* p_precondition, CP__DATA__MS__SGSN_template* p_implied_template);
CP__DATA__MS__SGSN_template(Dynamic_Match_Interface<CP__DATA__MS__SGSN>* p_dyn_match);
CP__DATA__MS__SGSN_template(const CP__DATA__MS__SGSN_template& other_value);
~CP__DATA__MS__SGSN_template();
CP__DATA__MS__SGSN_template& operator=(template_sel other_value);
CP__DATA__MS__SGSN_template& operator=(const CP__DATA__MS__SGSN& other_value);
CP__DATA__MS__SGSN_template& operator=(const OPTIONAL<CP__DATA__MS__SGSN>& other_value);
CP__DATA__MS__SGSN_template& operator=(const CP__DATA__MS__SGSN_template& other_value);
boolean match(const CP__DATA__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CP__DATA__MS__SGSN valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CP__DATA__MS__SGSN_template& list_item(unsigned int list_index) const;
BITSTRING_template& cP__messageType();
const BITSTRING_template& cP__messageType() const;
CP__User__DataLV__MS__SGSN_template& cP__User__Data();
const CP__User__DataLV__MS__SGSN_template& cP__User__Data() const;
int size_of() const;
void log() const;
void log_match(const CP__DATA__MS__SGSN& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class CP__ACK : public Base_Type {
  BITSTRING field_cP__messageType;
public:
  CP__ACK();
  CP__ACK(const BITSTRING& par_cP__messageType);
  CP__ACK(const CP__ACK& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CP__ACK& operator=(const CP__ACK& other_value);
  boolean operator==(const CP__ACK& other_value) const;
  inline boolean operator!=(const CP__ACK& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& cP__messageType()
    {return field_cP__messageType;}
  inline const BITSTRING& cP__messageType() const
    {return field_cP__messageType;}
  inline int size_of() const
    {return 1;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class CP__ACK_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CP__ACK_template *list_value;
} value_list;
struct {
CP__ACK_template* precondition;
CP__ACK_template* implied_template;
} implication_;
dynmatch_struct<CP__ACK>* dyn_match;
};

void set_specific();
void copy_value(const CP__ACK& other_value);
void copy_template(const CP__ACK_template& other_value);

public:
CP__ACK_template();
CP__ACK_template(template_sel other_value);
CP__ACK_template(const CP__ACK& other_value);
CP__ACK_template(const OPTIONAL<CP__ACK>& other_value);
CP__ACK_template(CP__ACK_template* p_precondition, CP__ACK_template* p_implied_template);
CP__ACK_template(Dynamic_Match_Interface<CP__ACK>* p_dyn_match);
CP__ACK_template(const CP__ACK_template& other_value);
~CP__ACK_template();
CP__ACK_template& operator=(template_sel other_value);
CP__ACK_template& operator=(const CP__ACK& other_value);
CP__ACK_template& operator=(const OPTIONAL<CP__ACK>& other_value);
CP__ACK_template& operator=(const CP__ACK_template& other_value);
boolean match(const CP__ACK& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CP__ACK valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CP__ACK_template& list_item(unsigned int list_index) const;
BITSTRING_template& cP__messageType();
const BITSTRING_template& cP__messageType() const;
int size_of() const;
void log() const;
void log_match(const CP__ACK& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class CP__CauseV : public Base_Type {
  OCTETSTRING field_causeValue;
public:
  CP__CauseV();
  CP__CauseV(const OCTETSTRING& par_causeValue);
  CP__CauseV(const CP__CauseV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CP__CauseV& operator=(const CP__CauseV& other_value);
  boolean operator==(const CP__CauseV& other_value) const;
  inline boolean operator!=(const CP__CauseV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& causeValue()
    {return field_causeValue;}
  inline const OCTETSTRING& causeValue() const
    {return field_causeValue;}
  inline int size_of() const
    {return 1;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class CP__CauseV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CP__CauseV_template *list_value;
} value_list;
struct {
CP__CauseV_template* precondition;
CP__CauseV_template* implied_template;
} implication_;
dynmatch_struct<CP__CauseV>* dyn_match;
};

void set_specific();
void copy_value(const CP__CauseV& other_value);
void copy_template(const CP__CauseV_template& other_value);

public:
CP__CauseV_template();
CP__CauseV_template(template_sel other_value);
CP__CauseV_template(const CP__CauseV& other_value);
CP__CauseV_template(const OPTIONAL<CP__CauseV>& other_value);
CP__CauseV_template(CP__CauseV_template* p_precondition, CP__CauseV_template* p_implied_template);
CP__CauseV_template(Dynamic_Match_Interface<CP__CauseV>* p_dyn_match);
CP__CauseV_template(const CP__CauseV_template& other_value);
~CP__CauseV_template();
CP__CauseV_template& operator=(template_sel other_value);
CP__CauseV_template& operator=(const CP__CauseV& other_value);
CP__CauseV_template& operator=(const OPTIONAL<CP__CauseV>& other_value);
CP__CauseV_template& operator=(const CP__CauseV_template& other_value);
boolean match(const CP__CauseV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CP__CauseV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CP__CauseV_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& causeValue();
const OCTETSTRING_template& causeValue() const;
int size_of() const;
void log() const;
void log_match(const CP__CauseV& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class CP__ERROR : public Base_Type {
  BITSTRING field_cP__messageType;
  CP__CauseV field_cP__Cause;
public:
  CP__ERROR();
  CP__ERROR(const BITSTRING& par_cP__messageType,
    const CP__CauseV& par_cP__Cause);
  CP__ERROR(const CP__ERROR& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CP__ERROR& operator=(const CP__ERROR& other_value);
  boolean operator==(const CP__ERROR& other_value) const;
  inline boolean operator!=(const CP__ERROR& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& cP__messageType()
    {return field_cP__messageType;}
  inline const BITSTRING& cP__messageType() const
    {return field_cP__messageType;}
  inline CP__CauseV& cP__Cause()
    {return field_cP__Cause;}
  inline const CP__CauseV& cP__Cause() const
    {return field_cP__Cause;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class CP__ERROR_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CP__ERROR_template *list_value;
} value_list;
struct {
CP__ERROR_template* precondition;
CP__ERROR_template* implied_template;
} implication_;
dynmatch_struct<CP__ERROR>* dyn_match;
};

void set_specific();
void copy_value(const CP__ERROR& other_value);
void copy_template(const CP__ERROR_template& other_value);

public:
CP__ERROR_template();
CP__ERROR_template(template_sel other_value);
CP__ERROR_template(const CP__ERROR& other_value);
CP__ERROR_template(const OPTIONAL<CP__ERROR>& other_value);
CP__ERROR_template(CP__ERROR_template* p_precondition, CP__ERROR_template* p_implied_template);
CP__ERROR_template(Dynamic_Match_Interface<CP__ERROR>* p_dyn_match);
CP__ERROR_template(const CP__ERROR_template& other_value);
~CP__ERROR_template();
CP__ERROR_template& operator=(template_sel other_value);
CP__ERROR_template& operator=(const CP__ERROR& other_value);
CP__ERROR_template& operator=(const OPTIONAL<CP__ERROR>& other_value);
CP__ERROR_template& operator=(const CP__ERROR_template& other_value);
boolean match(const CP__ERROR& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CP__ERROR valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CP__ERROR_template& list_item(unsigned int list_index) const;
BITSTRING_template& cP__messageType();
const BITSTRING_template& cP__messageType() const;
CP__CauseV_template& cP__Cause();
const CP__CauseV_template& cP__Cause() const;
int size_of() const;
void log() const;
void log_match(const CP__ERROR& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class L3__SMS__SGSN__MS : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_cP__DATA = 1, ALT_cP__ACK = 2, ALT_cP__ERROR = 3 };
private:
union_selection_type union_selection;
union {
CP__DATA__SGSN__MS *field_cP__DATA;
CP__ACK *field_cP__ACK;
CP__ERROR *field_cP__ERROR;
};
void copy_value(const L3__SMS__SGSN__MS& other_value);

public:
L3__SMS__SGSN__MS();
L3__SMS__SGSN__MS(const L3__SMS__SGSN__MS& other_value);
~L3__SMS__SGSN__MS();
L3__SMS__SGSN__MS& operator=(const L3__SMS__SGSN__MS& other_value);
boolean operator==(const L3__SMS__SGSN__MS& other_value) const;
inline boolean operator!=(const L3__SMS__SGSN__MS& other_value) const { return !(*this == other_value); }
CP__DATA__SGSN__MS& cP__DATA();
const CP__DATA__SGSN__MS& cP__DATA() const;
CP__ACK& cP__ACK();
const CP__ACK& cP__ACK() const;
CP__ERROR& cP__ERROR();
const CP__ERROR& cP__ERROR() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class L3__SMS__SGSN__MS_template : public Base_Template {
union {
struct {
L3__SMS__SGSN__MS::union_selection_type union_selection;
union {
CP__DATA__SGSN__MS_template *field_cP__DATA;
CP__ACK_template *field_cP__ACK;
CP__ERROR_template *field_cP__ERROR;
};
} single_value;
struct {
unsigned int n_values;
L3__SMS__SGSN__MS_template *list_value;
} value_list;
struct {
L3__SMS__SGSN__MS_template* precondition;
L3__SMS__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<L3__SMS__SGSN__MS>* dyn_match;
};
void copy_value(const L3__SMS__SGSN__MS& other_value);

void copy_template(const L3__SMS__SGSN__MS_template& other_value);

public:
L3__SMS__SGSN__MS_template();
L3__SMS__SGSN__MS_template(template_sel other_value);
L3__SMS__SGSN__MS_template(const L3__SMS__SGSN__MS& other_value);
L3__SMS__SGSN__MS_template(const OPTIONAL<L3__SMS__SGSN__MS>& other_value);
L3__SMS__SGSN__MS_template(L3__SMS__SGSN__MS_template* p_precondition, L3__SMS__SGSN__MS_template* p_implied_template);
L3__SMS__SGSN__MS_template(Dynamic_Match_Interface<L3__SMS__SGSN__MS>* p_dyn_match);
L3__SMS__SGSN__MS_template(const L3__SMS__SGSN__MS_template& other_value);
~L3__SMS__SGSN__MS_template();
void clean_up();
L3__SMS__SGSN__MS_template& operator=(template_sel other_value);
L3__SMS__SGSN__MS_template& operator=(const L3__SMS__SGSN__MS& other_value);
L3__SMS__SGSN__MS_template& operator=(const OPTIONAL<L3__SMS__SGSN__MS>& other_value);
L3__SMS__SGSN__MS_template& operator=(const L3__SMS__SGSN__MS_template& other_value);
boolean match(const L3__SMS__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_value() const;L3__SMS__SGSN__MS valueof() const;
L3__SMS__SGSN__MS_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
CP__DATA__SGSN__MS_template& cP__DATA();
const CP__DATA__SGSN__MS_template& cP__DATA() const;
CP__ACK_template& cP__ACK();
const CP__ACK_template& cP__ACK() const;
CP__ERROR_template& cP__ERROR();
const CP__ERROR_template& cP__ERROR() const;
boolean ischosen(L3__SMS__SGSN__MS::union_selection_type checked_selection) const;
void log() const;
void log_match(const L3__SMS__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class RPDU__SGSN__MS : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_rP__DATA__SGSN__MS = 1, ALT_rP__ACK__SGSN__MS = 2, ALT_rP__ERROR__SGSN__MS = 3, ALT_rP__SMMA = 4 };
private:
union_selection_type union_selection;
union {
RP__DATA__SGSN__MS *field_rP__DATA__SGSN__MS;
RP__ACK__SGSN__MS *field_rP__ACK__SGSN__MS;
RP__ERROR__SGSN__MS *field_rP__ERROR__SGSN__MS;
RP__SMMA *field_rP__SMMA;
};
void copy_value(const RPDU__SGSN__MS& other_value);

public:
RPDU__SGSN__MS();
RPDU__SGSN__MS(const RPDU__SGSN__MS& other_value);
~RPDU__SGSN__MS();
RPDU__SGSN__MS& operator=(const RPDU__SGSN__MS& other_value);
boolean operator==(const RPDU__SGSN__MS& other_value) const;
inline boolean operator!=(const RPDU__SGSN__MS& other_value) const { return !(*this == other_value); }
RP__DATA__SGSN__MS& rP__DATA__SGSN__MS();
const RP__DATA__SGSN__MS& rP__DATA__SGSN__MS() const;
RP__ACK__SGSN__MS& rP__ACK__SGSN__MS();
const RP__ACK__SGSN__MS& rP__ACK__SGSN__MS() const;
RP__ERROR__SGSN__MS& rP__ERROR__SGSN__MS();
const RP__ERROR__SGSN__MS& rP__ERROR__SGSN__MS() const;
RP__SMMA& rP__SMMA();
const RP__SMMA& rP__SMMA() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RPDU__SGSN__MS_template : public Base_Template {
union {
struct {
RPDU__SGSN__MS::union_selection_type union_selection;
union {
RP__DATA__SGSN__MS_template *field_rP__DATA__SGSN__MS;
RP__ACK__SGSN__MS_template *field_rP__ACK__SGSN__MS;
RP__ERROR__SGSN__MS_template *field_rP__ERROR__SGSN__MS;
RP__SMMA_template *field_rP__SMMA;
};
} single_value;
struct {
unsigned int n_values;
RPDU__SGSN__MS_template *list_value;
} value_list;
struct {
RPDU__SGSN__MS_template* precondition;
RPDU__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<RPDU__SGSN__MS>* dyn_match;
};
void copy_value(const RPDU__SGSN__MS& other_value);

void copy_template(const RPDU__SGSN__MS_template& other_value);

public:
RPDU__SGSN__MS_template();
RPDU__SGSN__MS_template(template_sel other_value);
RPDU__SGSN__MS_template(const RPDU__SGSN__MS& other_value);
RPDU__SGSN__MS_template(const OPTIONAL<RPDU__SGSN__MS>& other_value);
RPDU__SGSN__MS_template(RPDU__SGSN__MS_template* p_precondition, RPDU__SGSN__MS_template* p_implied_template);
RPDU__SGSN__MS_template(Dynamic_Match_Interface<RPDU__SGSN__MS>* p_dyn_match);
RPDU__SGSN__MS_template(const RPDU__SGSN__MS_template& other_value);
~RPDU__SGSN__MS_template();
void clean_up();
RPDU__SGSN__MS_template& operator=(template_sel other_value);
RPDU__SGSN__MS_template& operator=(const RPDU__SGSN__MS& other_value);
RPDU__SGSN__MS_template& operator=(const OPTIONAL<RPDU__SGSN__MS>& other_value);
RPDU__SGSN__MS_template& operator=(const RPDU__SGSN__MS_template& other_value);
boolean match(const RPDU__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_value() const;RPDU__SGSN__MS valueof() const;
RPDU__SGSN__MS_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
RP__DATA__SGSN__MS_template& rP__DATA__SGSN__MS();
const RP__DATA__SGSN__MS_template& rP__DATA__SGSN__MS() const;
RP__ACK__SGSN__MS_template& rP__ACK__SGSN__MS();
const RP__ACK__SGSN__MS_template& rP__ACK__SGSN__MS() const;
RP__ERROR__SGSN__MS_template& rP__ERROR__SGSN__MS();
const RP__ERROR__SGSN__MS_template& rP__ERROR__SGSN__MS() const;
RP__SMMA_template& rP__SMMA();
const RP__SMMA_template& rP__SMMA() const;
boolean ischosen(RPDU__SGSN__MS::union_selection_type checked_selection) const;
void log() const;
void log_match(const RPDU__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class TPDU__RP__DATA__SGSN__MS : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_sMS__DELIVER = 1, ALT_sMS__STATUS__REPORT = 2 };
private:
union_selection_type union_selection;
union {
SMS__DELIVER *field_sMS__DELIVER;
SMS__STATUS__REPORT *field_sMS__STATUS__REPORT;
};
void copy_value(const TPDU__RP__DATA__SGSN__MS& other_value);

public:
TPDU__RP__DATA__SGSN__MS();
TPDU__RP__DATA__SGSN__MS(const TPDU__RP__DATA__SGSN__MS& other_value);
~TPDU__RP__DATA__SGSN__MS();
TPDU__RP__DATA__SGSN__MS& operator=(const TPDU__RP__DATA__SGSN__MS& other_value);
boolean operator==(const TPDU__RP__DATA__SGSN__MS& other_value) const;
inline boolean operator!=(const TPDU__RP__DATA__SGSN__MS& other_value) const { return !(*this == other_value); }
SMS__DELIVER& sMS__DELIVER();
const SMS__DELIVER& sMS__DELIVER() const;
SMS__STATUS__REPORT& sMS__STATUS__REPORT();
const SMS__STATUS__REPORT& sMS__STATUS__REPORT() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TPDU__RP__DATA__SGSN__MS_template : public Base_Template {
union {
struct {
TPDU__RP__DATA__SGSN__MS::union_selection_type union_selection;
union {
SMS__DELIVER_template *field_sMS__DELIVER;
SMS__STATUS__REPORT_template *field_sMS__STATUS__REPORT;
};
} single_value;
struct {
unsigned int n_values;
TPDU__RP__DATA__SGSN__MS_template *list_value;
} value_list;
struct {
TPDU__RP__DATA__SGSN__MS_template* precondition;
TPDU__RP__DATA__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<TPDU__RP__DATA__SGSN__MS>* dyn_match;
};
void copy_value(const TPDU__RP__DATA__SGSN__MS& other_value);

void copy_template(const TPDU__RP__DATA__SGSN__MS_template& other_value);

public:
TPDU__RP__DATA__SGSN__MS_template();
TPDU__RP__DATA__SGSN__MS_template(template_sel other_value);
TPDU__RP__DATA__SGSN__MS_template(const TPDU__RP__DATA__SGSN__MS& other_value);
TPDU__RP__DATA__SGSN__MS_template(const OPTIONAL<TPDU__RP__DATA__SGSN__MS>& other_value);
TPDU__RP__DATA__SGSN__MS_template(TPDU__RP__DATA__SGSN__MS_template* p_precondition, TPDU__RP__DATA__SGSN__MS_template* p_implied_template);
TPDU__RP__DATA__SGSN__MS_template(Dynamic_Match_Interface<TPDU__RP__DATA__SGSN__MS>* p_dyn_match);
TPDU__RP__DATA__SGSN__MS_template(const TPDU__RP__DATA__SGSN__MS_template& other_value);
~TPDU__RP__DATA__SGSN__MS_template();
void clean_up();
TPDU__RP__DATA__SGSN__MS_template& operator=(template_sel other_value);
TPDU__RP__DATA__SGSN__MS_template& operator=(const TPDU__RP__DATA__SGSN__MS& other_value);
TPDU__RP__DATA__SGSN__MS_template& operator=(const OPTIONAL<TPDU__RP__DATA__SGSN__MS>& other_value);
TPDU__RP__DATA__SGSN__MS_template& operator=(const TPDU__RP__DATA__SGSN__MS_template& other_value);
boolean match(const TPDU__RP__DATA__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_value() const;TPDU__RP__DATA__SGSN__MS valueof() const;
TPDU__RP__DATA__SGSN__MS_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__DELIVER_template& sMS__DELIVER();
const SMS__DELIVER_template& sMS__DELIVER() const;
SMS__STATUS__REPORT_template& sMS__STATUS__REPORT();
const SMS__STATUS__REPORT_template& sMS__STATUS__REPORT() const;
boolean ischosen(TPDU__RP__DATA__SGSN__MS::union_selection_type checked_selection) const;
void log() const;
void log_match(const TPDU__RP__DATA__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class TP__OA__NoPad : public Base_Type {
  INTEGER field_tP__LengthIndicator;
  BITSTRING field_tP__NumberingPlanID;
  BITSTRING field_tP__TypeOfNumber;
  BITSTRING field_tp__Spare;
  HEXSTRING field_tP__OAValue;
public:
  TP__OA__NoPad();
  TP__OA__NoPad(const INTEGER& par_tP__LengthIndicator,
    const BITSTRING& par_tP__NumberingPlanID,
    const BITSTRING& par_tP__TypeOfNumber,
    const BITSTRING& par_tp__Spare,
    const HEXSTRING& par_tP__OAValue);
  TP__OA__NoPad(const TP__OA__NoPad& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  TP__OA__NoPad& operator=(const TP__OA__NoPad& other_value);
  boolean operator==(const TP__OA__NoPad& other_value) const;
  inline boolean operator!=(const TP__OA__NoPad& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& tP__LengthIndicator()
    {return field_tP__LengthIndicator;}
  inline const INTEGER& tP__LengthIndicator() const
    {return field_tP__LengthIndicator;}
  inline BITSTRING& tP__NumberingPlanID()
    {return field_tP__NumberingPlanID;}
  inline const BITSTRING& tP__NumberingPlanID() const
    {return field_tP__NumberingPlanID;}
  inline BITSTRING& tP__TypeOfNumber()
    {return field_tP__TypeOfNumber;}
  inline const BITSTRING& tP__TypeOfNumber() const
    {return field_tP__TypeOfNumber;}
  inline BITSTRING& tp__Spare()
    {return field_tp__Spare;}
  inline const BITSTRING& tp__Spare() const
    {return field_tp__Spare;}
  inline HEXSTRING& tP__OAValue()
    {return field_tP__OAValue;}
  inline const HEXSTRING& tP__OAValue() const
    {return field_tP__OAValue;}
  inline int size_of() const
    {return 5;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TP__OA__NoPad_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
TP__OA__NoPad_template *list_value;
} value_list;
struct {
TP__OA__NoPad_template* precondition;
TP__OA__NoPad_template* implied_template;
} implication_;
dynmatch_struct<TP__OA__NoPad>* dyn_match;
};

void set_specific();
void copy_value(const TP__OA__NoPad& other_value);
void copy_template(const TP__OA__NoPad_template& other_value);

public:
TP__OA__NoPad_template();
TP__OA__NoPad_template(template_sel other_value);
TP__OA__NoPad_template(const TP__OA__NoPad& other_value);
TP__OA__NoPad_template(const OPTIONAL<TP__OA__NoPad>& other_value);
TP__OA__NoPad_template(TP__OA__NoPad_template* p_precondition, TP__OA__NoPad_template* p_implied_template);
TP__OA__NoPad_template(Dynamic_Match_Interface<TP__OA__NoPad>* p_dyn_match);
TP__OA__NoPad_template(const TP__OA__NoPad_template& other_value);
~TP__OA__NoPad_template();
TP__OA__NoPad_template& operator=(template_sel other_value);
TP__OA__NoPad_template& operator=(const TP__OA__NoPad& other_value);
TP__OA__NoPad_template& operator=(const OPTIONAL<TP__OA__NoPad>& other_value);
TP__OA__NoPad_template& operator=(const TP__OA__NoPad_template& other_value);
boolean match(const TP__OA__NoPad& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
TP__OA__NoPad valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
TP__OA__NoPad_template& list_item(unsigned int list_index) const;
INTEGER_template& tP__LengthIndicator();
const INTEGER_template& tP__LengthIndicator() const;
BITSTRING_template& tP__NumberingPlanID();
const BITSTRING_template& tP__NumberingPlanID() const;
BITSTRING_template& tP__TypeOfNumber();
const BITSTRING_template& tP__TypeOfNumber() const;
BITSTRING_template& tp__Spare();
const BITSTRING_template& tp__Spare() const;
HEXSTRING_template& tP__OAValue();
const HEXSTRING_template& tP__OAValue() const;
int size_of() const;
void log() const;
void log_match(const TP__OA__NoPad& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TP__OA : public Base_Type {
  TP__OA__NoPad field_tP__OA__NoPad;
public:
  TP__OA();
  TP__OA(const TP__OA__NoPad& par_tP__OA__NoPad);
  TP__OA(const TP__OA& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  TP__OA& operator=(const TP__OA& other_value);
  boolean operator==(const TP__OA& other_value) const;
  inline boolean operator!=(const TP__OA& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline TP__OA__NoPad& tP__OA__NoPad()
    {return field_tP__OA__NoPad;}
  inline const TP__OA__NoPad& tP__OA__NoPad() const
    {return field_tP__OA__NoPad;}
  inline int size_of() const
    {return 1;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TP__OA_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
TP__OA_template *list_value;
} value_list;
struct {
TP__OA_template* precondition;
TP__OA_template* implied_template;
} implication_;
dynmatch_struct<TP__OA>* dyn_match;
};

void set_specific();
void copy_value(const TP__OA& other_value);
void copy_template(const TP__OA_template& other_value);

public:
TP__OA_template();
TP__OA_template(template_sel other_value);
TP__OA_template(const TP__OA& other_value);
TP__OA_template(const OPTIONAL<TP__OA>& other_value);
TP__OA_template(TP__OA_template* p_precondition, TP__OA_template* p_implied_template);
TP__OA_template(Dynamic_Match_Interface<TP__OA>* p_dyn_match);
TP__OA_template(const TP__OA_template& other_value);
~TP__OA_template();
TP__OA_template& operator=(template_sel other_value);
TP__OA_template& operator=(const TP__OA& other_value);
TP__OA_template& operator=(const OPTIONAL<TP__OA>& other_value);
TP__OA_template& operator=(const TP__OA_template& other_value);
boolean match(const TP__OA& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
TP__OA valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
TP__OA_template& list_item(unsigned int list_index) const;
TP__OA__NoPad_template& tP__OA__NoPad();
const TP__OA__NoPad_template& tP__OA__NoPad() const;
int size_of() const;
void log() const;
void log_match(const TP__OA& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class SMS__DELIVER : public Base_Type {
  BITSTRING field_tP__MTI;
  BITSTRING field_tP__MMS;
  BITSTRING field_tP__LP;
  BITSTRING field_tP__Spare;
  BITSTRING field_tP__SRI;
  BITSTRING field_tP__UDHI;
  BITSTRING field_tP__RP;
  TP__OA field_tP__OA;
  OCTETSTRING field_tP__PID;
  OCTETSTRING field_tP__DCS;
  OCTETSTRING field_tP__SCTS;
  TP__UDL__UD field_tP__UDL__UD;
public:
  SMS__DELIVER();
  SMS__DELIVER(const BITSTRING& par_tP__MTI,
    const BITSTRING& par_tP__MMS,
    const BITSTRING& par_tP__LP,
    const BITSTRING& par_tP__Spare,
    const BITSTRING& par_tP__SRI,
    const BITSTRING& par_tP__UDHI,
    const BITSTRING& par_tP__RP,
    const TP__OA& par_tP__OA,
    const OCTETSTRING& par_tP__PID,
    const OCTETSTRING& par_tP__DCS,
    const OCTETSTRING& par_tP__SCTS,
    const TP__UDL__UD& par_tP__UDL__UD);
  SMS__DELIVER(const SMS__DELIVER& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SMS__DELIVER& operator=(const SMS__DELIVER& other_value);
  boolean operator==(const SMS__DELIVER& other_value) const;
  inline boolean operator!=(const SMS__DELIVER& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& tP__MTI()
    {return field_tP__MTI;}
  inline const BITSTRING& tP__MTI() const
    {return field_tP__MTI;}
  inline BITSTRING& tP__MMS()
    {return field_tP__MMS;}
  inline const BITSTRING& tP__MMS() const
    {return field_tP__MMS;}
  inline BITSTRING& tP__LP()
    {return field_tP__LP;}
  inline const BITSTRING& tP__LP() const
    {return field_tP__LP;}
  inline BITSTRING& tP__Spare()
    {return field_tP__Spare;}
  inline const BITSTRING& tP__Spare() const
    {return field_tP__Spare;}
  inline BITSTRING& tP__SRI()
    {return field_tP__SRI;}
  inline const BITSTRING& tP__SRI() const
    {return field_tP__SRI;}
  inline BITSTRING& tP__UDHI()
    {return field_tP__UDHI;}
  inline const BITSTRING& tP__UDHI() const
    {return field_tP__UDHI;}
  inline BITSTRING& tP__RP()
    {return field_tP__RP;}
  inline const BITSTRING& tP__RP() const
    {return field_tP__RP;}
  inline TP__OA& tP__OA()
    {return field_tP__OA;}
  inline const TP__OA& tP__OA() const
    {return field_tP__OA;}
  inline OCTETSTRING& tP__PID()
    {return field_tP__PID;}
  inline const OCTETSTRING& tP__PID() const
    {return field_tP__PID;}
  inline OCTETSTRING& tP__DCS()
    {return field_tP__DCS;}
  inline const OCTETSTRING& tP__DCS() const
    {return field_tP__DCS;}
  inline OCTETSTRING& tP__SCTS()
    {return field_tP__SCTS;}
  inline const OCTETSTRING& tP__SCTS() const
    {return field_tP__SCTS;}
  inline TP__UDL__UD& tP__UDL__UD()
    {return field_tP__UDL__UD;}
  inline const TP__UDL__UD& tP__UDL__UD() const
    {return field_tP__UDL__UD;}
  inline int size_of() const
    {return 12;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class SMS__DELIVER_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SMS__DELIVER_template *list_value;
} value_list;
struct {
SMS__DELIVER_template* precondition;
SMS__DELIVER_template* implied_template;
} implication_;
dynmatch_struct<SMS__DELIVER>* dyn_match;
};

void set_specific();
void copy_value(const SMS__DELIVER& other_value);
void copy_template(const SMS__DELIVER_template& other_value);

public:
SMS__DELIVER_template();
SMS__DELIVER_template(template_sel other_value);
SMS__DELIVER_template(const SMS__DELIVER& other_value);
SMS__DELIVER_template(const OPTIONAL<SMS__DELIVER>& other_value);
SMS__DELIVER_template(SMS__DELIVER_template* p_precondition, SMS__DELIVER_template* p_implied_template);
SMS__DELIVER_template(Dynamic_Match_Interface<SMS__DELIVER>* p_dyn_match);
SMS__DELIVER_template(const SMS__DELIVER_template& other_value);
~SMS__DELIVER_template();
SMS__DELIVER_template& operator=(template_sel other_value);
SMS__DELIVER_template& operator=(const SMS__DELIVER& other_value);
SMS__DELIVER_template& operator=(const OPTIONAL<SMS__DELIVER>& other_value);
SMS__DELIVER_template& operator=(const SMS__DELIVER_template& other_value);
boolean match(const SMS__DELIVER& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SMS__DELIVER valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__DELIVER_template& list_item(unsigned int list_index) const;
BITSTRING_template& tP__MTI();
const BITSTRING_template& tP__MTI() const;
BITSTRING_template& tP__MMS();
const BITSTRING_template& tP__MMS() const;
BITSTRING_template& tP__LP();
const BITSTRING_template& tP__LP() const;
BITSTRING_template& tP__Spare();
const BITSTRING_template& tP__Spare() const;
BITSTRING_template& tP__SRI();
const BITSTRING_template& tP__SRI() const;
BITSTRING_template& tP__UDHI();
const BITSTRING_template& tP__UDHI() const;
BITSTRING_template& tP__RP();
const BITSTRING_template& tP__RP() const;
TP__OA_template& tP__OA();
const TP__OA_template& tP__OA() const;
OCTETSTRING_template& tP__PID();
const OCTETSTRING_template& tP__PID() const;
OCTETSTRING_template& tP__DCS();
const OCTETSTRING_template& tP__DCS() const;
OCTETSTRING_template& tP__SCTS();
const OCTETSTRING_template& tP__SCTS() const;
TP__UDL__UD_template& tP__UDL__UD();
const TP__UDL__UD_template& tP__UDL__UD() const;
int size_of() const;
void log() const;
void log_match(const SMS__DELIVER& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TP__RA__NoPad : public Base_Type {
  INTEGER field_tP__LengthIndicator;
  BITSTRING field_tP__NumberingPlanID;
  BITSTRING field_tP__TypeOfNumber;
  BITSTRING field_tp__Spare;
  HEXSTRING field_tP__RAValue;
public:
  TP__RA__NoPad();
  TP__RA__NoPad(const INTEGER& par_tP__LengthIndicator,
    const BITSTRING& par_tP__NumberingPlanID,
    const BITSTRING& par_tP__TypeOfNumber,
    const BITSTRING& par_tp__Spare,
    const HEXSTRING& par_tP__RAValue);
  TP__RA__NoPad(const TP__RA__NoPad& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  TP__RA__NoPad& operator=(const TP__RA__NoPad& other_value);
  boolean operator==(const TP__RA__NoPad& other_value) const;
  inline boolean operator!=(const TP__RA__NoPad& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& tP__LengthIndicator()
    {return field_tP__LengthIndicator;}
  inline const INTEGER& tP__LengthIndicator() const
    {return field_tP__LengthIndicator;}
  inline BITSTRING& tP__NumberingPlanID()
    {return field_tP__NumberingPlanID;}
  inline const BITSTRING& tP__NumberingPlanID() const
    {return field_tP__NumberingPlanID;}
  inline BITSTRING& tP__TypeOfNumber()
    {return field_tP__TypeOfNumber;}
  inline const BITSTRING& tP__TypeOfNumber() const
    {return field_tP__TypeOfNumber;}
  inline BITSTRING& tp__Spare()
    {return field_tp__Spare;}
  inline const BITSTRING& tp__Spare() const
    {return field_tp__Spare;}
  inline HEXSTRING& tP__RAValue()
    {return field_tP__RAValue;}
  inline const HEXSTRING& tP__RAValue() const
    {return field_tP__RAValue;}
  inline int size_of() const
    {return 5;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TP__RA__NoPad_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
TP__RA__NoPad_template *list_value;
} value_list;
struct {
TP__RA__NoPad_template* precondition;
TP__RA__NoPad_template* implied_template;
} implication_;
dynmatch_struct<TP__RA__NoPad>* dyn_match;
};

void set_specific();
void copy_value(const TP__RA__NoPad& other_value);
void copy_template(const TP__RA__NoPad_template& other_value);

public:
TP__RA__NoPad_template();
TP__RA__NoPad_template(template_sel other_value);
TP__RA__NoPad_template(const TP__RA__NoPad& other_value);
TP__RA__NoPad_template(const OPTIONAL<TP__RA__NoPad>& other_value);
TP__RA__NoPad_template(TP__RA__NoPad_template* p_precondition, TP__RA__NoPad_template* p_implied_template);
TP__RA__NoPad_template(Dynamic_Match_Interface<TP__RA__NoPad>* p_dyn_match);
TP__RA__NoPad_template(const TP__RA__NoPad_template& other_value);
~TP__RA__NoPad_template();
TP__RA__NoPad_template& operator=(template_sel other_value);
TP__RA__NoPad_template& operator=(const TP__RA__NoPad& other_value);
TP__RA__NoPad_template& operator=(const OPTIONAL<TP__RA__NoPad>& other_value);
TP__RA__NoPad_template& operator=(const TP__RA__NoPad_template& other_value);
boolean match(const TP__RA__NoPad& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
TP__RA__NoPad valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
TP__RA__NoPad_template& list_item(unsigned int list_index) const;
INTEGER_template& tP__LengthIndicator();
const INTEGER_template& tP__LengthIndicator() const;
BITSTRING_template& tP__NumberingPlanID();
const BITSTRING_template& tP__NumberingPlanID() const;
BITSTRING_template& tP__TypeOfNumber();
const BITSTRING_template& tP__TypeOfNumber() const;
BITSTRING_template& tp__Spare();
const BITSTRING_template& tp__Spare() const;
HEXSTRING_template& tP__RAValue();
const HEXSTRING_template& tP__RAValue() const;
int size_of() const;
void log() const;
void log_match(const TP__RA__NoPad& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TP__RA : public Base_Type {
  TP__RA__NoPad field_tP__RA__NoPad;
public:
  TP__RA();
  TP__RA(const TP__RA__NoPad& par_tP__RA__NoPad);
  TP__RA(const TP__RA& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  TP__RA& operator=(const TP__RA& other_value);
  boolean operator==(const TP__RA& other_value) const;
  inline boolean operator!=(const TP__RA& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline TP__RA__NoPad& tP__RA__NoPad()
    {return field_tP__RA__NoPad;}
  inline const TP__RA__NoPad& tP__RA__NoPad() const
    {return field_tP__RA__NoPad;}
  inline int size_of() const
    {return 1;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TP__RA_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
TP__RA_template *list_value;
} value_list;
struct {
TP__RA_template* precondition;
TP__RA_template* implied_template;
} implication_;
dynmatch_struct<TP__RA>* dyn_match;
};

void set_specific();
void copy_value(const TP__RA& other_value);
void copy_template(const TP__RA_template& other_value);

public:
TP__RA_template();
TP__RA_template(template_sel other_value);
TP__RA_template(const TP__RA& other_value);
TP__RA_template(const OPTIONAL<TP__RA>& other_value);
TP__RA_template(TP__RA_template* p_precondition, TP__RA_template* p_implied_template);
TP__RA_template(Dynamic_Match_Interface<TP__RA>* p_dyn_match);
TP__RA_template(const TP__RA_template& other_value);
~TP__RA_template();
TP__RA_template& operator=(template_sel other_value);
TP__RA_template& operator=(const TP__RA& other_value);
TP__RA_template& operator=(const OPTIONAL<TP__RA>& other_value);
TP__RA_template& operator=(const TP__RA_template& other_value);
boolean match(const TP__RA& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
TP__RA valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
TP__RA_template& list_item(unsigned int list_index) const;
TP__RA__NoPad_template& tP__RA__NoPad();
const TP__RA__NoPad_template& tP__RA__NoPad() const;
int size_of() const;
void log() const;
void log_match(const TP__RA& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class SMS__STATUS__REPORT : public Base_Type {
  BITSTRING field_tP__MTI;
  BITSTRING field_tP__MMS;
  BITSTRING field_tP__LP;
  BITSTRING field_tP__Spare1;
  BITSTRING field_tP__SRQ;
  BITSTRING field_tP__UDHI;
  BITSTRING field_tP__Spare2;
  OCTETSTRING field_tP__MR;
  TP__RA field_tP__RA;
  OCTETSTRING field_tP__SCTS;
  OCTETSTRING field_tP__DT;
  OCTETSTRING field_tP__ST;
  OPTIONAL< BITSTRING > field_tP__PresenceBitTP__PID;
  OPTIONAL< BITSTRING > field_tP__PresenceBitTP__DCS;
  OPTIONAL< BITSTRING > field_tP__PresenceBitTP__UDL;
  OPTIONAL< BITSTRING > field_tP__Reserved;
  OPTIONAL< BITSTRING > field_tP__ExtensionBit;
  OPTIONAL< OCTETSTRING > field_tP__PID;
  OPTIONAL< OCTETSTRING > field_tP__DCS;
  OPTIONAL< TP__UDL__UD > field_tP__UDL__UD;
public:
  SMS__STATUS__REPORT();
  SMS__STATUS__REPORT(const BITSTRING& par_tP__MTI,
    const BITSTRING& par_tP__MMS,
    const BITSTRING& par_tP__LP,
    const BITSTRING& par_tP__Spare1,
    const BITSTRING& par_tP__SRQ,
    const BITSTRING& par_tP__UDHI,
    const BITSTRING& par_tP__Spare2,
    const OCTETSTRING& par_tP__MR,
    const TP__RA& par_tP__RA,
    const OCTETSTRING& par_tP__SCTS,
    const OCTETSTRING& par_tP__DT,
    const OCTETSTRING& par_tP__ST,
    const OPTIONAL< BITSTRING >& par_tP__PresenceBitTP__PID,
    const OPTIONAL< BITSTRING >& par_tP__PresenceBitTP__DCS,
    const OPTIONAL< BITSTRING >& par_tP__PresenceBitTP__UDL,
    const OPTIONAL< BITSTRING >& par_tP__Reserved,
    const OPTIONAL< BITSTRING >& par_tP__ExtensionBit,
    const OPTIONAL< OCTETSTRING >& par_tP__PID,
    const OPTIONAL< OCTETSTRING >& par_tP__DCS,
    const OPTIONAL< TP__UDL__UD >& par_tP__UDL__UD);
  SMS__STATUS__REPORT(const SMS__STATUS__REPORT& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SMS__STATUS__REPORT& operator=(const SMS__STATUS__REPORT& other_value);
  boolean operator==(const SMS__STATUS__REPORT& other_value) const;
  inline boolean operator!=(const SMS__STATUS__REPORT& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& tP__MTI()
    {return field_tP__MTI;}
  inline const BITSTRING& tP__MTI() const
    {return field_tP__MTI;}
  inline BITSTRING& tP__MMS()
    {return field_tP__MMS;}
  inline const BITSTRING& tP__MMS() const
    {return field_tP__MMS;}
  inline BITSTRING& tP__LP()
    {return field_tP__LP;}
  inline const BITSTRING& tP__LP() const
    {return field_tP__LP;}
  inline BITSTRING& tP__Spare1()
    {return field_tP__Spare1;}
  inline const BITSTRING& tP__Spare1() const
    {return field_tP__Spare1;}
  inline BITSTRING& tP__SRQ()
    {return field_tP__SRQ;}
  inline const BITSTRING& tP__SRQ() const
    {return field_tP__SRQ;}
  inline BITSTRING& tP__UDHI()
    {return field_tP__UDHI;}
  inline const BITSTRING& tP__UDHI() const
    {return field_tP__UDHI;}
  inline BITSTRING& tP__Spare2()
    {return field_tP__Spare2;}
  inline const BITSTRING& tP__Spare2() const
    {return field_tP__Spare2;}
  inline OCTETSTRING& tP__MR()
    {return field_tP__MR;}
  inline const OCTETSTRING& tP__MR() const
    {return field_tP__MR;}
  inline TP__RA& tP__RA()
    {return field_tP__RA;}
  inline const TP__RA& tP__RA() const
    {return field_tP__RA;}
  inline OCTETSTRING& tP__SCTS()
    {return field_tP__SCTS;}
  inline const OCTETSTRING& tP__SCTS() const
    {return field_tP__SCTS;}
  inline OCTETSTRING& tP__DT()
    {return field_tP__DT;}
  inline const OCTETSTRING& tP__DT() const
    {return field_tP__DT;}
  inline OCTETSTRING& tP__ST()
    {return field_tP__ST;}
  inline const OCTETSTRING& tP__ST() const
    {return field_tP__ST;}
  inline OPTIONAL< BITSTRING >& tP__PresenceBitTP__PID()
    {return field_tP__PresenceBitTP__PID;}
  inline const OPTIONAL< BITSTRING >& tP__PresenceBitTP__PID() const
    {return field_tP__PresenceBitTP__PID;}
  inline OPTIONAL< BITSTRING >& tP__PresenceBitTP__DCS()
    {return field_tP__PresenceBitTP__DCS;}
  inline const OPTIONAL< BITSTRING >& tP__PresenceBitTP__DCS() const
    {return field_tP__PresenceBitTP__DCS;}
  inline OPTIONAL< BITSTRING >& tP__PresenceBitTP__UDL()
    {return field_tP__PresenceBitTP__UDL;}
  inline const OPTIONAL< BITSTRING >& tP__PresenceBitTP__UDL() const
    {return field_tP__PresenceBitTP__UDL;}
  inline OPTIONAL< BITSTRING >& tP__Reserved()
    {return field_tP__Reserved;}
  inline const OPTIONAL< BITSTRING >& tP__Reserved() const
    {return field_tP__Reserved;}
  inline OPTIONAL< BITSTRING >& tP__ExtensionBit()
    {return field_tP__ExtensionBit;}
  inline const OPTIONAL< BITSTRING >& tP__ExtensionBit() const
    {return field_tP__ExtensionBit;}
  inline OPTIONAL< OCTETSTRING >& tP__PID()
    {return field_tP__PID;}
  inline const OPTIONAL< OCTETSTRING >& tP__PID() const
    {return field_tP__PID;}
  inline OPTIONAL< OCTETSTRING >& tP__DCS()
    {return field_tP__DCS;}
  inline const OPTIONAL< OCTETSTRING >& tP__DCS() const
    {return field_tP__DCS;}
  inline OPTIONAL< TP__UDL__UD >& tP__UDL__UD()
    {return field_tP__UDL__UD;}
  inline const OPTIONAL< TP__UDL__UD >& tP__UDL__UD() const
    {return field_tP__UDL__UD;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class SMS__STATUS__REPORT_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SMS__STATUS__REPORT_template *list_value;
} value_list;
struct {
SMS__STATUS__REPORT_template* precondition;
SMS__STATUS__REPORT_template* implied_template;
} implication_;
dynmatch_struct<SMS__STATUS__REPORT>* dyn_match;
};

void set_specific();
void copy_value(const SMS__STATUS__REPORT& other_value);
void copy_template(const SMS__STATUS__REPORT_template& other_value);

public:
SMS__STATUS__REPORT_template();
SMS__STATUS__REPORT_template(template_sel other_value);
SMS__STATUS__REPORT_template(const SMS__STATUS__REPORT& other_value);
SMS__STATUS__REPORT_template(const OPTIONAL<SMS__STATUS__REPORT>& other_value);
SMS__STATUS__REPORT_template(SMS__STATUS__REPORT_template* p_precondition, SMS__STATUS__REPORT_template* p_implied_template);
SMS__STATUS__REPORT_template(Dynamic_Match_Interface<SMS__STATUS__REPORT>* p_dyn_match);
SMS__STATUS__REPORT_template(const SMS__STATUS__REPORT_template& other_value);
~SMS__STATUS__REPORT_template();
SMS__STATUS__REPORT_template& operator=(template_sel other_value);
SMS__STATUS__REPORT_template& operator=(const SMS__STATUS__REPORT& other_value);
SMS__STATUS__REPORT_template& operator=(const OPTIONAL<SMS__STATUS__REPORT>& other_value);
SMS__STATUS__REPORT_template& operator=(const SMS__STATUS__REPORT_template& other_value);
boolean match(const SMS__STATUS__REPORT& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SMS__STATUS__REPORT valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__STATUS__REPORT_template& list_item(unsigned int list_index) const;
BITSTRING_template& tP__MTI();
const BITSTRING_template& tP__MTI() const;
BITSTRING_template& tP__MMS();
const BITSTRING_template& tP__MMS() const;
BITSTRING_template& tP__LP();
const BITSTRING_template& tP__LP() const;
BITSTRING_template& tP__Spare1();
const BITSTRING_template& tP__Spare1() const;
BITSTRING_template& tP__SRQ();
const BITSTRING_template& tP__SRQ() const;
BITSTRING_template& tP__UDHI();
const BITSTRING_template& tP__UDHI() const;
BITSTRING_template& tP__Spare2();
const BITSTRING_template& tP__Spare2() const;
OCTETSTRING_template& tP__MR();
const OCTETSTRING_template& tP__MR() const;
TP__RA_template& tP__RA();
const TP__RA_template& tP__RA() const;
OCTETSTRING_template& tP__SCTS();
const OCTETSTRING_template& tP__SCTS() const;
OCTETSTRING_template& tP__DT();
const OCTETSTRING_template& tP__DT() const;
OCTETSTRING_template& tP__ST();
const OCTETSTRING_template& tP__ST() const;
BITSTRING_template& tP__PresenceBitTP__PID();
const BITSTRING_template& tP__PresenceBitTP__PID() const;
BITSTRING_template& tP__PresenceBitTP__DCS();
const BITSTRING_template& tP__PresenceBitTP__DCS() const;
BITSTRING_template& tP__PresenceBitTP__UDL();
const BITSTRING_template& tP__PresenceBitTP__UDL() const;
BITSTRING_template& tP__Reserved();
const BITSTRING_template& tP__Reserved() const;
BITSTRING_template& tP__ExtensionBit();
const BITSTRING_template& tP__ExtensionBit() const;
OCTETSTRING_template& tP__PID();
const OCTETSTRING_template& tP__PID() const;
OCTETSTRING_template& tP__DCS();
const OCTETSTRING_template& tP__DCS() const;
TP__UDL__UD_template& tP__UDL__UD();
const TP__UDL__UD_template& tP__UDL__UD() const;
int size_of() const;
void log() const;
void log_match(const SMS__STATUS__REPORT& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__DATA__User__DataLV__SGSN__MS : public Base_Type {
  INTEGER field_rP__LengthIndicator;
  TPDU__RP__DATA__SGSN__MS field_rP__TPDU;
public:
  RP__DATA__User__DataLV__SGSN__MS();
  RP__DATA__User__DataLV__SGSN__MS(const INTEGER& par_rP__LengthIndicator,
    const TPDU__RP__DATA__SGSN__MS& par_rP__TPDU);
  RP__DATA__User__DataLV__SGSN__MS(const RP__DATA__User__DataLV__SGSN__MS& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__DATA__User__DataLV__SGSN__MS& operator=(const RP__DATA__User__DataLV__SGSN__MS& other_value);
  boolean operator==(const RP__DATA__User__DataLV__SGSN__MS& other_value) const;
  inline boolean operator!=(const RP__DATA__User__DataLV__SGSN__MS& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& rP__LengthIndicator()
    {return field_rP__LengthIndicator;}
  inline const INTEGER& rP__LengthIndicator() const
    {return field_rP__LengthIndicator;}
  inline TPDU__RP__DATA__SGSN__MS& rP__TPDU()
    {return field_rP__TPDU;}
  inline const TPDU__RP__DATA__SGSN__MS& rP__TPDU() const
    {return field_rP__TPDU;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__DATA__User__DataLV__SGSN__MS_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__DATA__User__DataLV__SGSN__MS_template *list_value;
} value_list;
struct {
RP__DATA__User__DataLV__SGSN__MS_template* precondition;
RP__DATA__User__DataLV__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<RP__DATA__User__DataLV__SGSN__MS>* dyn_match;
};

void set_specific();
void copy_value(const RP__DATA__User__DataLV__SGSN__MS& other_value);
void copy_template(const RP__DATA__User__DataLV__SGSN__MS_template& other_value);

public:
RP__DATA__User__DataLV__SGSN__MS_template();
RP__DATA__User__DataLV__SGSN__MS_template(template_sel other_value);
RP__DATA__User__DataLV__SGSN__MS_template(const RP__DATA__User__DataLV__SGSN__MS& other_value);
RP__DATA__User__DataLV__SGSN__MS_template(const OPTIONAL<RP__DATA__User__DataLV__SGSN__MS>& other_value);
RP__DATA__User__DataLV__SGSN__MS_template(RP__DATA__User__DataLV__SGSN__MS_template* p_precondition, RP__DATA__User__DataLV__SGSN__MS_template* p_implied_template);
RP__DATA__User__DataLV__SGSN__MS_template(Dynamic_Match_Interface<RP__DATA__User__DataLV__SGSN__MS>* p_dyn_match);
RP__DATA__User__DataLV__SGSN__MS_template(const RP__DATA__User__DataLV__SGSN__MS_template& other_value);
~RP__DATA__User__DataLV__SGSN__MS_template();
RP__DATA__User__DataLV__SGSN__MS_template& operator=(template_sel other_value);
RP__DATA__User__DataLV__SGSN__MS_template& operator=(const RP__DATA__User__DataLV__SGSN__MS& other_value);
RP__DATA__User__DataLV__SGSN__MS_template& operator=(const OPTIONAL<RP__DATA__User__DataLV__SGSN__MS>& other_value);
RP__DATA__User__DataLV__SGSN__MS_template& operator=(const RP__DATA__User__DataLV__SGSN__MS_template& other_value);
boolean match(const RP__DATA__User__DataLV__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__DATA__User__DataLV__SGSN__MS valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__DATA__User__DataLV__SGSN__MS_template& list_item(unsigned int list_index) const;
INTEGER_template& rP__LengthIndicator();
const INTEGER_template& rP__LengthIndicator() const;
TPDU__RP__DATA__SGSN__MS_template& rP__TPDU();
const TPDU__RP__DATA__SGSN__MS_template& rP__TPDU() const;
int size_of() const;
void log() const;
void log_match(const RP__DATA__User__DataLV__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__DATA__SGSN__MS : public Base_Type {
  BITSTRING field_rP__MTI;
  BITSTRING field_rP__Spare;
  OCTETSTRING field_rP__MessageReference;
  RP__OriginatorAddressLV field_rP__OriginatorAddress;
  RP__DestinationAddressLV field_rP__DestinationAddress;
  RP__DATA__User__DataLV__SGSN__MS field_rP__User__Data;
public:
  RP__DATA__SGSN__MS();
  RP__DATA__SGSN__MS(const BITSTRING& par_rP__MTI,
    const BITSTRING& par_rP__Spare,
    const OCTETSTRING& par_rP__MessageReference,
    const RP__OriginatorAddressLV& par_rP__OriginatorAddress,
    const RP__DestinationAddressLV& par_rP__DestinationAddress,
    const RP__DATA__User__DataLV__SGSN__MS& par_rP__User__Data);
  RP__DATA__SGSN__MS(const RP__DATA__SGSN__MS& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__DATA__SGSN__MS& operator=(const RP__DATA__SGSN__MS& other_value);
  boolean operator==(const RP__DATA__SGSN__MS& other_value) const;
  inline boolean operator!=(const RP__DATA__SGSN__MS& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rP__MTI()
    {return field_rP__MTI;}
  inline const BITSTRING& rP__MTI() const
    {return field_rP__MTI;}
  inline BITSTRING& rP__Spare()
    {return field_rP__Spare;}
  inline const BITSTRING& rP__Spare() const
    {return field_rP__Spare;}
  inline OCTETSTRING& rP__MessageReference()
    {return field_rP__MessageReference;}
  inline const OCTETSTRING& rP__MessageReference() const
    {return field_rP__MessageReference;}
  inline RP__OriginatorAddressLV& rP__OriginatorAddress()
    {return field_rP__OriginatorAddress;}
  inline const RP__OriginatorAddressLV& rP__OriginatorAddress() const
    {return field_rP__OriginatorAddress;}
  inline RP__DestinationAddressLV& rP__DestinationAddress()
    {return field_rP__DestinationAddress;}
  inline const RP__DestinationAddressLV& rP__DestinationAddress() const
    {return field_rP__DestinationAddress;}
  inline RP__DATA__User__DataLV__SGSN__MS& rP__User__Data()
    {return field_rP__User__Data;}
  inline const RP__DATA__User__DataLV__SGSN__MS& rP__User__Data() const
    {return field_rP__User__Data;}
  inline int size_of() const
    {return 6;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__DATA__SGSN__MS_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__DATA__SGSN__MS_template *list_value;
} value_list;
struct {
RP__DATA__SGSN__MS_template* precondition;
RP__DATA__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<RP__DATA__SGSN__MS>* dyn_match;
};

void set_specific();
void copy_value(const RP__DATA__SGSN__MS& other_value);
void copy_template(const RP__DATA__SGSN__MS_template& other_value);

public:
RP__DATA__SGSN__MS_template();
RP__DATA__SGSN__MS_template(template_sel other_value);
RP__DATA__SGSN__MS_template(const RP__DATA__SGSN__MS& other_value);
RP__DATA__SGSN__MS_template(const OPTIONAL<RP__DATA__SGSN__MS>& other_value);
RP__DATA__SGSN__MS_template(RP__DATA__SGSN__MS_template* p_precondition, RP__DATA__SGSN__MS_template* p_implied_template);
RP__DATA__SGSN__MS_template(Dynamic_Match_Interface<RP__DATA__SGSN__MS>* p_dyn_match);
RP__DATA__SGSN__MS_template(const RP__DATA__SGSN__MS_template& other_value);
~RP__DATA__SGSN__MS_template();
RP__DATA__SGSN__MS_template& operator=(template_sel other_value);
RP__DATA__SGSN__MS_template& operator=(const RP__DATA__SGSN__MS& other_value);
RP__DATA__SGSN__MS_template& operator=(const OPTIONAL<RP__DATA__SGSN__MS>& other_value);
RP__DATA__SGSN__MS_template& operator=(const RP__DATA__SGSN__MS_template& other_value);
boolean match(const RP__DATA__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__DATA__SGSN__MS valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__DATA__SGSN__MS_template& list_item(unsigned int list_index) const;
BITSTRING_template& rP__MTI();
const BITSTRING_template& rP__MTI() const;
BITSTRING_template& rP__Spare();
const BITSTRING_template& rP__Spare() const;
OCTETSTRING_template& rP__MessageReference();
const OCTETSTRING_template& rP__MessageReference() const;
RP__OriginatorAddressLV_template& rP__OriginatorAddress();
const RP__OriginatorAddressLV_template& rP__OriginatorAddress() const;
RP__DestinationAddressLV_template& rP__DestinationAddress();
const RP__DestinationAddressLV_template& rP__DestinationAddress() const;
RP__DATA__User__DataLV__SGSN__MS_template& rP__User__Data();
const RP__DATA__User__DataLV__SGSN__MS_template& rP__User__Data() const;
int size_of() const;
void log() const;
void log_match(const RP__DATA__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__ACK__SGSN__MS : public Base_Type {
  BITSTRING field_rP__MTI;
  BITSTRING field_rP__Spare;
  OCTETSTRING field_rP__MessageReference;
  OPTIONAL< RP__ACK__User__DataTLV__SGSN__MS > field_rP__User__Data;
public:
  RP__ACK__SGSN__MS();
  RP__ACK__SGSN__MS(const BITSTRING& par_rP__MTI,
    const BITSTRING& par_rP__Spare,
    const OCTETSTRING& par_rP__MessageReference,
    const OPTIONAL< RP__ACK__User__DataTLV__SGSN__MS >& par_rP__User__Data);
  RP__ACK__SGSN__MS(const RP__ACK__SGSN__MS& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__ACK__SGSN__MS& operator=(const RP__ACK__SGSN__MS& other_value);
  boolean operator==(const RP__ACK__SGSN__MS& other_value) const;
  inline boolean operator!=(const RP__ACK__SGSN__MS& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rP__MTI()
    {return field_rP__MTI;}
  inline const BITSTRING& rP__MTI() const
    {return field_rP__MTI;}
  inline BITSTRING& rP__Spare()
    {return field_rP__Spare;}
  inline const BITSTRING& rP__Spare() const
    {return field_rP__Spare;}
  inline OCTETSTRING& rP__MessageReference()
    {return field_rP__MessageReference;}
  inline const OCTETSTRING& rP__MessageReference() const
    {return field_rP__MessageReference;}
  inline OPTIONAL< RP__ACK__User__DataTLV__SGSN__MS >& rP__User__Data()
    {return field_rP__User__Data;}
  inline const OPTIONAL< RP__ACK__User__DataTLV__SGSN__MS >& rP__User__Data() const
    {return field_rP__User__Data;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__ACK__SGSN__MS_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__ACK__SGSN__MS_template *list_value;
} value_list;
struct {
RP__ACK__SGSN__MS_template* precondition;
RP__ACK__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<RP__ACK__SGSN__MS>* dyn_match;
};

void set_specific();
void copy_value(const RP__ACK__SGSN__MS& other_value);
void copy_template(const RP__ACK__SGSN__MS_template& other_value);

public:
RP__ACK__SGSN__MS_template();
RP__ACK__SGSN__MS_template(template_sel other_value);
RP__ACK__SGSN__MS_template(const RP__ACK__SGSN__MS& other_value);
RP__ACK__SGSN__MS_template(const OPTIONAL<RP__ACK__SGSN__MS>& other_value);
RP__ACK__SGSN__MS_template(RP__ACK__SGSN__MS_template* p_precondition, RP__ACK__SGSN__MS_template* p_implied_template);
RP__ACK__SGSN__MS_template(Dynamic_Match_Interface<RP__ACK__SGSN__MS>* p_dyn_match);
RP__ACK__SGSN__MS_template(const RP__ACK__SGSN__MS_template& other_value);
~RP__ACK__SGSN__MS_template();
RP__ACK__SGSN__MS_template& operator=(template_sel other_value);
RP__ACK__SGSN__MS_template& operator=(const RP__ACK__SGSN__MS& other_value);
RP__ACK__SGSN__MS_template& operator=(const OPTIONAL<RP__ACK__SGSN__MS>& other_value);
RP__ACK__SGSN__MS_template& operator=(const RP__ACK__SGSN__MS_template& other_value);
boolean match(const RP__ACK__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__ACK__SGSN__MS valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__ACK__SGSN__MS_template& list_item(unsigned int list_index) const;
BITSTRING_template& rP__MTI();
const BITSTRING_template& rP__MTI() const;
BITSTRING_template& rP__Spare();
const BITSTRING_template& rP__Spare() const;
OCTETSTRING_template& rP__MessageReference();
const OCTETSTRING_template& rP__MessageReference() const;
RP__ACK__User__DataTLV__SGSN__MS_template& rP__User__Data();
const RP__ACK__User__DataTLV__SGSN__MS_template& rP__User__Data() const;
int size_of() const;
void log() const;
void log_match(const RP__ACK__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TPDU__RP__ACK__SGSN__MS : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_sMS__SUBMIT__REPORT = 1 };
private:
union_selection_type union_selection;
union {
SMS__SUBMIT__REPORT__in__RP__ACK *field_sMS__SUBMIT__REPORT;
};
void copy_value(const TPDU__RP__ACK__SGSN__MS& other_value);

public:
TPDU__RP__ACK__SGSN__MS();
TPDU__RP__ACK__SGSN__MS(const TPDU__RP__ACK__SGSN__MS& other_value);
~TPDU__RP__ACK__SGSN__MS();
TPDU__RP__ACK__SGSN__MS& operator=(const TPDU__RP__ACK__SGSN__MS& other_value);
boolean operator==(const TPDU__RP__ACK__SGSN__MS& other_value) const;
inline boolean operator!=(const TPDU__RP__ACK__SGSN__MS& other_value) const { return !(*this == other_value); }
SMS__SUBMIT__REPORT__in__RP__ACK& sMS__SUBMIT__REPORT();
const SMS__SUBMIT__REPORT__in__RP__ACK& sMS__SUBMIT__REPORT() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TPDU__RP__ACK__SGSN__MS_template : public Base_Template {
union {
struct {
TPDU__RP__ACK__SGSN__MS::union_selection_type union_selection;
union {
SMS__SUBMIT__REPORT__in__RP__ACK_template *field_sMS__SUBMIT__REPORT;
};
} single_value;
struct {
unsigned int n_values;
TPDU__RP__ACK__SGSN__MS_template *list_value;
} value_list;
struct {
TPDU__RP__ACK__SGSN__MS_template* precondition;
TPDU__RP__ACK__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<TPDU__RP__ACK__SGSN__MS>* dyn_match;
};
void copy_value(const TPDU__RP__ACK__SGSN__MS& other_value);

void copy_template(const TPDU__RP__ACK__SGSN__MS_template& other_value);

public:
TPDU__RP__ACK__SGSN__MS_template();
TPDU__RP__ACK__SGSN__MS_template(template_sel other_value);
TPDU__RP__ACK__SGSN__MS_template(const TPDU__RP__ACK__SGSN__MS& other_value);
TPDU__RP__ACK__SGSN__MS_template(const OPTIONAL<TPDU__RP__ACK__SGSN__MS>& other_value);
TPDU__RP__ACK__SGSN__MS_template(TPDU__RP__ACK__SGSN__MS_template* p_precondition, TPDU__RP__ACK__SGSN__MS_template* p_implied_template);
TPDU__RP__ACK__SGSN__MS_template(Dynamic_Match_Interface<TPDU__RP__ACK__SGSN__MS>* p_dyn_match);
TPDU__RP__ACK__SGSN__MS_template(const TPDU__RP__ACK__SGSN__MS_template& other_value);
~TPDU__RP__ACK__SGSN__MS_template();
void clean_up();
TPDU__RP__ACK__SGSN__MS_template& operator=(template_sel other_value);
TPDU__RP__ACK__SGSN__MS_template& operator=(const TPDU__RP__ACK__SGSN__MS& other_value);
TPDU__RP__ACK__SGSN__MS_template& operator=(const OPTIONAL<TPDU__RP__ACK__SGSN__MS>& other_value);
TPDU__RP__ACK__SGSN__MS_template& operator=(const TPDU__RP__ACK__SGSN__MS_template& other_value);
boolean match(const TPDU__RP__ACK__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_value() const;TPDU__RP__ACK__SGSN__MS valueof() const;
TPDU__RP__ACK__SGSN__MS_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__SUBMIT__REPORT__in__RP__ACK_template& sMS__SUBMIT__REPORT();
const SMS__SUBMIT__REPORT__in__RP__ACK_template& sMS__SUBMIT__REPORT() const;
boolean ischosen(TPDU__RP__ACK__SGSN__MS::union_selection_type checked_selection) const;
void log() const;
void log_match(const TPDU__RP__ACK__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class SMS__SUBMIT__REPORT__in__RP__ACK : public Base_Type {
  BITSTRING field_tP__MTI;
  BITSTRING field_tP__Spare1;
  BITSTRING field_tP__UDHI;
  BITSTRING field_tP__Spare2;
  BITSTRING field_tP__PresenceBitTP__PID;
  BITSTRING field_tP__PresenceBitTP__DCS;
  BITSTRING field_tP__PresenceBitTP__UDL;
  BITSTRING field_tP__Reserved;
  BITSTRING field_tP__ExtensionBit;
  OCTETSTRING field_tP__SCTS;
  OPTIONAL< OCTETSTRING > field_tP__PID;
  OPTIONAL< OCTETSTRING > field_tP__DCS;
  OPTIONAL< TP__UDL__UD > field_tP__UDL__UD;
public:
  SMS__SUBMIT__REPORT__in__RP__ACK();
  SMS__SUBMIT__REPORT__in__RP__ACK(const BITSTRING& par_tP__MTI,
    const BITSTRING& par_tP__Spare1,
    const BITSTRING& par_tP__UDHI,
    const BITSTRING& par_tP__Spare2,
    const BITSTRING& par_tP__PresenceBitTP__PID,
    const BITSTRING& par_tP__PresenceBitTP__DCS,
    const BITSTRING& par_tP__PresenceBitTP__UDL,
    const BITSTRING& par_tP__Reserved,
    const BITSTRING& par_tP__ExtensionBit,
    const OCTETSTRING& par_tP__SCTS,
    const OPTIONAL< OCTETSTRING >& par_tP__PID,
    const OPTIONAL< OCTETSTRING >& par_tP__DCS,
    const OPTIONAL< TP__UDL__UD >& par_tP__UDL__UD);
  SMS__SUBMIT__REPORT__in__RP__ACK(const SMS__SUBMIT__REPORT__in__RP__ACK& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SMS__SUBMIT__REPORT__in__RP__ACK& operator=(const SMS__SUBMIT__REPORT__in__RP__ACK& other_value);
  boolean operator==(const SMS__SUBMIT__REPORT__in__RP__ACK& other_value) const;
  inline boolean operator!=(const SMS__SUBMIT__REPORT__in__RP__ACK& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& tP__MTI()
    {return field_tP__MTI;}
  inline const BITSTRING& tP__MTI() const
    {return field_tP__MTI;}
  inline BITSTRING& tP__Spare1()
    {return field_tP__Spare1;}
  inline const BITSTRING& tP__Spare1() const
    {return field_tP__Spare1;}
  inline BITSTRING& tP__UDHI()
    {return field_tP__UDHI;}
  inline const BITSTRING& tP__UDHI() const
    {return field_tP__UDHI;}
  inline BITSTRING& tP__Spare2()
    {return field_tP__Spare2;}
  inline const BITSTRING& tP__Spare2() const
    {return field_tP__Spare2;}
  inline BITSTRING& tP__PresenceBitTP__PID()
    {return field_tP__PresenceBitTP__PID;}
  inline const BITSTRING& tP__PresenceBitTP__PID() const
    {return field_tP__PresenceBitTP__PID;}
  inline BITSTRING& tP__PresenceBitTP__DCS()
    {return field_tP__PresenceBitTP__DCS;}
  inline const BITSTRING& tP__PresenceBitTP__DCS() const
    {return field_tP__PresenceBitTP__DCS;}
  inline BITSTRING& tP__PresenceBitTP__UDL()
    {return field_tP__PresenceBitTP__UDL;}
  inline const BITSTRING& tP__PresenceBitTP__UDL() const
    {return field_tP__PresenceBitTP__UDL;}
  inline BITSTRING& tP__Reserved()
    {return field_tP__Reserved;}
  inline const BITSTRING& tP__Reserved() const
    {return field_tP__Reserved;}
  inline BITSTRING& tP__ExtensionBit()
    {return field_tP__ExtensionBit;}
  inline const BITSTRING& tP__ExtensionBit() const
    {return field_tP__ExtensionBit;}
  inline OCTETSTRING& tP__SCTS()
    {return field_tP__SCTS;}
  inline const OCTETSTRING& tP__SCTS() const
    {return field_tP__SCTS;}
  inline OPTIONAL< OCTETSTRING >& tP__PID()
    {return field_tP__PID;}
  inline const OPTIONAL< OCTETSTRING >& tP__PID() const
    {return field_tP__PID;}
  inline OPTIONAL< OCTETSTRING >& tP__DCS()
    {return field_tP__DCS;}
  inline const OPTIONAL< OCTETSTRING >& tP__DCS() const
    {return field_tP__DCS;}
  inline OPTIONAL< TP__UDL__UD >& tP__UDL__UD()
    {return field_tP__UDL__UD;}
  inline const OPTIONAL< TP__UDL__UD >& tP__UDL__UD() const
    {return field_tP__UDL__UD;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class SMS__SUBMIT__REPORT__in__RP__ACK_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SMS__SUBMIT__REPORT__in__RP__ACK_template *list_value;
} value_list;
struct {
SMS__SUBMIT__REPORT__in__RP__ACK_template* precondition;
SMS__SUBMIT__REPORT__in__RP__ACK_template* implied_template;
} implication_;
dynmatch_struct<SMS__SUBMIT__REPORT__in__RP__ACK>* dyn_match;
};

void set_specific();
void copy_value(const SMS__SUBMIT__REPORT__in__RP__ACK& other_value);
void copy_template(const SMS__SUBMIT__REPORT__in__RP__ACK_template& other_value);

public:
SMS__SUBMIT__REPORT__in__RP__ACK_template();
SMS__SUBMIT__REPORT__in__RP__ACK_template(template_sel other_value);
SMS__SUBMIT__REPORT__in__RP__ACK_template(const SMS__SUBMIT__REPORT__in__RP__ACK& other_value);
SMS__SUBMIT__REPORT__in__RP__ACK_template(const OPTIONAL<SMS__SUBMIT__REPORT__in__RP__ACK>& other_value);
SMS__SUBMIT__REPORT__in__RP__ACK_template(SMS__SUBMIT__REPORT__in__RP__ACK_template* p_precondition, SMS__SUBMIT__REPORT__in__RP__ACK_template* p_implied_template);
SMS__SUBMIT__REPORT__in__RP__ACK_template(Dynamic_Match_Interface<SMS__SUBMIT__REPORT__in__RP__ACK>* p_dyn_match);
SMS__SUBMIT__REPORT__in__RP__ACK_template(const SMS__SUBMIT__REPORT__in__RP__ACK_template& other_value);
~SMS__SUBMIT__REPORT__in__RP__ACK_template();
SMS__SUBMIT__REPORT__in__RP__ACK_template& operator=(template_sel other_value);
SMS__SUBMIT__REPORT__in__RP__ACK_template& operator=(const SMS__SUBMIT__REPORT__in__RP__ACK& other_value);
SMS__SUBMIT__REPORT__in__RP__ACK_template& operator=(const OPTIONAL<SMS__SUBMIT__REPORT__in__RP__ACK>& other_value);
SMS__SUBMIT__REPORT__in__RP__ACK_template& operator=(const SMS__SUBMIT__REPORT__in__RP__ACK_template& other_value);
boolean match(const SMS__SUBMIT__REPORT__in__RP__ACK& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SMS__SUBMIT__REPORT__in__RP__ACK valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__SUBMIT__REPORT__in__RP__ACK_template& list_item(unsigned int list_index) const;
BITSTRING_template& tP__MTI();
const BITSTRING_template& tP__MTI() const;
BITSTRING_template& tP__Spare1();
const BITSTRING_template& tP__Spare1() const;
BITSTRING_template& tP__UDHI();
const BITSTRING_template& tP__UDHI() const;
BITSTRING_template& tP__Spare2();
const BITSTRING_template& tP__Spare2() const;
BITSTRING_template& tP__PresenceBitTP__PID();
const BITSTRING_template& tP__PresenceBitTP__PID() const;
BITSTRING_template& tP__PresenceBitTP__DCS();
const BITSTRING_template& tP__PresenceBitTP__DCS() const;
BITSTRING_template& tP__PresenceBitTP__UDL();
const BITSTRING_template& tP__PresenceBitTP__UDL() const;
BITSTRING_template& tP__Reserved();
const BITSTRING_template& tP__Reserved() const;
BITSTRING_template& tP__ExtensionBit();
const BITSTRING_template& tP__ExtensionBit() const;
OCTETSTRING_template& tP__SCTS();
const OCTETSTRING_template& tP__SCTS() const;
OCTETSTRING_template& tP__PID();
const OCTETSTRING_template& tP__PID() const;
OCTETSTRING_template& tP__DCS();
const OCTETSTRING_template& tP__DCS() const;
TP__UDL__UD_template& tP__UDL__UD();
const TP__UDL__UD_template& tP__UDL__UD() const;
int size_of() const;
void log() const;
void log_match(const SMS__SUBMIT__REPORT__in__RP__ACK& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__ACK__User__DataTLV__SGSN__MS : public Base_Type {
  BITSTRING field_rP__Spare;
  BITSTRING field_rP__UserDataIEI;
  INTEGER field_rP__LengthIndicator;
  TPDU__RP__ACK__SGSN__MS field_rP__TPDU;
public:
  RP__ACK__User__DataTLV__SGSN__MS();
  RP__ACK__User__DataTLV__SGSN__MS(const BITSTRING& par_rP__Spare,
    const BITSTRING& par_rP__UserDataIEI,
    const INTEGER& par_rP__LengthIndicator,
    const TPDU__RP__ACK__SGSN__MS& par_rP__TPDU);
  RP__ACK__User__DataTLV__SGSN__MS(const RP__ACK__User__DataTLV__SGSN__MS& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__ACK__User__DataTLV__SGSN__MS& operator=(const RP__ACK__User__DataTLV__SGSN__MS& other_value);
  boolean operator==(const RP__ACK__User__DataTLV__SGSN__MS& other_value) const;
  inline boolean operator!=(const RP__ACK__User__DataTLV__SGSN__MS& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rP__Spare()
    {return field_rP__Spare;}
  inline const BITSTRING& rP__Spare() const
    {return field_rP__Spare;}
  inline BITSTRING& rP__UserDataIEI()
    {return field_rP__UserDataIEI;}
  inline const BITSTRING& rP__UserDataIEI() const
    {return field_rP__UserDataIEI;}
  inline INTEGER& rP__LengthIndicator()
    {return field_rP__LengthIndicator;}
  inline const INTEGER& rP__LengthIndicator() const
    {return field_rP__LengthIndicator;}
  inline TPDU__RP__ACK__SGSN__MS& rP__TPDU()
    {return field_rP__TPDU;}
  inline const TPDU__RP__ACK__SGSN__MS& rP__TPDU() const
    {return field_rP__TPDU;}
  inline int size_of() const
    {return 4;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__ACK__User__DataTLV__SGSN__MS_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__ACK__User__DataTLV__SGSN__MS_template *list_value;
} value_list;
struct {
RP__ACK__User__DataTLV__SGSN__MS_template* precondition;
RP__ACK__User__DataTLV__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<RP__ACK__User__DataTLV__SGSN__MS>* dyn_match;
};

void set_specific();
void copy_value(const RP__ACK__User__DataTLV__SGSN__MS& other_value);
void copy_template(const RP__ACK__User__DataTLV__SGSN__MS_template& other_value);

public:
RP__ACK__User__DataTLV__SGSN__MS_template();
RP__ACK__User__DataTLV__SGSN__MS_template(template_sel other_value);
RP__ACK__User__DataTLV__SGSN__MS_template(const RP__ACK__User__DataTLV__SGSN__MS& other_value);
RP__ACK__User__DataTLV__SGSN__MS_template(const OPTIONAL<RP__ACK__User__DataTLV__SGSN__MS>& other_value);
RP__ACK__User__DataTLV__SGSN__MS_template(RP__ACK__User__DataTLV__SGSN__MS_template* p_precondition, RP__ACK__User__DataTLV__SGSN__MS_template* p_implied_template);
RP__ACK__User__DataTLV__SGSN__MS_template(Dynamic_Match_Interface<RP__ACK__User__DataTLV__SGSN__MS>* p_dyn_match);
RP__ACK__User__DataTLV__SGSN__MS_template(const RP__ACK__User__DataTLV__SGSN__MS_template& other_value);
~RP__ACK__User__DataTLV__SGSN__MS_template();
RP__ACK__User__DataTLV__SGSN__MS_template& operator=(template_sel other_value);
RP__ACK__User__DataTLV__SGSN__MS_template& operator=(const RP__ACK__User__DataTLV__SGSN__MS& other_value);
RP__ACK__User__DataTLV__SGSN__MS_template& operator=(const OPTIONAL<RP__ACK__User__DataTLV__SGSN__MS>& other_value);
RP__ACK__User__DataTLV__SGSN__MS_template& operator=(const RP__ACK__User__DataTLV__SGSN__MS_template& other_value);
boolean match(const RP__ACK__User__DataTLV__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__ACK__User__DataTLV__SGSN__MS valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__ACK__User__DataTLV__SGSN__MS_template& list_item(unsigned int list_index) const;
BITSTRING_template& rP__Spare();
const BITSTRING_template& rP__Spare() const;
BITSTRING_template& rP__UserDataIEI();
const BITSTRING_template& rP__UserDataIEI() const;
INTEGER_template& rP__LengthIndicator();
const INTEGER_template& rP__LengthIndicator() const;
TPDU__RP__ACK__SGSN__MS_template& rP__TPDU();
const TPDU__RP__ACK__SGSN__MS_template& rP__TPDU() const;
int size_of() const;
void log() const;
void log_match(const RP__ACK__User__DataTLV__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__ERROR__SGSN__MS : public Base_Type {
  BITSTRING field_rP__MTI;
  BITSTRING field_rP__Spare;
  OCTETSTRING field_rP__Message__Reference;
  RP__CauseLV field_rP__CauseLV;
  OPTIONAL< RP__ERROR__User__DataTLV__SGSN__MS > field_rP__User__Data;
public:
  RP__ERROR__SGSN__MS();
  RP__ERROR__SGSN__MS(const BITSTRING& par_rP__MTI,
    const BITSTRING& par_rP__Spare,
    const OCTETSTRING& par_rP__Message__Reference,
    const RP__CauseLV& par_rP__CauseLV,
    const OPTIONAL< RP__ERROR__User__DataTLV__SGSN__MS >& par_rP__User__Data);
  RP__ERROR__SGSN__MS(const RP__ERROR__SGSN__MS& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__ERROR__SGSN__MS& operator=(const RP__ERROR__SGSN__MS& other_value);
  boolean operator==(const RP__ERROR__SGSN__MS& other_value) const;
  inline boolean operator!=(const RP__ERROR__SGSN__MS& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rP__MTI()
    {return field_rP__MTI;}
  inline const BITSTRING& rP__MTI() const
    {return field_rP__MTI;}
  inline BITSTRING& rP__Spare()
    {return field_rP__Spare;}
  inline const BITSTRING& rP__Spare() const
    {return field_rP__Spare;}
  inline OCTETSTRING& rP__Message__Reference()
    {return field_rP__Message__Reference;}
  inline const OCTETSTRING& rP__Message__Reference() const
    {return field_rP__Message__Reference;}
  inline RP__CauseLV& rP__CauseLV()
    {return field_rP__CauseLV;}
  inline const RP__CauseLV& rP__CauseLV() const
    {return field_rP__CauseLV;}
  inline OPTIONAL< RP__ERROR__User__DataTLV__SGSN__MS >& rP__User__Data()
    {return field_rP__User__Data;}
  inline const OPTIONAL< RP__ERROR__User__DataTLV__SGSN__MS >& rP__User__Data() const
    {return field_rP__User__Data;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__ERROR__SGSN__MS_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__ERROR__SGSN__MS_template *list_value;
} value_list;
struct {
RP__ERROR__SGSN__MS_template* precondition;
RP__ERROR__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<RP__ERROR__SGSN__MS>* dyn_match;
};

void set_specific();
void copy_value(const RP__ERROR__SGSN__MS& other_value);
void copy_template(const RP__ERROR__SGSN__MS_template& other_value);

public:
RP__ERROR__SGSN__MS_template();
RP__ERROR__SGSN__MS_template(template_sel other_value);
RP__ERROR__SGSN__MS_template(const RP__ERROR__SGSN__MS& other_value);
RP__ERROR__SGSN__MS_template(const OPTIONAL<RP__ERROR__SGSN__MS>& other_value);
RP__ERROR__SGSN__MS_template(RP__ERROR__SGSN__MS_template* p_precondition, RP__ERROR__SGSN__MS_template* p_implied_template);
RP__ERROR__SGSN__MS_template(Dynamic_Match_Interface<RP__ERROR__SGSN__MS>* p_dyn_match);
RP__ERROR__SGSN__MS_template(const RP__ERROR__SGSN__MS_template& other_value);
~RP__ERROR__SGSN__MS_template();
RP__ERROR__SGSN__MS_template& operator=(template_sel other_value);
RP__ERROR__SGSN__MS_template& operator=(const RP__ERROR__SGSN__MS& other_value);
RP__ERROR__SGSN__MS_template& operator=(const OPTIONAL<RP__ERROR__SGSN__MS>& other_value);
RP__ERROR__SGSN__MS_template& operator=(const RP__ERROR__SGSN__MS_template& other_value);
boolean match(const RP__ERROR__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__ERROR__SGSN__MS valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__ERROR__SGSN__MS_template& list_item(unsigned int list_index) const;
BITSTRING_template& rP__MTI();
const BITSTRING_template& rP__MTI() const;
BITSTRING_template& rP__Spare();
const BITSTRING_template& rP__Spare() const;
OCTETSTRING_template& rP__Message__Reference();
const OCTETSTRING_template& rP__Message__Reference() const;
RP__CauseLV_template& rP__CauseLV();
const RP__CauseLV_template& rP__CauseLV() const;
RP__ERROR__User__DataTLV__SGSN__MS_template& rP__User__Data();
const RP__ERROR__User__DataTLV__SGSN__MS_template& rP__User__Data() const;
int size_of() const;
void log() const;
void log_match(const RP__ERROR__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TPDU__RP__ERROR__SGSN__MS : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_sMS__SUBMIT__REPORT = 1 };
private:
union_selection_type union_selection;
union {
SMS__SUBMIT__REPORT__in__RP__ERROR *field_sMS__SUBMIT__REPORT;
};
void copy_value(const TPDU__RP__ERROR__SGSN__MS& other_value);

public:
TPDU__RP__ERROR__SGSN__MS();
TPDU__RP__ERROR__SGSN__MS(const TPDU__RP__ERROR__SGSN__MS& other_value);
~TPDU__RP__ERROR__SGSN__MS();
TPDU__RP__ERROR__SGSN__MS& operator=(const TPDU__RP__ERROR__SGSN__MS& other_value);
boolean operator==(const TPDU__RP__ERROR__SGSN__MS& other_value) const;
inline boolean operator!=(const TPDU__RP__ERROR__SGSN__MS& other_value) const { return !(*this == other_value); }
SMS__SUBMIT__REPORT__in__RP__ERROR& sMS__SUBMIT__REPORT();
const SMS__SUBMIT__REPORT__in__RP__ERROR& sMS__SUBMIT__REPORT() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TPDU__RP__ERROR__SGSN__MS_template : public Base_Template {
union {
struct {
TPDU__RP__ERROR__SGSN__MS::union_selection_type union_selection;
union {
SMS__SUBMIT__REPORT__in__RP__ERROR_template *field_sMS__SUBMIT__REPORT;
};
} single_value;
struct {
unsigned int n_values;
TPDU__RP__ERROR__SGSN__MS_template *list_value;
} value_list;
struct {
TPDU__RP__ERROR__SGSN__MS_template* precondition;
TPDU__RP__ERROR__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<TPDU__RP__ERROR__SGSN__MS>* dyn_match;
};
void copy_value(const TPDU__RP__ERROR__SGSN__MS& other_value);

void copy_template(const TPDU__RP__ERROR__SGSN__MS_template& other_value);

public:
TPDU__RP__ERROR__SGSN__MS_template();
TPDU__RP__ERROR__SGSN__MS_template(template_sel other_value);
TPDU__RP__ERROR__SGSN__MS_template(const TPDU__RP__ERROR__SGSN__MS& other_value);
TPDU__RP__ERROR__SGSN__MS_template(const OPTIONAL<TPDU__RP__ERROR__SGSN__MS>& other_value);
TPDU__RP__ERROR__SGSN__MS_template(TPDU__RP__ERROR__SGSN__MS_template* p_precondition, TPDU__RP__ERROR__SGSN__MS_template* p_implied_template);
TPDU__RP__ERROR__SGSN__MS_template(Dynamic_Match_Interface<TPDU__RP__ERROR__SGSN__MS>* p_dyn_match);
TPDU__RP__ERROR__SGSN__MS_template(const TPDU__RP__ERROR__SGSN__MS_template& other_value);
~TPDU__RP__ERROR__SGSN__MS_template();
void clean_up();
TPDU__RP__ERROR__SGSN__MS_template& operator=(template_sel other_value);
TPDU__RP__ERROR__SGSN__MS_template& operator=(const TPDU__RP__ERROR__SGSN__MS& other_value);
TPDU__RP__ERROR__SGSN__MS_template& operator=(const OPTIONAL<TPDU__RP__ERROR__SGSN__MS>& other_value);
TPDU__RP__ERROR__SGSN__MS_template& operator=(const TPDU__RP__ERROR__SGSN__MS_template& other_value);
boolean match(const TPDU__RP__ERROR__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_value() const;TPDU__RP__ERROR__SGSN__MS valueof() const;
TPDU__RP__ERROR__SGSN__MS_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__SUBMIT__REPORT__in__RP__ERROR_template& sMS__SUBMIT__REPORT();
const SMS__SUBMIT__REPORT__in__RP__ERROR_template& sMS__SUBMIT__REPORT() const;
boolean ischosen(TPDU__RP__ERROR__SGSN__MS::union_selection_type checked_selection) const;
void log() const;
void log_match(const TPDU__RP__ERROR__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class SMS__SUBMIT__REPORT__in__RP__ERROR : public Base_Type {
  BITSTRING field_tP__MTI;
  BITSTRING field_tP__Spare1;
  BITSTRING field_tP__UDHI;
  BITSTRING field_tP__Spare2;
  OCTETSTRING field_tP__FCS;
  BITSTRING field_tP__PresenceBitTP__PID;
  BITSTRING field_tP__PresenceBitTP__DCS;
  BITSTRING field_tP__PresenceBitTP__UDL;
  BITSTRING field_tP__Reserved;
  BITSTRING field_tP__ExtensionBit;
  OCTETSTRING field_tP__SCTS;
  OPTIONAL< OCTETSTRING > field_tP__PID;
  OPTIONAL< OCTETSTRING > field_tP__DCS;
  OPTIONAL< TP__UDL__UD > field_tP__UDL__UD;
public:
  SMS__SUBMIT__REPORT__in__RP__ERROR();
  SMS__SUBMIT__REPORT__in__RP__ERROR(const BITSTRING& par_tP__MTI,
    const BITSTRING& par_tP__Spare1,
    const BITSTRING& par_tP__UDHI,
    const BITSTRING& par_tP__Spare2,
    const OCTETSTRING& par_tP__FCS,
    const BITSTRING& par_tP__PresenceBitTP__PID,
    const BITSTRING& par_tP__PresenceBitTP__DCS,
    const BITSTRING& par_tP__PresenceBitTP__UDL,
    const BITSTRING& par_tP__Reserved,
    const BITSTRING& par_tP__ExtensionBit,
    const OCTETSTRING& par_tP__SCTS,
    const OPTIONAL< OCTETSTRING >& par_tP__PID,
    const OPTIONAL< OCTETSTRING >& par_tP__DCS,
    const OPTIONAL< TP__UDL__UD >& par_tP__UDL__UD);
  SMS__SUBMIT__REPORT__in__RP__ERROR(const SMS__SUBMIT__REPORT__in__RP__ERROR& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SMS__SUBMIT__REPORT__in__RP__ERROR& operator=(const SMS__SUBMIT__REPORT__in__RP__ERROR& other_value);
  boolean operator==(const SMS__SUBMIT__REPORT__in__RP__ERROR& other_value) const;
  inline boolean operator!=(const SMS__SUBMIT__REPORT__in__RP__ERROR& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& tP__MTI()
    {return field_tP__MTI;}
  inline const BITSTRING& tP__MTI() const
    {return field_tP__MTI;}
  inline BITSTRING& tP__Spare1()
    {return field_tP__Spare1;}
  inline const BITSTRING& tP__Spare1() const
    {return field_tP__Spare1;}
  inline BITSTRING& tP__UDHI()
    {return field_tP__UDHI;}
  inline const BITSTRING& tP__UDHI() const
    {return field_tP__UDHI;}
  inline BITSTRING& tP__Spare2()
    {return field_tP__Spare2;}
  inline const BITSTRING& tP__Spare2() const
    {return field_tP__Spare2;}
  inline OCTETSTRING& tP__FCS()
    {return field_tP__FCS;}
  inline const OCTETSTRING& tP__FCS() const
    {return field_tP__FCS;}
  inline BITSTRING& tP__PresenceBitTP__PID()
    {return field_tP__PresenceBitTP__PID;}
  inline const BITSTRING& tP__PresenceBitTP__PID() const
    {return field_tP__PresenceBitTP__PID;}
  inline BITSTRING& tP__PresenceBitTP__DCS()
    {return field_tP__PresenceBitTP__DCS;}
  inline const BITSTRING& tP__PresenceBitTP__DCS() const
    {return field_tP__PresenceBitTP__DCS;}
  inline BITSTRING& tP__PresenceBitTP__UDL()
    {return field_tP__PresenceBitTP__UDL;}
  inline const BITSTRING& tP__PresenceBitTP__UDL() const
    {return field_tP__PresenceBitTP__UDL;}
  inline BITSTRING& tP__Reserved()
    {return field_tP__Reserved;}
  inline const BITSTRING& tP__Reserved() const
    {return field_tP__Reserved;}
  inline BITSTRING& tP__ExtensionBit()
    {return field_tP__ExtensionBit;}
  inline const BITSTRING& tP__ExtensionBit() const
    {return field_tP__ExtensionBit;}
  inline OCTETSTRING& tP__SCTS()
    {return field_tP__SCTS;}
  inline const OCTETSTRING& tP__SCTS() const
    {return field_tP__SCTS;}
  inline OPTIONAL< OCTETSTRING >& tP__PID()
    {return field_tP__PID;}
  inline const OPTIONAL< OCTETSTRING >& tP__PID() const
    {return field_tP__PID;}
  inline OPTIONAL< OCTETSTRING >& tP__DCS()
    {return field_tP__DCS;}
  inline const OPTIONAL< OCTETSTRING >& tP__DCS() const
    {return field_tP__DCS;}
  inline OPTIONAL< TP__UDL__UD >& tP__UDL__UD()
    {return field_tP__UDL__UD;}
  inline const OPTIONAL< TP__UDL__UD >& tP__UDL__UD() const
    {return field_tP__UDL__UD;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class SMS__SUBMIT__REPORT__in__RP__ERROR_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SMS__SUBMIT__REPORT__in__RP__ERROR_template *list_value;
} value_list;
struct {
SMS__SUBMIT__REPORT__in__RP__ERROR_template* precondition;
SMS__SUBMIT__REPORT__in__RP__ERROR_template* implied_template;
} implication_;
dynmatch_struct<SMS__SUBMIT__REPORT__in__RP__ERROR>* dyn_match;
};

void set_specific();
void copy_value(const SMS__SUBMIT__REPORT__in__RP__ERROR& other_value);
void copy_template(const SMS__SUBMIT__REPORT__in__RP__ERROR_template& other_value);

public:
SMS__SUBMIT__REPORT__in__RP__ERROR_template();
SMS__SUBMIT__REPORT__in__RP__ERROR_template(template_sel other_value);
SMS__SUBMIT__REPORT__in__RP__ERROR_template(const SMS__SUBMIT__REPORT__in__RP__ERROR& other_value);
SMS__SUBMIT__REPORT__in__RP__ERROR_template(const OPTIONAL<SMS__SUBMIT__REPORT__in__RP__ERROR>& other_value);
SMS__SUBMIT__REPORT__in__RP__ERROR_template(SMS__SUBMIT__REPORT__in__RP__ERROR_template* p_precondition, SMS__SUBMIT__REPORT__in__RP__ERROR_template* p_implied_template);
SMS__SUBMIT__REPORT__in__RP__ERROR_template(Dynamic_Match_Interface<SMS__SUBMIT__REPORT__in__RP__ERROR>* p_dyn_match);
SMS__SUBMIT__REPORT__in__RP__ERROR_template(const SMS__SUBMIT__REPORT__in__RP__ERROR_template& other_value);
~SMS__SUBMIT__REPORT__in__RP__ERROR_template();
SMS__SUBMIT__REPORT__in__RP__ERROR_template& operator=(template_sel other_value);
SMS__SUBMIT__REPORT__in__RP__ERROR_template& operator=(const SMS__SUBMIT__REPORT__in__RP__ERROR& other_value);
SMS__SUBMIT__REPORT__in__RP__ERROR_template& operator=(const OPTIONAL<SMS__SUBMIT__REPORT__in__RP__ERROR>& other_value);
SMS__SUBMIT__REPORT__in__RP__ERROR_template& operator=(const SMS__SUBMIT__REPORT__in__RP__ERROR_template& other_value);
boolean match(const SMS__SUBMIT__REPORT__in__RP__ERROR& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SMS__SUBMIT__REPORT__in__RP__ERROR valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SMS__SUBMIT__REPORT__in__RP__ERROR_template& list_item(unsigned int list_index) const;
BITSTRING_template& tP__MTI();
const BITSTRING_template& tP__MTI() const;
BITSTRING_template& tP__Spare1();
const BITSTRING_template& tP__Spare1() const;
BITSTRING_template& tP__UDHI();
const BITSTRING_template& tP__UDHI() const;
BITSTRING_template& tP__Spare2();
const BITSTRING_template& tP__Spare2() const;
OCTETSTRING_template& tP__FCS();
const OCTETSTRING_template& tP__FCS() const;
BITSTRING_template& tP__PresenceBitTP__PID();
const BITSTRING_template& tP__PresenceBitTP__PID() const;
BITSTRING_template& tP__PresenceBitTP__DCS();
const BITSTRING_template& tP__PresenceBitTP__DCS() const;
BITSTRING_template& tP__PresenceBitTP__UDL();
const BITSTRING_template& tP__PresenceBitTP__UDL() const;
BITSTRING_template& tP__Reserved();
const BITSTRING_template& tP__Reserved() const;
BITSTRING_template& tP__ExtensionBit();
const BITSTRING_template& tP__ExtensionBit() const;
OCTETSTRING_template& tP__SCTS();
const OCTETSTRING_template& tP__SCTS() const;
OCTETSTRING_template& tP__PID();
const OCTETSTRING_template& tP__PID() const;
OCTETSTRING_template& tP__DCS();
const OCTETSTRING_template& tP__DCS() const;
TP__UDL__UD_template& tP__UDL__UD();
const TP__UDL__UD_template& tP__UDL__UD() const;
int size_of() const;
void log() const;
void log_match(const SMS__SUBMIT__REPORT__in__RP__ERROR& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RP__ERROR__User__DataTLV__SGSN__MS : public Base_Type {
  BITSTRING field_rP__Spare;
  BITSTRING field_rP__UserDataIEI;
  INTEGER field_rP__LengthIndicator;
  TPDU__RP__ERROR__SGSN__MS field_rP__TPDU;
public:
  RP__ERROR__User__DataTLV__SGSN__MS();
  RP__ERROR__User__DataTLV__SGSN__MS(const BITSTRING& par_rP__Spare,
    const BITSTRING& par_rP__UserDataIEI,
    const INTEGER& par_rP__LengthIndicator,
    const TPDU__RP__ERROR__SGSN__MS& par_rP__TPDU);
  RP__ERROR__User__DataTLV__SGSN__MS(const RP__ERROR__User__DataTLV__SGSN__MS& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RP__ERROR__User__DataTLV__SGSN__MS& operator=(const RP__ERROR__User__DataTLV__SGSN__MS& other_value);
  boolean operator==(const RP__ERROR__User__DataTLV__SGSN__MS& other_value) const;
  inline boolean operator!=(const RP__ERROR__User__DataTLV__SGSN__MS& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rP__Spare()
    {return field_rP__Spare;}
  inline const BITSTRING& rP__Spare() const
    {return field_rP__Spare;}
  inline BITSTRING& rP__UserDataIEI()
    {return field_rP__UserDataIEI;}
  inline const BITSTRING& rP__UserDataIEI() const
    {return field_rP__UserDataIEI;}
  inline INTEGER& rP__LengthIndicator()
    {return field_rP__LengthIndicator;}
  inline const INTEGER& rP__LengthIndicator() const
    {return field_rP__LengthIndicator;}
  inline TPDU__RP__ERROR__SGSN__MS& rP__TPDU()
    {return field_rP__TPDU;}
  inline const TPDU__RP__ERROR__SGSN__MS& rP__TPDU() const
    {return field_rP__TPDU;}
  inline int size_of() const
    {return 4;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RP__ERROR__User__DataTLV__SGSN__MS_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RP__ERROR__User__DataTLV__SGSN__MS_template *list_value;
} value_list;
struct {
RP__ERROR__User__DataTLV__SGSN__MS_template* precondition;
RP__ERROR__User__DataTLV__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<RP__ERROR__User__DataTLV__SGSN__MS>* dyn_match;
};

void set_specific();
void copy_value(const RP__ERROR__User__DataTLV__SGSN__MS& other_value);
void copy_template(const RP__ERROR__User__DataTLV__SGSN__MS_template& other_value);

public:
RP__ERROR__User__DataTLV__SGSN__MS_template();
RP__ERROR__User__DataTLV__SGSN__MS_template(template_sel other_value);
RP__ERROR__User__DataTLV__SGSN__MS_template(const RP__ERROR__User__DataTLV__SGSN__MS& other_value);
RP__ERROR__User__DataTLV__SGSN__MS_template(const OPTIONAL<RP__ERROR__User__DataTLV__SGSN__MS>& other_value);
RP__ERROR__User__DataTLV__SGSN__MS_template(RP__ERROR__User__DataTLV__SGSN__MS_template* p_precondition, RP__ERROR__User__DataTLV__SGSN__MS_template* p_implied_template);
RP__ERROR__User__DataTLV__SGSN__MS_template(Dynamic_Match_Interface<RP__ERROR__User__DataTLV__SGSN__MS>* p_dyn_match);
RP__ERROR__User__DataTLV__SGSN__MS_template(const RP__ERROR__User__DataTLV__SGSN__MS_template& other_value);
~RP__ERROR__User__DataTLV__SGSN__MS_template();
RP__ERROR__User__DataTLV__SGSN__MS_template& operator=(template_sel other_value);
RP__ERROR__User__DataTLV__SGSN__MS_template& operator=(const RP__ERROR__User__DataTLV__SGSN__MS& other_value);
RP__ERROR__User__DataTLV__SGSN__MS_template& operator=(const OPTIONAL<RP__ERROR__User__DataTLV__SGSN__MS>& other_value);
RP__ERROR__User__DataTLV__SGSN__MS_template& operator=(const RP__ERROR__User__DataTLV__SGSN__MS_template& other_value);
boolean match(const RP__ERROR__User__DataTLV__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RP__ERROR__User__DataTLV__SGSN__MS valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RP__ERROR__User__DataTLV__SGSN__MS_template& list_item(unsigned int list_index) const;
BITSTRING_template& rP__Spare();
const BITSTRING_template& rP__Spare() const;
BITSTRING_template& rP__UserDataIEI();
const BITSTRING_template& rP__UserDataIEI() const;
INTEGER_template& rP__LengthIndicator();
const INTEGER_template& rP__LengthIndicator() const;
TPDU__RP__ERROR__SGSN__MS_template& rP__TPDU();
const TPDU__RP__ERROR__SGSN__MS_template& rP__TPDU() const;
int size_of() const;
void log() const;
void log_match(const RP__ERROR__User__DataTLV__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class CP__User__DataLV__SGSN__MS : public Base_Type {
  INTEGER field_lengthIndicator;
  RPDU__SGSN__MS field_cP__RPDU;
public:
  CP__User__DataLV__SGSN__MS();
  CP__User__DataLV__SGSN__MS(const INTEGER& par_lengthIndicator,
    const RPDU__SGSN__MS& par_cP__RPDU);
  CP__User__DataLV__SGSN__MS(const CP__User__DataLV__SGSN__MS& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CP__User__DataLV__SGSN__MS& operator=(const CP__User__DataLV__SGSN__MS& other_value);
  boolean operator==(const CP__User__DataLV__SGSN__MS& other_value) const;
  inline boolean operator!=(const CP__User__DataLV__SGSN__MS& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline RPDU__SGSN__MS& cP__RPDU()
    {return field_cP__RPDU;}
  inline const RPDU__SGSN__MS& cP__RPDU() const
    {return field_cP__RPDU;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class CP__User__DataLV__SGSN__MS_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CP__User__DataLV__SGSN__MS_template *list_value;
} value_list;
struct {
CP__User__DataLV__SGSN__MS_template* precondition;
CP__User__DataLV__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<CP__User__DataLV__SGSN__MS>* dyn_match;
};

void set_specific();
void copy_value(const CP__User__DataLV__SGSN__MS& other_value);
void copy_template(const CP__User__DataLV__SGSN__MS_template& other_value);

public:
CP__User__DataLV__SGSN__MS_template();
CP__User__DataLV__SGSN__MS_template(template_sel other_value);
CP__User__DataLV__SGSN__MS_template(const CP__User__DataLV__SGSN__MS& other_value);
CP__User__DataLV__SGSN__MS_template(const OPTIONAL<CP__User__DataLV__SGSN__MS>& other_value);
CP__User__DataLV__SGSN__MS_template(CP__User__DataLV__SGSN__MS_template* p_precondition, CP__User__DataLV__SGSN__MS_template* p_implied_template);
CP__User__DataLV__SGSN__MS_template(Dynamic_Match_Interface<CP__User__DataLV__SGSN__MS>* p_dyn_match);
CP__User__DataLV__SGSN__MS_template(const CP__User__DataLV__SGSN__MS_template& other_value);
~CP__User__DataLV__SGSN__MS_template();
CP__User__DataLV__SGSN__MS_template& operator=(template_sel other_value);
CP__User__DataLV__SGSN__MS_template& operator=(const CP__User__DataLV__SGSN__MS& other_value);
CP__User__DataLV__SGSN__MS_template& operator=(const OPTIONAL<CP__User__DataLV__SGSN__MS>& other_value);
CP__User__DataLV__SGSN__MS_template& operator=(const CP__User__DataLV__SGSN__MS_template& other_value);
boolean match(const CP__User__DataLV__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CP__User__DataLV__SGSN__MS valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CP__User__DataLV__SGSN__MS_template& list_item(unsigned int list_index) const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
RPDU__SGSN__MS_template& cP__RPDU();
const RPDU__SGSN__MS_template& cP__RPDU() const;
int size_of() const;
void log() const;
void log_match(const CP__User__DataLV__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class CP__DATA__SGSN__MS : public Base_Type {
  BITSTRING field_cP__messageType;
  CP__User__DataLV__SGSN__MS field_cP__User__Data;
public:
  CP__DATA__SGSN__MS();
  CP__DATA__SGSN__MS(const BITSTRING& par_cP__messageType,
    const CP__User__DataLV__SGSN__MS& par_cP__User__Data);
  CP__DATA__SGSN__MS(const CP__DATA__SGSN__MS& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CP__DATA__SGSN__MS& operator=(const CP__DATA__SGSN__MS& other_value);
  boolean operator==(const CP__DATA__SGSN__MS& other_value) const;
  inline boolean operator!=(const CP__DATA__SGSN__MS& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& cP__messageType()
    {return field_cP__messageType;}
  inline const BITSTRING& cP__messageType() const
    {return field_cP__messageType;}
  inline CP__User__DataLV__SGSN__MS& cP__User__Data()
    {return field_cP__User__Data;}
  inline const CP__User__DataLV__SGSN__MS& cP__User__Data() const
    {return field_cP__User__Data;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class CP__DATA__SGSN__MS_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CP__DATA__SGSN__MS_template *list_value;
} value_list;
struct {
CP__DATA__SGSN__MS_template* precondition;
CP__DATA__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<CP__DATA__SGSN__MS>* dyn_match;
};

void set_specific();
void copy_value(const CP__DATA__SGSN__MS& other_value);
void copy_template(const CP__DATA__SGSN__MS_template& other_value);

public:
CP__DATA__SGSN__MS_template();
CP__DATA__SGSN__MS_template(template_sel other_value);
CP__DATA__SGSN__MS_template(const CP__DATA__SGSN__MS& other_value);
CP__DATA__SGSN__MS_template(const OPTIONAL<CP__DATA__SGSN__MS>& other_value);
CP__DATA__SGSN__MS_template(CP__DATA__SGSN__MS_template* p_precondition, CP__DATA__SGSN__MS_template* p_implied_template);
CP__DATA__SGSN__MS_template(Dynamic_Match_Interface<CP__DATA__SGSN__MS>* p_dyn_match);
CP__DATA__SGSN__MS_template(const CP__DATA__SGSN__MS_template& other_value);
~CP__DATA__SGSN__MS_template();
CP__DATA__SGSN__MS_template& operator=(template_sel other_value);
CP__DATA__SGSN__MS_template& operator=(const CP__DATA__SGSN__MS& other_value);
CP__DATA__SGSN__MS_template& operator=(const OPTIONAL<CP__DATA__SGSN__MS>& other_value);
CP__DATA__SGSN__MS_template& operator=(const CP__DATA__SGSN__MS_template& other_value);
boolean match(const CP__DATA__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CP__DATA__SGSN__MS valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CP__DATA__SGSN__MS_template& list_item(unsigned int list_index) const;
BITSTRING_template& cP__messageType();
const BITSTRING_template& cP__messageType() const;
CP__User__DataLV__SGSN__MS_template& cP__User__Data();
const CP__User__DataLV__SGSN__MS_template& cP__User__Data() const;
int size_of() const;
void log() const;
void log_match(const CP__DATA__SGSN__MS& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};


/* Function prototypes */

extern void enc__TPDU__RP__DATA__MS__SGSN__fast(const TPDU__RP__DATA__MS__SGSN& pdu, OCTETSTRING& stream);
extern INTEGER dec__TPDU__RP__DATA__MS__SGSN__backtrack(const OCTETSTRING& stream, TPDU__RP__DATA__MS__SGSN& pdu);
extern void enc__TPDU__RP__DATA__SGSN__MS__fast(const TPDU__RP__DATA__SGSN__MS& pdu, OCTETSTRING& stream);
extern INTEGER dec__TPDU__RP__DATA__SGSN__MS__backtrack(const OCTETSTRING& stream, TPDU__RP__DATA__SGSN__MS& pdu);
extern void enc__TPDU__RP__ACK__MS__SGSN__fast(const TPDU__RP__ACK__MS__SGSN& pdu, OCTETSTRING& stream);
extern INTEGER dec__TPDU__RP__ACK__MS__SGSN__backtrack(const OCTETSTRING& stream, TPDU__RP__ACK__MS__SGSN& pdu);
extern void enc__TPDU__RP__ACK__SGSN__MS__fast(const TPDU__RP__ACK__SGSN__MS& pdu, OCTETSTRING& stream);
extern INTEGER dec__TPDU__RP__ACK__SGSN__MS__backtrack(const OCTETSTRING& stream, TPDU__RP__ACK__SGSN__MS& pdu);
extern void enc__TPDU__RP__ERROR__MS__SGSN__fast(const TPDU__RP__ERROR__MS__SGSN& pdu, OCTETSTRING& stream);
extern INTEGER dec__TPDU__RP__ERROR__MS__SGSN__backtrack(const OCTETSTRING& stream, TPDU__RP__ERROR__MS__SGSN& pdu);
extern void enc__TPDU__RP__ERROR__SGSN__MS__fast(const TPDU__RP__ERROR__SGSN__MS& pdu, OCTETSTRING& stream);
extern INTEGER dec__TPDU__RP__ERROR__SGSN__MS__backtrack(const OCTETSTRING& stream, TPDU__RP__ERROR__SGSN__MS& pdu);
extern void enc__RPDU__SGSN__MS__fast(const RPDU__SGSN__MS& pdu, OCTETSTRING& stream);
extern INTEGER dec__RPDU__SGSN__MS__backtrack(const OCTETSTRING& stream, RPDU__SGSN__MS& pdu);
extern void enc__RPDU__MS__SGSN__fast(const RPDU__MS__SGSN& pdu, OCTETSTRING& stream);
extern INTEGER dec__RPDU__MS__SGSN__backtrack(const OCTETSTRING& stream, RPDU__MS__SGSN& pdu);
extern void CP__User__DataLV__MS__SGSN_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CP__User__DataLV__MS__SGSN_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__OriginatorAddressLV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__OriginatorAddressLV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__NumberingPlan__and__NumberDigits_rP__NumberDigits_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__NumberingPlan__and__NumberDigits_rP__NumberDigits_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__NumberingPlan__and__NumberDigits_encoder(const RP__NumberingPlan__and__NumberDigits& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__NumberingPlan__and__NumberDigits_decoder(OCTETSTRING& input_stream, RP__NumberingPlan__and__NumberDigits& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__OriginatorAddressLV_encoder(const RP__OriginatorAddressLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__OriginatorAddressLV_decoder(OCTETSTRING& input_stream, RP__OriginatorAddressLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__DestinationAddressLV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__DestinationAddressLV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__DestinationAddressLV_encoder(const RP__DestinationAddressLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__DestinationAddressLV_decoder(OCTETSTRING& input_stream, RP__DestinationAddressLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__DATA__User__DataLV__MS__SGSN_rP__LengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__DATA__User__DataLV__MS__SGSN_rP__LengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__DA__NoPad_tP__LengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__DA__NoPad_tP__LengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__DA__NoPad_tP__DAValue_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__DA__NoPad_tP__DAValue_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__DA__NoPad_encoder(const TP__DA__NoPad& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__DA__NoPad_decoder(OCTETSTRING& input_stream, TP__DA__NoPad& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__DA_encoder(const TP__DA& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__DA_decoder(OCTETSTRING& input_stream, TP__DA& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__UDL__UD_tP__LengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__UDL__UD_tP__LengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__UDL__UD_tP__UD_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__UDL__UD_tP__UD_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__UDL__UD_encoder(const TP__UDL__UD& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__UDL__UD_decoder(OCTETSTRING& input_stream, TP__UDL__UD& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__VP_encoder(const TP__VP& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__VP_decoder(OCTETSTRING& input_stream, TP__VP& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__SUBMIT_tP__VP_encoder(const TP__VP& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__SUBMIT_tP__VP_decoder(OCTETSTRING& input_stream, TP__VP& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__SUBMIT_encoder(const SMS__SUBMIT& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__SUBMIT_decoder(OCTETSTRING& input_stream, SMS__SUBMIT& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__CDL__CD_tP__CDL_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__CDL__CD_tP__CDL_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__CDL__CD_tP__CD_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__CDL__CD_tP__CD_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__CDL__CD_encoder(const TP__CDL__CD& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__CDL__CD_decoder(OCTETSTRING& input_stream, TP__CDL__CD& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__COMMAND_encoder(const SMS__COMMAND& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__COMMAND_decoder(OCTETSTRING& input_stream, SMS__COMMAND& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TPDU__RP__DATA__MS__SGSN_encoder(const TPDU__RP__DATA__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TPDU__RP__DATA__MS__SGSN_decoder(OCTETSTRING& input_stream, TPDU__RP__DATA__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__DATA__User__DataLV__MS__SGSN_encoder(const RP__DATA__User__DataLV__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__DATA__User__DataLV__MS__SGSN_decoder(OCTETSTRING& input_stream, RP__DATA__User__DataLV__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__DATA__MS__SGSN_encoder(const RP__DATA__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__DATA__MS__SGSN_decoder(OCTETSTRING& input_stream, RP__DATA__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ACK__User__DataTLV__MS__SGSN_rP__Spare_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ACK__User__DataTLV__MS__SGSN_rP__Spare_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ACK__User__DataTLV__MS__SGSN_rP__UserDataIEI_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ACK__User__DataTLV__MS__SGSN_rP__UserDataIEI_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ACK__User__DataTLV__MS__SGSN_rP__LengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ACK__User__DataTLV__MS__SGSN_rP__LengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__DELIVER__REPORT__in__RP__ACK_tP__PID_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__DELIVER__REPORT__in__RP__ACK_tP__PID_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__DELIVER__REPORT__in__RP__ACK_tP__DCS_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__DELIVER__REPORT__in__RP__ACK_tP__DCS_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__DELIVER__REPORT__in__RP__ACK_tP__UDL__UD_encoder(const TP__UDL__UD& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__DELIVER__REPORT__in__RP__ACK_tP__UDL__UD_decoder(OCTETSTRING& input_stream, TP__UDL__UD& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__DELIVER__REPORT__in__RP__ACK_encoder(const SMS__DELIVER__REPORT__in__RP__ACK& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__DELIVER__REPORT__in__RP__ACK_decoder(OCTETSTRING& input_stream, SMS__DELIVER__REPORT__in__RP__ACK& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TPDU__RP__ACK__MS__SGSN_encoder(const TPDU__RP__ACK__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TPDU__RP__ACK__MS__SGSN_decoder(OCTETSTRING& input_stream, TPDU__RP__ACK__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ACK__User__DataTLV__MS__SGSN_encoder(const RP__ACK__User__DataTLV__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ACK__User__DataTLV__MS__SGSN_decoder(OCTETSTRING& input_stream, RP__ACK__User__DataTLV__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ACK__MS__SGSN_encoder(const RP__ACK__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ACK__MS__SGSN_decoder(OCTETSTRING& input_stream, RP__ACK__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__CauseLV_rP__LengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__CauseLV_rP__LengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__CauseV_encoder(const RP__CauseV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__CauseV_decoder(OCTETSTRING& input_stream, RP__CauseV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__CauseLV_encoder(const RP__CauseLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__CauseLV_decoder(OCTETSTRING& input_stream, RP__CauseLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ERROR__User__DataTLV__MS__SGSN_rP__Spare_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ERROR__User__DataTLV__MS__SGSN_rP__Spare_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ERROR__User__DataTLV__MS__SGSN_rP__UserDataIEI_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ERROR__User__DataTLV__MS__SGSN_rP__UserDataIEI_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ERROR__User__DataTLV__MS__SGSN_rP__LengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ERROR__User__DataTLV__MS__SGSN_rP__LengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__DELIVER__REPORT__in__RP__ERROR_tP__PID_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__DELIVER__REPORT__in__RP__ERROR_tP__PID_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__DELIVER__REPORT__in__RP__ERROR_tP__DCS_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__DELIVER__REPORT__in__RP__ERROR_tP__DCS_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__DELIVER__REPORT__in__RP__ERROR_tP__UDL__UD_encoder(const TP__UDL__UD& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__DELIVER__REPORT__in__RP__ERROR_tP__UDL__UD_decoder(OCTETSTRING& input_stream, TP__UDL__UD& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__DELIVER__REPORT__in__RP__ERROR_encoder(const SMS__DELIVER__REPORT__in__RP__ERROR& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__DELIVER__REPORT__in__RP__ERROR_decoder(OCTETSTRING& input_stream, SMS__DELIVER__REPORT__in__RP__ERROR& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TPDU__RP__ERROR__MS__SGSN_encoder(const TPDU__RP__ERROR__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TPDU__RP__ERROR__MS__SGSN_decoder(OCTETSTRING& input_stream, TPDU__RP__ERROR__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ERROR__User__DataTLV__MS__SGSN_encoder(const RP__ERROR__User__DataTLV__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ERROR__User__DataTLV__MS__SGSN_decoder(OCTETSTRING& input_stream, RP__ERROR__User__DataTLV__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ERROR__MS__SGSN_encoder(const RP__ERROR__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ERROR__MS__SGSN_decoder(OCTETSTRING& input_stream, RP__ERROR__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__SMMA_encoder(const RP__SMMA& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__SMMA_decoder(OCTETSTRING& input_stream, RP__SMMA& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RPDU__MS__SGSN_encoder(const RPDU__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RPDU__MS__SGSN_decoder(OCTETSTRING& input_stream, RPDU__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void CP__User__DataLV__MS__SGSN_encoder(const CP__User__DataLV__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CP__User__DataLV__MS__SGSN_decoder(OCTETSTRING& input_stream, CP__User__DataLV__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void CP__DATA__MS__SGSN_encoder(const CP__DATA__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CP__DATA__MS__SGSN_decoder(OCTETSTRING& input_stream, CP__DATA__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void CP__ACK_encoder(const CP__ACK& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CP__ACK_decoder(OCTETSTRING& input_stream, CP__ACK& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void CP__CauseV_encoder(const CP__CauseV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CP__CauseV_decoder(OCTETSTRING& input_stream, CP__CauseV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void CP__ERROR_encoder(const CP__ERROR& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CP__ERROR_decoder(OCTETSTRING& input_stream, CP__ERROR& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__SMS__MS__SGSN_encoder(const L3__SMS__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__SMS__MS__SGSN_decoder(OCTETSTRING& input_stream, L3__SMS__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void CP__User__DataLV__SGSN__MS_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CP__User__DataLV__SGSN__MS_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__DATA__User__DataLV__SGSN__MS_rP__LengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__DATA__User__DataLV__SGSN__MS_rP__LengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__OA__NoPad_tP__LengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__OA__NoPad_tP__LengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__OA__NoPad_tP__OAValue_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__OA__NoPad_tP__OAValue_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__OA__NoPad_encoder(const TP__OA__NoPad& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__OA__NoPad_decoder(OCTETSTRING& input_stream, TP__OA__NoPad& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__OA_encoder(const TP__OA& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__OA_decoder(OCTETSTRING& input_stream, TP__OA& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__DELIVER_encoder(const SMS__DELIVER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__DELIVER_decoder(OCTETSTRING& input_stream, SMS__DELIVER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__RA__NoPad_tP__LengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__RA__NoPad_tP__LengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__RA__NoPad_tP__RAValue_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__RA__NoPad_tP__RAValue_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__RA__NoPad_encoder(const TP__RA__NoPad& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__RA__NoPad_decoder(OCTETSTRING& input_stream, TP__RA__NoPad& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TP__RA_encoder(const TP__RA& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TP__RA_decoder(OCTETSTRING& input_stream, TP__RA& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__STATUS__REPORT_tP__PID_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__STATUS__REPORT_tP__PID_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__STATUS__REPORT_tP__DCS_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__STATUS__REPORT_tP__DCS_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__STATUS__REPORT_tP__UDL__UD_encoder(const TP__UDL__UD& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__STATUS__REPORT_tP__UDL__UD_decoder(OCTETSTRING& input_stream, TP__UDL__UD& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__STATUS__REPORT_encoder(const SMS__STATUS__REPORT& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__STATUS__REPORT_decoder(OCTETSTRING& input_stream, SMS__STATUS__REPORT& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TPDU__RP__DATA__SGSN__MS_encoder(const TPDU__RP__DATA__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TPDU__RP__DATA__SGSN__MS_decoder(OCTETSTRING& input_stream, TPDU__RP__DATA__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__DATA__User__DataLV__SGSN__MS_encoder(const RP__DATA__User__DataLV__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__DATA__User__DataLV__SGSN__MS_decoder(OCTETSTRING& input_stream, RP__DATA__User__DataLV__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__DATA__SGSN__MS_encoder(const RP__DATA__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__DATA__SGSN__MS_decoder(OCTETSTRING& input_stream, RP__DATA__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ACK__User__DataTLV__SGSN__MS_rP__Spare_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ACK__User__DataTLV__SGSN__MS_rP__Spare_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ACK__User__DataTLV__SGSN__MS_rP__UserDataIEI_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ACK__User__DataTLV__SGSN__MS_rP__UserDataIEI_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ACK__User__DataTLV__SGSN__MS_rP__LengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ACK__User__DataTLV__SGSN__MS_rP__LengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__SUBMIT__REPORT__in__RP__ACK_tP__PID_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__SUBMIT__REPORT__in__RP__ACK_tP__PID_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__SUBMIT__REPORT__in__RP__ACK_tP__DCS_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__SUBMIT__REPORT__in__RP__ACK_tP__DCS_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__SUBMIT__REPORT__in__RP__ACK_tP__UDL__UD_encoder(const TP__UDL__UD& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__SUBMIT__REPORT__in__RP__ACK_tP__UDL__UD_decoder(OCTETSTRING& input_stream, TP__UDL__UD& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__SUBMIT__REPORT__in__RP__ACK_encoder(const SMS__SUBMIT__REPORT__in__RP__ACK& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__SUBMIT__REPORT__in__RP__ACK_decoder(OCTETSTRING& input_stream, SMS__SUBMIT__REPORT__in__RP__ACK& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TPDU__RP__ACK__SGSN__MS_encoder(const TPDU__RP__ACK__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TPDU__RP__ACK__SGSN__MS_decoder(OCTETSTRING& input_stream, TPDU__RP__ACK__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ACK__User__DataTLV__SGSN__MS_encoder(const RP__ACK__User__DataTLV__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ACK__User__DataTLV__SGSN__MS_decoder(OCTETSTRING& input_stream, RP__ACK__User__DataTLV__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ACK__SGSN__MS_encoder(const RP__ACK__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ACK__SGSN__MS_decoder(OCTETSTRING& input_stream, RP__ACK__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ERROR__User__DataTLV__SGSN__MS_rP__Spare_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ERROR__User__DataTLV__SGSN__MS_rP__Spare_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ERROR__User__DataTLV__SGSN__MS_rP__UserDataIEI_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ERROR__User__DataTLV__SGSN__MS_rP__UserDataIEI_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ERROR__User__DataTLV__SGSN__MS_rP__LengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ERROR__User__DataTLV__SGSN__MS_rP__LengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PID_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PID_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__SUBMIT__REPORT__in__RP__ERROR_tP__DCS_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__SUBMIT__REPORT__in__RP__ERROR_tP__DCS_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__SUBMIT__REPORT__in__RP__ERROR_tP__UDL__UD_encoder(const TP__UDL__UD& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__SUBMIT__REPORT__in__RP__ERROR_tP__UDL__UD_decoder(OCTETSTRING& input_stream, TP__UDL__UD& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SMS__SUBMIT__REPORT__in__RP__ERROR_encoder(const SMS__SUBMIT__REPORT__in__RP__ERROR& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SMS__SUBMIT__REPORT__in__RP__ERROR_decoder(OCTETSTRING& input_stream, SMS__SUBMIT__REPORT__in__RP__ERROR& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TPDU__RP__ERROR__SGSN__MS_encoder(const TPDU__RP__ERROR__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TPDU__RP__ERROR__SGSN__MS_decoder(OCTETSTRING& input_stream, TPDU__RP__ERROR__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ERROR__User__DataTLV__SGSN__MS_encoder(const RP__ERROR__User__DataTLV__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ERROR__User__DataTLV__SGSN__MS_decoder(OCTETSTRING& input_stream, RP__ERROR__User__DataTLV__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RP__ERROR__SGSN__MS_encoder(const RP__ERROR__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RP__ERROR__SGSN__MS_decoder(OCTETSTRING& input_stream, RP__ERROR__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RPDU__SGSN__MS_encoder(const RPDU__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RPDU__SGSN__MS_decoder(OCTETSTRING& input_stream, RPDU__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void CP__User__DataLV__SGSN__MS_encoder(const CP__User__DataLV__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CP__User__DataLV__SGSN__MS_decoder(OCTETSTRING& input_stream, CP__User__DataLV__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void CP__DATA__SGSN__MS_encoder(const CP__DATA__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CP__DATA__SGSN__MS_decoder(OCTETSTRING& input_stream, CP__DATA__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__SMS__SGSN__MS_encoder(const L3__SMS__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__SMS__SGSN__MS_decoder(OCTETSTRING& input_stream, L3__SMS__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void pre_init_module();
extern void post_init_module();

/* Global variable declarations */

extern const TTCN_RAWdescriptor_t L3__SMS__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t L3__SMS__MS__SGSN_descr_;
extern const XERdescriptor_t CP__DATA__MS__SGSN_cP__messageType_xer_;
extern const TTCN_OERdescriptor_t CP__DATA__MS__SGSN_cP__messageType_oer_;
extern const TTCN_Typedescriptor_t CP__DATA__MS__SGSN_cP__messageType_descr_;
extern UNIVERSAL_CHARSTRING CP__DATA__MS__SGSN_cP__messageType_default_coding;
extern const TTCN_RAWdescriptor_t CP__User__DataLV__MS__SGSN_lengthIndicator_raw_;
extern const XERdescriptor_t CP__User__DataLV__MS__SGSN_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t CP__User__DataLV__MS__SGSN_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t CP__User__DataLV__MS__SGSN_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING CP__User__DataLV__MS__SGSN_lengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t RPDU__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t RPDU__MS__SGSN_descr_;
extern const XERdescriptor_t RP__DATA__MS__SGSN_rP__MTI_xer_;
extern const TTCN_OERdescriptor_t RP__DATA__MS__SGSN_rP__MTI_oer_;
extern const TTCN_Typedescriptor_t RP__DATA__MS__SGSN_rP__MTI_descr_;
extern UNIVERSAL_CHARSTRING RP__DATA__MS__SGSN_rP__MTI_default_coding;
extern const XERdescriptor_t RP__DATA__MS__SGSN_rP__Spare_xer_;
extern const TTCN_OERdescriptor_t RP__DATA__MS__SGSN_rP__Spare_oer_;
extern const TTCN_Typedescriptor_t RP__DATA__MS__SGSN_rP__Spare_descr_;
extern UNIVERSAL_CHARSTRING RP__DATA__MS__SGSN_rP__Spare_default_coding;
extern const XERdescriptor_t RP__DATA__MS__SGSN_rP__MessageReference_xer_;
extern const TTCN_OERdescriptor_t RP__DATA__MS__SGSN_rP__MessageReference_oer_;
extern const TTCN_Typedescriptor_t RP__DATA__MS__SGSN_rP__MessageReference_descr_;
extern UNIVERSAL_CHARSTRING RP__DATA__MS__SGSN_rP__MessageReference_default_coding;
extern const TTCN_RAWdescriptor_t RP__OriginatorAddressLV_lengthIndicator_raw_;
extern const XERdescriptor_t RP__OriginatorAddressLV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t RP__OriginatorAddressLV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t RP__OriginatorAddressLV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING RP__OriginatorAddressLV_lengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t RP__OriginatorAddressLV_raw_;
extern const TTCN_Typedescriptor_t RP__OriginatorAddressLV_descr_;
extern const XERdescriptor_t RP__NumberingPlan__and__NumberDigits_rP__NumberingPlanIdentification_xer_;
extern const TTCN_OERdescriptor_t RP__NumberingPlan__and__NumberDigits_rP__NumberingPlanIdentification_oer_;
extern const TTCN_Typedescriptor_t RP__NumberingPlan__and__NumberDigits_rP__NumberingPlanIdentification_descr_;
extern UNIVERSAL_CHARSTRING RP__NumberingPlan__and__NumberDigits_rP__NumberingPlanIdentification_default_coding;
extern const XERdescriptor_t RP__NumberingPlan__and__NumberDigits_rP__TypeOfNumber_xer_;
extern const TTCN_OERdescriptor_t RP__NumberingPlan__and__NumberDigits_rP__TypeOfNumber_oer_;
extern const TTCN_Typedescriptor_t RP__NumberingPlan__and__NumberDigits_rP__TypeOfNumber_descr_;
extern UNIVERSAL_CHARSTRING RP__NumberingPlan__and__NumberDigits_rP__TypeOfNumber_default_coding;
extern const XERdescriptor_t RP__NumberingPlan__and__NumberDigits_rP__Ext_xer_;
extern const TTCN_OERdescriptor_t RP__NumberingPlan__and__NumberDigits_rP__Ext_oer_;
extern const TTCN_Typedescriptor_t RP__NumberingPlan__and__NumberDigits_rP__Ext_descr_;
extern UNIVERSAL_CHARSTRING RP__NumberingPlan__and__NumberDigits_rP__Ext_default_coding;
extern const XERdescriptor_t RP__NumberingPlan__and__NumberDigits_rP__NumberDigits_xer_;
extern const TTCN_Typedescriptor_t RP__NumberingPlan__and__NumberDigits_rP__NumberDigits_descr_;
extern UNIVERSAL_CHARSTRING RP__NumberingPlan__and__NumberDigits_rP__NumberDigits_default_coding;
extern const TTCN_RAWdescriptor_t RP__NumberingPlan__and__NumberDigits_raw_;
extern const TTCN_Typedescriptor_t RP__NumberingPlan__and__NumberDigits_descr_;
extern UNIVERSAL_CHARSTRING RP__NumberingPlan__and__NumberDigits_default_coding;
extern UNIVERSAL_CHARSTRING RP__OriginatorAddressLV_rP__OriginatorAddress_default_coding;
extern UNIVERSAL_CHARSTRING RP__OriginatorAddressLV_default_coding;
extern UNIVERSAL_CHARSTRING RP__DATA__MS__SGSN_rP__OriginatorAddress_default_coding;
extern const TTCN_RAWdescriptor_t RP__DestinationAddressLV_lengthIndicator_raw_;
extern const XERdescriptor_t RP__DestinationAddressLV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t RP__DestinationAddressLV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t RP__DestinationAddressLV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING RP__DestinationAddressLV_lengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t RP__DestinationAddressLV_raw_;
extern const TTCN_Typedescriptor_t RP__DestinationAddressLV_descr_;
extern UNIVERSAL_CHARSTRING RP__DestinationAddressLV_rP__DestinationAddress_default_coding;
extern UNIVERSAL_CHARSTRING RP__DestinationAddressLV_default_coding;
extern UNIVERSAL_CHARSTRING RP__DATA__MS__SGSN_rP__DestinationAddress_default_coding;
extern const TTCN_RAWdescriptor_t RP__DATA__User__DataLV__MS__SGSN_rP__LengthIndicator_raw_;
extern const XERdescriptor_t RP__DATA__User__DataLV__MS__SGSN_rP__LengthIndicator_xer_;
extern const TTCN_OERdescriptor_t RP__DATA__User__DataLV__MS__SGSN_rP__LengthIndicator_oer_;
extern const TTCN_Typedescriptor_t RP__DATA__User__DataLV__MS__SGSN_rP__LengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING RP__DATA__User__DataLV__MS__SGSN_rP__LengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t TPDU__RP__DATA__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t TPDU__RP__DATA__MS__SGSN_descr_;
extern const XERdescriptor_t SMS__SUBMIT_tP__MTI_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT_tP__MTI_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT_tP__MTI_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_tP__MTI_default_coding;
extern const XERdescriptor_t SMS__SUBMIT_tP__RD_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT_tP__RD_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT_tP__RD_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_tP__RD_default_coding;
extern const XERdescriptor_t SMS__SUBMIT_tP__VPF_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT_tP__VPF_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT_tP__VPF_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_tP__VPF_default_coding;
extern const XERdescriptor_t SMS__SUBMIT_tP__SRR_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT_tP__SRR_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT_tP__SRR_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_tP__SRR_default_coding;
extern const XERdescriptor_t SMS__SUBMIT_tP__UDHI_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT_tP__UDHI_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT_tP__UDHI_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_tP__UDHI_default_coding;
extern const XERdescriptor_t SMS__SUBMIT_tP__RP_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT_tP__RP_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT_tP__RP_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_tP__RP_default_coding;
extern const XERdescriptor_t SMS__SUBMIT_tP__MR_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT_tP__MR_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT_tP__MR_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_tP__MR_default_coding;
extern const TTCN_RAWdescriptor_t TP__DA__NoPad_tP__LengthIndicator_raw_;
extern const XERdescriptor_t TP__DA__NoPad_tP__LengthIndicator_xer_;
extern const TTCN_OERdescriptor_t TP__DA__NoPad_tP__LengthIndicator_oer_;
extern const TTCN_Typedescriptor_t TP__DA__NoPad_tP__LengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING TP__DA__NoPad_tP__LengthIndicator_default_coding;
extern const XERdescriptor_t TP__DA__NoPad_tP__NumberingPlanID_xer_;
extern const TTCN_OERdescriptor_t TP__DA__NoPad_tP__NumberingPlanID_oer_;
extern const TTCN_Typedescriptor_t TP__DA__NoPad_tP__NumberingPlanID_descr_;
extern UNIVERSAL_CHARSTRING TP__DA__NoPad_tP__NumberingPlanID_default_coding;
extern const XERdescriptor_t TP__DA__NoPad_tP__TypeOfNumber_xer_;
extern const TTCN_OERdescriptor_t TP__DA__NoPad_tP__TypeOfNumber_oer_;
extern const TTCN_Typedescriptor_t TP__DA__NoPad_tP__TypeOfNumber_descr_;
extern UNIVERSAL_CHARSTRING TP__DA__NoPad_tP__TypeOfNumber_default_coding;
extern const XERdescriptor_t TP__DA__NoPad_tp__Spare_xer_;
extern const TTCN_OERdescriptor_t TP__DA__NoPad_tp__Spare_oer_;
extern const TTCN_Typedescriptor_t TP__DA__NoPad_tp__Spare_descr_;
extern UNIVERSAL_CHARSTRING TP__DA__NoPad_tp__Spare_default_coding;
extern const XERdescriptor_t TP__DA__NoPad_tP__DAValue_xer_;
extern const TTCN_Typedescriptor_t TP__DA__NoPad_tP__DAValue_descr_;
extern UNIVERSAL_CHARSTRING TP__DA__NoPad_tP__DAValue_default_coding;
extern const TTCN_RAWdescriptor_t TP__DA__NoPad_raw_;
extern const TTCN_Typedescriptor_t TP__DA__NoPad_descr_;
extern UNIVERSAL_CHARSTRING TP__DA__NoPad_default_coding;
extern UNIVERSAL_CHARSTRING TP__DA_tP__DA__NoPad_default_coding;
extern const TTCN_RAWdescriptor_t TP__DA_raw_;
extern const TTCN_Typedescriptor_t TP__DA_descr_;
extern UNIVERSAL_CHARSTRING TP__DA_default_coding;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_tP__DA_default_coding;
extern const XERdescriptor_t SMS__SUBMIT_tP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT_tP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT_tP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_tP__PID_default_coding;
extern const XERdescriptor_t TP__DCS_xer_;
extern const TTCN_OERdescriptor_t TP__DCS_oer_;
extern const TTCN_Typedescriptor_t TP__DCS_descr_;
extern UNIVERSAL_CHARSTRING TP__DCS_default_coding;
extern const XERdescriptor_t SMS__SUBMIT_tP__DCS_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT_tP__DCS_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT_tP__DCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_tP__DCS_default_coding;
extern const XERdescriptor_t TP__UDL__UD_tP__LengthIndicator_xer_;
extern const TTCN_Typedescriptor_t TP__UDL__UD_tP__LengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING TP__UDL__UD_tP__LengthIndicator_default_coding;
extern const XERdescriptor_t TP__UDL__UD_tP__UD_xer_;
extern const TTCN_OERdescriptor_t TP__UDL__UD_tP__UD_oer_;
extern const TTCN_Typedescriptor_t TP__UDL__UD_tP__UD_descr_;
extern UNIVERSAL_CHARSTRING TP__UDL__UD_tP__UD_default_coding;
extern const TTCN_RAWdescriptor_t TP__UDL__UD_raw_;
extern const TTCN_Typedescriptor_t TP__UDL__UD_descr_;
extern UNIVERSAL_CHARSTRING TP__UDL__UD_default_coding;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_tP__UDL__UD_default_coding;
extern const TTCN_RAWdescriptor_t SMS__SUBMIT_raw_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT_descr_;
extern const TTCN_RAWdescriptor_t TP__VP_raw_;
extern const TTCN_Typedescriptor_t TP__VP_descr_;
extern const XERdescriptor_t TP__VP_tP__VP__relative__format_xer_;
extern const TTCN_OERdescriptor_t TP__VP_tP__VP__relative__format_oer_;
extern const TTCN_Typedescriptor_t TP__VP_tP__VP__relative__format_descr_;
extern UNIVERSAL_CHARSTRING TP__VP_tP__VP__relative__format_default_coding;
extern const XERdescriptor_t TP__VP_tP__VP__enhanced__format_xer_;
extern const TTCN_OERdescriptor_t TP__VP_tP__VP__enhanced__format_oer_;
extern const TTCN_Typedescriptor_t TP__VP_tP__VP__enhanced__format_descr_;
extern UNIVERSAL_CHARSTRING TP__VP_tP__VP__enhanced__format_default_coding;
extern const XERdescriptor_t TP__VP_tP__VP__absolute__format_xer_;
extern const TTCN_OERdescriptor_t TP__VP_tP__VP__absolute__format_oer_;
extern const TTCN_Typedescriptor_t TP__VP_tP__VP__absolute__format_descr_;
extern UNIVERSAL_CHARSTRING TP__VP_tP__VP__absolute__format_default_coding;
extern UNIVERSAL_CHARSTRING TP__VP_default_coding;
extern const TTCN_RAWdescriptor_t SMS__SUBMIT_tP__VP_raw_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT_tP__VP_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_tP__VP_default_coding;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__DATA__MS__SGSN_sMS__SUBMIT_default_coding;
extern const XERdescriptor_t SMS__COMMAND_tP__MTI_xer_;
extern const TTCN_OERdescriptor_t SMS__COMMAND_tP__MTI_oer_;
extern const TTCN_Typedescriptor_t SMS__COMMAND_tP__MTI_descr_;
extern UNIVERSAL_CHARSTRING SMS__COMMAND_tP__MTI_default_coding;
extern const XERdescriptor_t SMS__COMMAND_tP__Spare1_xer_;
extern const TTCN_OERdescriptor_t SMS__COMMAND_tP__Spare1_oer_;
extern const TTCN_Typedescriptor_t SMS__COMMAND_tP__Spare1_descr_;
extern UNIVERSAL_CHARSTRING SMS__COMMAND_tP__Spare1_default_coding;
extern const XERdescriptor_t SMS__COMMAND_tP__SRR_xer_;
extern const TTCN_OERdescriptor_t SMS__COMMAND_tP__SRR_oer_;
extern const TTCN_Typedescriptor_t SMS__COMMAND_tP__SRR_descr_;
extern UNIVERSAL_CHARSTRING SMS__COMMAND_tP__SRR_default_coding;
extern const XERdescriptor_t SMS__COMMAND_tP__UDHI_xer_;
extern const TTCN_OERdescriptor_t SMS__COMMAND_tP__UDHI_oer_;
extern const TTCN_Typedescriptor_t SMS__COMMAND_tP__UDHI_descr_;
extern UNIVERSAL_CHARSTRING SMS__COMMAND_tP__UDHI_default_coding;
extern const XERdescriptor_t SMS__COMMAND_tP__Spare2_xer_;
extern const TTCN_OERdescriptor_t SMS__COMMAND_tP__Spare2_oer_;
extern const TTCN_Typedescriptor_t SMS__COMMAND_tP__Spare2_descr_;
extern UNIVERSAL_CHARSTRING SMS__COMMAND_tP__Spare2_default_coding;
extern const XERdescriptor_t SMS__COMMAND_tP__MR_xer_;
extern const TTCN_OERdescriptor_t SMS__COMMAND_tP__MR_oer_;
extern const TTCN_Typedescriptor_t SMS__COMMAND_tP__MR_descr_;
extern UNIVERSAL_CHARSTRING SMS__COMMAND_tP__MR_default_coding;
extern const XERdescriptor_t SMS__COMMAND_tP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__COMMAND_tP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__COMMAND_tP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__COMMAND_tP__PID_default_coding;
extern const XERdescriptor_t SMS__COMMAND_tP__CT_xer_;
extern const TTCN_OERdescriptor_t SMS__COMMAND_tP__CT_oer_;
extern const TTCN_Typedescriptor_t SMS__COMMAND_tP__CT_descr_;
extern UNIVERSAL_CHARSTRING SMS__COMMAND_tP__CT_default_coding;
extern const XERdescriptor_t SMS__COMMAND_tP__MN_xer_;
extern const TTCN_OERdescriptor_t SMS__COMMAND_tP__MN_oer_;
extern const TTCN_Typedescriptor_t SMS__COMMAND_tP__MN_descr_;
extern UNIVERSAL_CHARSTRING SMS__COMMAND_tP__MN_default_coding;
extern UNIVERSAL_CHARSTRING SMS__COMMAND_tP__DA_default_coding;
extern const TTCN_RAWdescriptor_t TP__CDL__CD_tP__CDL_raw_;
extern const XERdescriptor_t TP__CDL__CD_tP__CDL_xer_;
extern const TTCN_OERdescriptor_t TP__CDL__CD_tP__CDL_oer_;
extern const TTCN_Typedescriptor_t TP__CDL__CD_tP__CDL_descr_;
extern UNIVERSAL_CHARSTRING TP__CDL__CD_tP__CDL_default_coding;
extern const XERdescriptor_t TP__CDL__CD_tP__CD_xer_;
extern const TTCN_OERdescriptor_t TP__CDL__CD_tP__CD_oer_;
extern const TTCN_Typedescriptor_t TP__CDL__CD_tP__CD_descr_;
extern UNIVERSAL_CHARSTRING TP__CDL__CD_tP__CD_default_coding;
extern const TTCN_RAWdescriptor_t TP__CDL__CD_raw_;
extern const TTCN_Typedescriptor_t TP__CDL__CD_descr_;
extern UNIVERSAL_CHARSTRING TP__CDL__CD_default_coding;
extern UNIVERSAL_CHARSTRING SMS__COMMAND_tP__CDL__CD_default_coding;
extern const TTCN_RAWdescriptor_t SMS__COMMAND_raw_;
extern const TTCN_Typedescriptor_t SMS__COMMAND_descr_;
extern UNIVERSAL_CHARSTRING SMS__COMMAND_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__DATA__MS__SGSN_sMS__COMMAND_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__DATA__MS__SGSN_default_coding;
extern UNIVERSAL_CHARSTRING RP__DATA__User__DataLV__MS__SGSN_rP__TPDU_default_coding;
extern const TTCN_RAWdescriptor_t RP__DATA__User__DataLV__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t RP__DATA__User__DataLV__MS__SGSN_descr_;
extern UNIVERSAL_CHARSTRING RP__DATA__User__DataLV__MS__SGSN_default_coding;
extern UNIVERSAL_CHARSTRING RP__DATA__MS__SGSN_rP__User__Data_default_coding;
extern const TTCN_RAWdescriptor_t RP__DATA__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t RP__DATA__MS__SGSN_descr_;
extern UNIVERSAL_CHARSTRING RP__DATA__MS__SGSN_default_coding;
extern UNIVERSAL_CHARSTRING RPDU__MS__SGSN_rP__DATA__MS__SGSN_default_coding;
extern const XERdescriptor_t RP__ACK__MS__SGSN_rP__MTI_xer_;
extern const TTCN_OERdescriptor_t RP__ACK__MS__SGSN_rP__MTI_oer_;
extern const TTCN_Typedescriptor_t RP__ACK__MS__SGSN_rP__MTI_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__MS__SGSN_rP__MTI_default_coding;
extern const XERdescriptor_t RP__ACK__MS__SGSN_rP__Spare_xer_;
extern const TTCN_OERdescriptor_t RP__ACK__MS__SGSN_rP__Spare_oer_;
extern const TTCN_Typedescriptor_t RP__ACK__MS__SGSN_rP__Spare_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__MS__SGSN_rP__Spare_default_coding;
extern const XERdescriptor_t RP__ACK__MS__SGSN_rP__MessageReference_xer_;
extern const TTCN_OERdescriptor_t RP__ACK__MS__SGSN_rP__MessageReference_oer_;
extern const TTCN_Typedescriptor_t RP__ACK__MS__SGSN_rP__MessageReference_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__MS__SGSN_rP__MessageReference_default_coding;
extern const TTCN_RAWdescriptor_t RP__ACK__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t RP__ACK__MS__SGSN_descr_;
extern const TTCN_RAWdescriptor_t RP__ACK__User__DataTLV__MS__SGSN_rP__Spare_raw_;
extern const XERdescriptor_t RP__ACK__User__DataTLV__MS__SGSN_rP__Spare_xer_;
extern const TTCN_OERdescriptor_t RP__ACK__User__DataTLV__MS__SGSN_rP__Spare_oer_;
extern const TTCN_Typedescriptor_t RP__ACK__User__DataTLV__MS__SGSN_rP__Spare_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__User__DataTLV__MS__SGSN_rP__Spare_default_coding;
extern const TTCN_RAWdescriptor_t RP__ACK__User__DataTLV__MS__SGSN_rP__UserDataIEI_raw_;
extern const XERdescriptor_t RP__ACK__User__DataTLV__MS__SGSN_rP__UserDataIEI_xer_;
extern const TTCN_OERdescriptor_t RP__ACK__User__DataTLV__MS__SGSN_rP__UserDataIEI_oer_;
extern const TTCN_Typedescriptor_t RP__ACK__User__DataTLV__MS__SGSN_rP__UserDataIEI_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__User__DataTLV__MS__SGSN_rP__UserDataIEI_default_coding;
extern const TTCN_RAWdescriptor_t RP__ACK__User__DataTLV__MS__SGSN_rP__LengthIndicator_raw_;
extern const XERdescriptor_t RP__ACK__User__DataTLV__MS__SGSN_rP__LengthIndicator_xer_;
extern const TTCN_OERdescriptor_t RP__ACK__User__DataTLV__MS__SGSN_rP__LengthIndicator_oer_;
extern const TTCN_Typedescriptor_t RP__ACK__User__DataTLV__MS__SGSN_rP__LengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__User__DataTLV__MS__SGSN_rP__LengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t TPDU__RP__ACK__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t TPDU__RP__ACK__MS__SGSN_descr_;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__MTI_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__MTI_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__MTI_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_tP__MTI_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__Spare1_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__Spare1_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__Spare1_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_tP__Spare1_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__UDHI_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__UDHI_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__UDHI_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_tP__UDHI_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__Spare2_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__Spare2_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__Spare2_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_tP__Spare2_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PresenceBitTP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PresenceBitTP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PresenceBitTP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_tP__PresenceBitTP__PID_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PresenceBitTP__DCS_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PresenceBitTP__DCS_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PresenceBitTP__DCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_tP__PresenceBitTP__DCS_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PresenceBitTP__UDL_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PresenceBitTP__UDL_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PresenceBitTP__UDL_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_tP__PresenceBitTP__UDL_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__Reserved_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__Reserved_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__Reserved_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_tP__Reserved_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__ExtensionBit_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__ExtensionBit_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__ExtensionBit_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_tP__ExtensionBit_default_coding;
extern const TTCN_RAWdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_raw_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_descr_;
extern const TTCN_RAWdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PID_raw_;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_tP__PID_default_coding;
extern const TTCN_RAWdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__DCS_raw_;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__DCS_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__DCS_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__DCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_tP__DCS_default_coding;
extern const TTCN_RAWdescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__UDL__UD_raw_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ACK_tP__UDL__UD_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_tP__UDL__UD_default_coding;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ACK_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__ACK__MS__SGSN_sMS__DELIVER__REPORT_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__ACK__MS__SGSN_default_coding;
extern UNIVERSAL_CHARSTRING RP__ACK__User__DataTLV__MS__SGSN_rP__TPDU_default_coding;
extern const TTCN_RAWdescriptor_t RP__ACK__User__DataTLV__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t RP__ACK__User__DataTLV__MS__SGSN_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__User__DataTLV__MS__SGSN_default_coding;
extern UNIVERSAL_CHARSTRING RP__ACK__MS__SGSN_rP__User__Data_default_coding;
extern UNIVERSAL_CHARSTRING RP__ACK__MS__SGSN_default_coding;
extern UNIVERSAL_CHARSTRING RPDU__MS__SGSN_rP__ACK__MS__SGSN_default_coding;
extern const XERdescriptor_t RP__ERROR__MS__SGSN_rP__MTI_xer_;
extern const TTCN_OERdescriptor_t RP__ERROR__MS__SGSN_rP__MTI_oer_;
extern const TTCN_Typedescriptor_t RP__ERROR__MS__SGSN_rP__MTI_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__MS__SGSN_rP__MTI_default_coding;
extern const XERdescriptor_t RP__ERROR__MS__SGSN_rP__Spare_xer_;
extern const TTCN_OERdescriptor_t RP__ERROR__MS__SGSN_rP__Spare_oer_;
extern const TTCN_Typedescriptor_t RP__ERROR__MS__SGSN_rP__Spare_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__MS__SGSN_rP__Spare_default_coding;
extern const XERdescriptor_t RP__ERROR__MS__SGSN_rP__Message__Reference_xer_;
extern const TTCN_OERdescriptor_t RP__ERROR__MS__SGSN_rP__Message__Reference_oer_;
extern const TTCN_Typedescriptor_t RP__ERROR__MS__SGSN_rP__Message__Reference_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__MS__SGSN_rP__Message__Reference_default_coding;
extern const TTCN_RAWdescriptor_t RP__CauseLV_rP__LengthIndicator_raw_;
extern const XERdescriptor_t RP__CauseLV_rP__LengthIndicator_xer_;
extern const TTCN_OERdescriptor_t RP__CauseLV_rP__LengthIndicator_oer_;
extern const TTCN_Typedescriptor_t RP__CauseLV_rP__LengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING RP__CauseLV_rP__LengthIndicator_default_coding;
extern const XERdescriptor_t RP__CauseV_causeValue_xer_;
extern const TTCN_OERdescriptor_t RP__CauseV_causeValue_oer_;
extern const TTCN_Typedescriptor_t RP__CauseV_causeValue_descr_;
extern UNIVERSAL_CHARSTRING RP__CauseV_causeValue_default_coding;
extern const XERdescriptor_t RP__CauseV_ext_xer_;
extern const TTCN_OERdescriptor_t RP__CauseV_ext_oer_;
extern const TTCN_Typedescriptor_t RP__CauseV_ext_descr_;
extern UNIVERSAL_CHARSTRING RP__CauseV_ext_default_coding;
extern const TTCN_RAWdescriptor_t RP__CauseV_raw_;
extern const TTCN_Typedescriptor_t RP__CauseV_descr_;
extern UNIVERSAL_CHARSTRING RP__CauseV_default_coding;
extern UNIVERSAL_CHARSTRING RP__CauseLV_rP__CauseV_default_coding;
extern const TTCN_RAWdescriptor_t RP__CauseLV_raw_;
extern const TTCN_Typedescriptor_t RP__CauseLV_descr_;
extern const XERdescriptor_t RP__CauseLV_rP__diagnisticField_xer_;
extern const TTCN_OERdescriptor_t RP__CauseLV_rP__diagnisticField_oer_;
extern const TTCN_Typedescriptor_t RP__CauseLV_rP__diagnisticField_descr_;
extern UNIVERSAL_CHARSTRING RP__CauseLV_rP__diagnisticField_default_coding;
extern UNIVERSAL_CHARSTRING RP__CauseLV_default_coding;
extern UNIVERSAL_CHARSTRING RP__ERROR__MS__SGSN_rP__CauseLV_default_coding;
extern const TTCN_RAWdescriptor_t RP__ERROR__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t RP__ERROR__MS__SGSN_descr_;
extern const TTCN_RAWdescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_rP__Spare_raw_;
extern const XERdescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_rP__Spare_xer_;
extern const TTCN_OERdescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_rP__Spare_oer_;
extern const TTCN_Typedescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_rP__Spare_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__User__DataTLV__MS__SGSN_rP__Spare_default_coding;
extern const TTCN_RAWdescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_rP__UserDataIEI_raw_;
extern const XERdescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_rP__UserDataIEI_xer_;
extern const TTCN_OERdescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_rP__UserDataIEI_oer_;
extern const TTCN_Typedescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_rP__UserDataIEI_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__User__DataTLV__MS__SGSN_rP__UserDataIEI_default_coding;
extern const TTCN_RAWdescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_rP__LengthIndicator_raw_;
extern const XERdescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_rP__LengthIndicator_xer_;
extern const TTCN_OERdescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_rP__LengthIndicator_oer_;
extern const TTCN_Typedescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_rP__LengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__User__DataTLV__MS__SGSN_rP__LengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t TPDU__RP__ERROR__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t TPDU__RP__ERROR__MS__SGSN_descr_;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__MTI_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__MTI_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__MTI_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__MTI_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__Spare1_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__Spare1_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__Spare1_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__Spare1_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__UDHI_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__UDHI_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__UDHI_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__UDHI_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__Spare2_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__Spare2_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__Spare2_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__Spare2_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__FCS_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__FCS_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__FCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__FCS_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PresenceBitTP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PresenceBitTP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PresenceBitTP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__PresenceBitTP__PID_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PresenceBitTP__DCS_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PresenceBitTP__DCS_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PresenceBitTP__DCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__PresenceBitTP__DCS_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PresenceBitTP__UDL_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PresenceBitTP__UDL_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PresenceBitTP__UDL_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__PresenceBitTP__UDL_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__Reserved_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__Reserved_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__Reserved_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__Reserved_default_coding;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__ExtensionBit_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__ExtensionBit_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__ExtensionBit_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__ExtensionBit_default_coding;
extern const TTCN_RAWdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_raw_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_descr_;
extern const TTCN_RAWdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PID_raw_;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__PID_default_coding;
extern const TTCN_RAWdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__DCS_raw_;
extern const XERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__DCS_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__DCS_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__DCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__DCS_default_coding;
extern const TTCN_RAWdescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__UDL__UD_raw_;
extern const TTCN_Typedescriptor_t SMS__DELIVER__REPORT__in__RP__ERROR_tP__UDL__UD_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_tP__UDL__UD_default_coding;
extern UNIVERSAL_CHARSTRING SMS__DELIVER__REPORT__in__RP__ERROR_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__ERROR__MS__SGSN_sMS__DELIVER__REPORT_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__ERROR__MS__SGSN_default_coding;
extern UNIVERSAL_CHARSTRING RP__ERROR__User__DataTLV__MS__SGSN_rP__TPDU_default_coding;
extern const TTCN_RAWdescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t RP__ERROR__User__DataTLV__MS__SGSN_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__User__DataTLV__MS__SGSN_default_coding;
extern UNIVERSAL_CHARSTRING RP__ERROR__MS__SGSN_rP__User__Data_default_coding;
extern UNIVERSAL_CHARSTRING RP__ERROR__MS__SGSN_default_coding;
extern UNIVERSAL_CHARSTRING RPDU__MS__SGSN_rP__ERROR__MS__SGSN_default_coding;
extern const XERdescriptor_t RP__SMMA_rP__MTI_xer_;
extern const TTCN_OERdescriptor_t RP__SMMA_rP__MTI_oer_;
extern const TTCN_Typedescriptor_t RP__SMMA_rP__MTI_descr_;
extern UNIVERSAL_CHARSTRING RP__SMMA_rP__MTI_default_coding;
extern const XERdescriptor_t RP__SMMA_rP__Spare_xer_;
extern const TTCN_OERdescriptor_t RP__SMMA_rP__Spare_oer_;
extern const TTCN_Typedescriptor_t RP__SMMA_rP__Spare_descr_;
extern UNIVERSAL_CHARSTRING RP__SMMA_rP__Spare_default_coding;
extern const XERdescriptor_t RP__SMMA_rP__MessageReference_xer_;
extern const TTCN_OERdescriptor_t RP__SMMA_rP__MessageReference_oer_;
extern const TTCN_Typedescriptor_t RP__SMMA_rP__MessageReference_descr_;
extern UNIVERSAL_CHARSTRING RP__SMMA_rP__MessageReference_default_coding;
extern const TTCN_RAWdescriptor_t RP__SMMA_raw_;
extern const TTCN_Typedescriptor_t RP__SMMA_descr_;
extern UNIVERSAL_CHARSTRING RP__SMMA_default_coding;
extern UNIVERSAL_CHARSTRING RPDU__MS__SGSN_rP__SMMA_default_coding;
extern UNIVERSAL_CHARSTRING RPDU__MS__SGSN_default_coding;
extern UNIVERSAL_CHARSTRING CP__User__DataLV__MS__SGSN_cP__RPDU_default_coding;
extern const TTCN_RAWdescriptor_t CP__User__DataLV__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t CP__User__DataLV__MS__SGSN_descr_;
extern UNIVERSAL_CHARSTRING CP__User__DataLV__MS__SGSN_default_coding;
extern UNIVERSAL_CHARSTRING CP__DATA__MS__SGSN_cP__User__Data_default_coding;
extern const TTCN_RAWdescriptor_t CP__DATA__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t CP__DATA__MS__SGSN_descr_;
extern UNIVERSAL_CHARSTRING CP__DATA__MS__SGSN_default_coding;
extern UNIVERSAL_CHARSTRING L3__SMS__MS__SGSN_cP__DATA_default_coding;
extern const XERdescriptor_t CP__ACK_cP__messageType_xer_;
extern const TTCN_OERdescriptor_t CP__ACK_cP__messageType_oer_;
extern const TTCN_Typedescriptor_t CP__ACK_cP__messageType_descr_;
extern UNIVERSAL_CHARSTRING CP__ACK_cP__messageType_default_coding;
extern const TTCN_RAWdescriptor_t CP__ACK_raw_;
extern const TTCN_Typedescriptor_t CP__ACK_descr_;
extern UNIVERSAL_CHARSTRING CP__ACK_default_coding;
extern UNIVERSAL_CHARSTRING L3__SMS__MS__SGSN_cP__ACK_default_coding;
extern const XERdescriptor_t CP__ERROR_cP__messageType_xer_;
extern const TTCN_OERdescriptor_t CP__ERROR_cP__messageType_oer_;
extern const TTCN_Typedescriptor_t CP__ERROR_cP__messageType_descr_;
extern UNIVERSAL_CHARSTRING CP__ERROR_cP__messageType_default_coding;
extern const XERdescriptor_t CP__CauseV_causeValue_xer_;
extern const TTCN_OERdescriptor_t CP__CauseV_causeValue_oer_;
extern const TTCN_Typedescriptor_t CP__CauseV_causeValue_descr_;
extern UNIVERSAL_CHARSTRING CP__CauseV_causeValue_default_coding;
extern const TTCN_RAWdescriptor_t CP__CauseV_raw_;
extern const TTCN_Typedescriptor_t CP__CauseV_descr_;
extern UNIVERSAL_CHARSTRING CP__CauseV_default_coding;
extern UNIVERSAL_CHARSTRING CP__ERROR_cP__Cause_default_coding;
extern const TTCN_RAWdescriptor_t CP__ERROR_raw_;
extern const TTCN_Typedescriptor_t CP__ERROR_descr_;
extern UNIVERSAL_CHARSTRING CP__ERROR_default_coding;
extern UNIVERSAL_CHARSTRING L3__SMS__MS__SGSN_cP__ERROR_default_coding;
extern UNIVERSAL_CHARSTRING L3__SMS__MS__SGSN_default_coding;
extern const TTCN_RAWdescriptor_t L3__SMS__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t L3__SMS__SGSN__MS_descr_;
extern const XERdescriptor_t CP__DATA__SGSN__MS_cP__messageType_xer_;
extern const TTCN_OERdescriptor_t CP__DATA__SGSN__MS_cP__messageType_oer_;
extern const TTCN_Typedescriptor_t CP__DATA__SGSN__MS_cP__messageType_descr_;
extern UNIVERSAL_CHARSTRING CP__DATA__SGSN__MS_cP__messageType_default_coding;
extern const TTCN_RAWdescriptor_t CP__User__DataLV__SGSN__MS_lengthIndicator_raw_;
extern const XERdescriptor_t CP__User__DataLV__SGSN__MS_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t CP__User__DataLV__SGSN__MS_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t CP__User__DataLV__SGSN__MS_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING CP__User__DataLV__SGSN__MS_lengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t RPDU__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t RPDU__SGSN__MS_descr_;
extern const XERdescriptor_t RP__DATA__SGSN__MS_rP__MTI_xer_;
extern const TTCN_OERdescriptor_t RP__DATA__SGSN__MS_rP__MTI_oer_;
extern const TTCN_Typedescriptor_t RP__DATA__SGSN__MS_rP__MTI_descr_;
extern UNIVERSAL_CHARSTRING RP__DATA__SGSN__MS_rP__MTI_default_coding;
extern const XERdescriptor_t RP__DATA__SGSN__MS_rP__Spare_xer_;
extern const TTCN_OERdescriptor_t RP__DATA__SGSN__MS_rP__Spare_oer_;
extern const TTCN_Typedescriptor_t RP__DATA__SGSN__MS_rP__Spare_descr_;
extern UNIVERSAL_CHARSTRING RP__DATA__SGSN__MS_rP__Spare_default_coding;
extern const XERdescriptor_t RP__DATA__SGSN__MS_rP__MessageReference_xer_;
extern const TTCN_OERdescriptor_t RP__DATA__SGSN__MS_rP__MessageReference_oer_;
extern const TTCN_Typedescriptor_t RP__DATA__SGSN__MS_rP__MessageReference_descr_;
extern UNIVERSAL_CHARSTRING RP__DATA__SGSN__MS_rP__MessageReference_default_coding;
extern UNIVERSAL_CHARSTRING RP__DATA__SGSN__MS_rP__OriginatorAddress_default_coding;
extern UNIVERSAL_CHARSTRING RP__DATA__SGSN__MS_rP__DestinationAddress_default_coding;
extern const TTCN_RAWdescriptor_t RP__DATA__User__DataLV__SGSN__MS_rP__LengthIndicator_raw_;
extern const XERdescriptor_t RP__DATA__User__DataLV__SGSN__MS_rP__LengthIndicator_xer_;
extern const TTCN_OERdescriptor_t RP__DATA__User__DataLV__SGSN__MS_rP__LengthIndicator_oer_;
extern const TTCN_Typedescriptor_t RP__DATA__User__DataLV__SGSN__MS_rP__LengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING RP__DATA__User__DataLV__SGSN__MS_rP__LengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t TPDU__RP__DATA__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t TPDU__RP__DATA__SGSN__MS_descr_;
extern const XERdescriptor_t SMS__DELIVER_tP__MTI_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER_tP__MTI_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER_tP__MTI_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_tP__MTI_default_coding;
extern const XERdescriptor_t SMS__DELIVER_tP__MMS_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER_tP__MMS_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER_tP__MMS_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_tP__MMS_default_coding;
extern const XERdescriptor_t SMS__DELIVER_tP__LP_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER_tP__LP_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER_tP__LP_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_tP__LP_default_coding;
extern const XERdescriptor_t SMS__DELIVER_tP__Spare_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER_tP__Spare_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER_tP__Spare_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_tP__Spare_default_coding;
extern const XERdescriptor_t SMS__DELIVER_tP__SRI_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER_tP__SRI_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER_tP__SRI_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_tP__SRI_default_coding;
extern const XERdescriptor_t SMS__DELIVER_tP__UDHI_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER_tP__UDHI_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER_tP__UDHI_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_tP__UDHI_default_coding;
extern const XERdescriptor_t SMS__DELIVER_tP__RP_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER_tP__RP_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER_tP__RP_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_tP__RP_default_coding;
extern const TTCN_RAWdescriptor_t TP__OA__NoPad_tP__LengthIndicator_raw_;
extern const XERdescriptor_t TP__OA__NoPad_tP__LengthIndicator_xer_;
extern const TTCN_OERdescriptor_t TP__OA__NoPad_tP__LengthIndicator_oer_;
extern const TTCN_Typedescriptor_t TP__OA__NoPad_tP__LengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING TP__OA__NoPad_tP__LengthIndicator_default_coding;
extern const XERdescriptor_t TP__OA__NoPad_tP__NumberingPlanID_xer_;
extern const TTCN_OERdescriptor_t TP__OA__NoPad_tP__NumberingPlanID_oer_;
extern const TTCN_Typedescriptor_t TP__OA__NoPad_tP__NumberingPlanID_descr_;
extern UNIVERSAL_CHARSTRING TP__OA__NoPad_tP__NumberingPlanID_default_coding;
extern const XERdescriptor_t TP__OA__NoPad_tP__TypeOfNumber_xer_;
extern const TTCN_OERdescriptor_t TP__OA__NoPad_tP__TypeOfNumber_oer_;
extern const TTCN_Typedescriptor_t TP__OA__NoPad_tP__TypeOfNumber_descr_;
extern UNIVERSAL_CHARSTRING TP__OA__NoPad_tP__TypeOfNumber_default_coding;
extern const XERdescriptor_t TP__OA__NoPad_tp__Spare_xer_;
extern const TTCN_OERdescriptor_t TP__OA__NoPad_tp__Spare_oer_;
extern const TTCN_Typedescriptor_t TP__OA__NoPad_tp__Spare_descr_;
extern UNIVERSAL_CHARSTRING TP__OA__NoPad_tp__Spare_default_coding;
extern const XERdescriptor_t TP__OA__NoPad_tP__OAValue_xer_;
extern const TTCN_Typedescriptor_t TP__OA__NoPad_tP__OAValue_descr_;
extern UNIVERSAL_CHARSTRING TP__OA__NoPad_tP__OAValue_default_coding;
extern const TTCN_RAWdescriptor_t TP__OA__NoPad_raw_;
extern const TTCN_Typedescriptor_t TP__OA__NoPad_descr_;
extern UNIVERSAL_CHARSTRING TP__OA__NoPad_default_coding;
extern UNIVERSAL_CHARSTRING TP__OA_tP__OA__NoPad_default_coding;
extern const TTCN_RAWdescriptor_t TP__OA_raw_;
extern const TTCN_Typedescriptor_t TP__OA_descr_;
extern UNIVERSAL_CHARSTRING TP__OA_default_coding;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_tP__OA_default_coding;
extern const XERdescriptor_t SMS__DELIVER_tP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER_tP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER_tP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_tP__PID_default_coding;
extern const XERdescriptor_t SMS__DELIVER_tP__DCS_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER_tP__DCS_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER_tP__DCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_tP__DCS_default_coding;
extern const XERdescriptor_t SMS__DELIVER_tP__SCTS_xer_;
extern const TTCN_OERdescriptor_t SMS__DELIVER_tP__SCTS_oer_;
extern const TTCN_Typedescriptor_t SMS__DELIVER_tP__SCTS_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_tP__SCTS_default_coding;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_tP__UDL__UD_default_coding;
extern const TTCN_RAWdescriptor_t SMS__DELIVER_raw_;
extern const TTCN_Typedescriptor_t SMS__DELIVER_descr_;
extern UNIVERSAL_CHARSTRING SMS__DELIVER_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__DATA__SGSN__MS_sMS__DELIVER_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__MTI_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__MTI_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__MTI_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__MTI_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__MMS_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__MMS_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__MMS_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__MMS_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__LP_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__LP_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__LP_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__LP_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__Spare1_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__Spare1_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__Spare1_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__Spare1_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__SRQ_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__SRQ_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__SRQ_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__SRQ_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__UDHI_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__UDHI_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__UDHI_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__UDHI_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__Spare2_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__Spare2_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__Spare2_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__Spare2_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__MR_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__MR_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__MR_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__MR_default_coding;
extern const TTCN_RAWdescriptor_t TP__RA__NoPad_tP__LengthIndicator_raw_;
extern const XERdescriptor_t TP__RA__NoPad_tP__LengthIndicator_xer_;
extern const TTCN_OERdescriptor_t TP__RA__NoPad_tP__LengthIndicator_oer_;
extern const TTCN_Typedescriptor_t TP__RA__NoPad_tP__LengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING TP__RA__NoPad_tP__LengthIndicator_default_coding;
extern const XERdescriptor_t TP__RA__NoPad_tP__NumberingPlanID_xer_;
extern const TTCN_OERdescriptor_t TP__RA__NoPad_tP__NumberingPlanID_oer_;
extern const TTCN_Typedescriptor_t TP__RA__NoPad_tP__NumberingPlanID_descr_;
extern UNIVERSAL_CHARSTRING TP__RA__NoPad_tP__NumberingPlanID_default_coding;
extern const XERdescriptor_t TP__RA__NoPad_tP__TypeOfNumber_xer_;
extern const TTCN_OERdescriptor_t TP__RA__NoPad_tP__TypeOfNumber_oer_;
extern const TTCN_Typedescriptor_t TP__RA__NoPad_tP__TypeOfNumber_descr_;
extern UNIVERSAL_CHARSTRING TP__RA__NoPad_tP__TypeOfNumber_default_coding;
extern const XERdescriptor_t TP__RA__NoPad_tp__Spare_xer_;
extern const TTCN_OERdescriptor_t TP__RA__NoPad_tp__Spare_oer_;
extern const TTCN_Typedescriptor_t TP__RA__NoPad_tp__Spare_descr_;
extern UNIVERSAL_CHARSTRING TP__RA__NoPad_tp__Spare_default_coding;
extern const XERdescriptor_t TP__RA__NoPad_tP__RAValue_xer_;
extern const TTCN_Typedescriptor_t TP__RA__NoPad_tP__RAValue_descr_;
extern UNIVERSAL_CHARSTRING TP__RA__NoPad_tP__RAValue_default_coding;
extern const TTCN_RAWdescriptor_t TP__RA__NoPad_raw_;
extern const TTCN_Typedescriptor_t TP__RA__NoPad_descr_;
extern UNIVERSAL_CHARSTRING TP__RA__NoPad_default_coding;
extern UNIVERSAL_CHARSTRING TP__RA_tP__RA__NoPad_default_coding;
extern const TTCN_RAWdescriptor_t TP__RA_raw_;
extern const TTCN_Typedescriptor_t TP__RA_descr_;
extern UNIVERSAL_CHARSTRING TP__RA_default_coding;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__RA_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__SCTS_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__SCTS_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__SCTS_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__SCTS_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__DT_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__DT_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__DT_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__DT_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__ST_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__ST_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__ST_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__ST_default_coding;
extern const TTCN_RAWdescriptor_t SMS__STATUS__REPORT_raw_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_descr_;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__PresenceBitTP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__PresenceBitTP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__PresenceBitTP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__PresenceBitTP__PID_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__PresenceBitTP__DCS_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__PresenceBitTP__DCS_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__PresenceBitTP__DCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__PresenceBitTP__DCS_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__PresenceBitTP__UDL_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__PresenceBitTP__UDL_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__PresenceBitTP__UDL_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__PresenceBitTP__UDL_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__Reserved_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__Reserved_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__Reserved_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__Reserved_default_coding;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__ExtensionBit_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__ExtensionBit_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__ExtensionBit_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__ExtensionBit_default_coding;
extern const TTCN_RAWdescriptor_t SMS__STATUS__REPORT_tP__PID_raw_;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__PID_default_coding;
extern const TTCN_RAWdescriptor_t SMS__STATUS__REPORT_tP__DCS_raw_;
extern const XERdescriptor_t SMS__STATUS__REPORT_tP__DCS_xer_;
extern const TTCN_OERdescriptor_t SMS__STATUS__REPORT_tP__DCS_oer_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__DCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__DCS_default_coding;
extern const TTCN_RAWdescriptor_t SMS__STATUS__REPORT_tP__UDL__UD_raw_;
extern const TTCN_Typedescriptor_t SMS__STATUS__REPORT_tP__UDL__UD_descr_;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_tP__UDL__UD_default_coding;
extern UNIVERSAL_CHARSTRING SMS__STATUS__REPORT_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__DATA__SGSN__MS_sMS__STATUS__REPORT_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__DATA__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING RP__DATA__User__DataLV__SGSN__MS_rP__TPDU_default_coding;
extern const TTCN_RAWdescriptor_t RP__DATA__User__DataLV__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t RP__DATA__User__DataLV__SGSN__MS_descr_;
extern UNIVERSAL_CHARSTRING RP__DATA__User__DataLV__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING RP__DATA__SGSN__MS_rP__User__Data_default_coding;
extern const TTCN_RAWdescriptor_t RP__DATA__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t RP__DATA__SGSN__MS_descr_;
extern UNIVERSAL_CHARSTRING RP__DATA__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING RPDU__SGSN__MS_rP__DATA__SGSN__MS_default_coding;
extern const XERdescriptor_t RP__ACK__SGSN__MS_rP__MTI_xer_;
extern const TTCN_OERdescriptor_t RP__ACK__SGSN__MS_rP__MTI_oer_;
extern const TTCN_Typedescriptor_t RP__ACK__SGSN__MS_rP__MTI_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__SGSN__MS_rP__MTI_default_coding;
extern const XERdescriptor_t RP__ACK__SGSN__MS_rP__Spare_xer_;
extern const TTCN_OERdescriptor_t RP__ACK__SGSN__MS_rP__Spare_oer_;
extern const TTCN_Typedescriptor_t RP__ACK__SGSN__MS_rP__Spare_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__SGSN__MS_rP__Spare_default_coding;
extern const XERdescriptor_t RP__ACK__SGSN__MS_rP__MessageReference_xer_;
extern const TTCN_OERdescriptor_t RP__ACK__SGSN__MS_rP__MessageReference_oer_;
extern const TTCN_Typedescriptor_t RP__ACK__SGSN__MS_rP__MessageReference_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__SGSN__MS_rP__MessageReference_default_coding;
extern const TTCN_RAWdescriptor_t RP__ACK__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t RP__ACK__SGSN__MS_descr_;
extern const TTCN_RAWdescriptor_t RP__ACK__User__DataTLV__SGSN__MS_rP__Spare_raw_;
extern const XERdescriptor_t RP__ACK__User__DataTLV__SGSN__MS_rP__Spare_xer_;
extern const TTCN_OERdescriptor_t RP__ACK__User__DataTLV__SGSN__MS_rP__Spare_oer_;
extern const TTCN_Typedescriptor_t RP__ACK__User__DataTLV__SGSN__MS_rP__Spare_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__User__DataTLV__SGSN__MS_rP__Spare_default_coding;
extern const TTCN_RAWdescriptor_t RP__ACK__User__DataTLV__SGSN__MS_rP__UserDataIEI_raw_;
extern const XERdescriptor_t RP__ACK__User__DataTLV__SGSN__MS_rP__UserDataIEI_xer_;
extern const TTCN_OERdescriptor_t RP__ACK__User__DataTLV__SGSN__MS_rP__UserDataIEI_oer_;
extern const TTCN_Typedescriptor_t RP__ACK__User__DataTLV__SGSN__MS_rP__UserDataIEI_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__User__DataTLV__SGSN__MS_rP__UserDataIEI_default_coding;
extern const TTCN_RAWdescriptor_t RP__ACK__User__DataTLV__SGSN__MS_rP__LengthIndicator_raw_;
extern const XERdescriptor_t RP__ACK__User__DataTLV__SGSN__MS_rP__LengthIndicator_xer_;
extern const TTCN_OERdescriptor_t RP__ACK__User__DataTLV__SGSN__MS_rP__LengthIndicator_oer_;
extern const TTCN_Typedescriptor_t RP__ACK__User__DataTLV__SGSN__MS_rP__LengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__User__DataTLV__SGSN__MS_rP__LengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t TPDU__RP__ACK__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t TPDU__RP__ACK__SGSN__MS_descr_;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__MTI_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__MTI_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__MTI_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__MTI_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__Spare1_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__Spare1_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__Spare1_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__Spare1_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__UDHI_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__UDHI_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__UDHI_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__UDHI_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__Spare2_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__Spare2_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__Spare2_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__Spare2_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PresenceBitTP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PresenceBitTP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PresenceBitTP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__PresenceBitTP__PID_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PresenceBitTP__DCS_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PresenceBitTP__DCS_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PresenceBitTP__DCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__PresenceBitTP__DCS_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PresenceBitTP__UDL_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PresenceBitTP__UDL_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PresenceBitTP__UDL_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__PresenceBitTP__UDL_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__Reserved_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__Reserved_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__Reserved_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__Reserved_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__ExtensionBit_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__ExtensionBit_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__ExtensionBit_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__ExtensionBit_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__SCTS_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__SCTS_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__SCTS_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__SCTS_default_coding;
extern const TTCN_RAWdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_raw_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_descr_;
extern const TTCN_RAWdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PID_raw_;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__PID_default_coding;
extern const TTCN_RAWdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__DCS_raw_;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__DCS_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__DCS_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__DCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__DCS_default_coding;
extern const TTCN_RAWdescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__UDL__UD_raw_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ACK_tP__UDL__UD_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_tP__UDL__UD_default_coding;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ACK_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__ACK__SGSN__MS_sMS__SUBMIT__REPORT_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__ACK__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING RP__ACK__User__DataTLV__SGSN__MS_rP__TPDU_default_coding;
extern const TTCN_RAWdescriptor_t RP__ACK__User__DataTLV__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t RP__ACK__User__DataTLV__SGSN__MS_descr_;
extern UNIVERSAL_CHARSTRING RP__ACK__User__DataTLV__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING RP__ACK__SGSN__MS_rP__User__Data_default_coding;
extern UNIVERSAL_CHARSTRING RP__ACK__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING RPDU__SGSN__MS_rP__ACK__SGSN__MS_default_coding;
extern const XERdescriptor_t RP__ERROR__SGSN__MS_rP__MTI_xer_;
extern const TTCN_OERdescriptor_t RP__ERROR__SGSN__MS_rP__MTI_oer_;
extern const TTCN_Typedescriptor_t RP__ERROR__SGSN__MS_rP__MTI_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__SGSN__MS_rP__MTI_default_coding;
extern const XERdescriptor_t RP__ERROR__SGSN__MS_rP__Spare_xer_;
extern const TTCN_OERdescriptor_t RP__ERROR__SGSN__MS_rP__Spare_oer_;
extern const TTCN_Typedescriptor_t RP__ERROR__SGSN__MS_rP__Spare_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__SGSN__MS_rP__Spare_default_coding;
extern const XERdescriptor_t RP__ERROR__SGSN__MS_rP__Message__Reference_xer_;
extern const TTCN_OERdescriptor_t RP__ERROR__SGSN__MS_rP__Message__Reference_oer_;
extern const TTCN_Typedescriptor_t RP__ERROR__SGSN__MS_rP__Message__Reference_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__SGSN__MS_rP__Message__Reference_default_coding;
extern UNIVERSAL_CHARSTRING RP__ERROR__SGSN__MS_rP__CauseLV_default_coding;
extern const TTCN_RAWdescriptor_t RP__ERROR__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t RP__ERROR__SGSN__MS_descr_;
extern const TTCN_RAWdescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_rP__Spare_raw_;
extern const XERdescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_rP__Spare_xer_;
extern const TTCN_OERdescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_rP__Spare_oer_;
extern const TTCN_Typedescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_rP__Spare_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__User__DataTLV__SGSN__MS_rP__Spare_default_coding;
extern const TTCN_RAWdescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_rP__UserDataIEI_raw_;
extern const XERdescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_rP__UserDataIEI_xer_;
extern const TTCN_OERdescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_rP__UserDataIEI_oer_;
extern const TTCN_Typedescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_rP__UserDataIEI_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__User__DataTLV__SGSN__MS_rP__UserDataIEI_default_coding;
extern const TTCN_RAWdescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_rP__LengthIndicator_raw_;
extern const XERdescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_rP__LengthIndicator_xer_;
extern const TTCN_OERdescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_rP__LengthIndicator_oer_;
extern const TTCN_Typedescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_rP__LengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__User__DataTLV__SGSN__MS_rP__LengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t TPDU__RP__ERROR__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t TPDU__RP__ERROR__SGSN__MS_descr_;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__MTI_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__MTI_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__MTI_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__MTI_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__Spare1_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__Spare1_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__Spare1_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__Spare1_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__UDHI_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__UDHI_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__UDHI_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__UDHI_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__Spare2_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__Spare2_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__Spare2_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__Spare2_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__FCS_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__FCS_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__FCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__FCS_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PresenceBitTP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PresenceBitTP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PresenceBitTP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PresenceBitTP__PID_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PresenceBitTP__DCS_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PresenceBitTP__DCS_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PresenceBitTP__DCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PresenceBitTP__DCS_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PresenceBitTP__UDL_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PresenceBitTP__UDL_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PresenceBitTP__UDL_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PresenceBitTP__UDL_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__Reserved_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__Reserved_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__Reserved_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__Reserved_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__ExtensionBit_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__ExtensionBit_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__ExtensionBit_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__ExtensionBit_default_coding;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__SCTS_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__SCTS_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__SCTS_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__SCTS_default_coding;
extern const TTCN_RAWdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_raw_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_descr_;
extern const TTCN_RAWdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PID_raw_;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PID_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PID_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PID_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__PID_default_coding;
extern const TTCN_RAWdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__DCS_raw_;
extern const XERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__DCS_xer_;
extern const TTCN_OERdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__DCS_oer_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__DCS_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__DCS_default_coding;
extern const TTCN_RAWdescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__UDL__UD_raw_;
extern const TTCN_Typedescriptor_t SMS__SUBMIT__REPORT__in__RP__ERROR_tP__UDL__UD_descr_;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_tP__UDL__UD_default_coding;
extern UNIVERSAL_CHARSTRING SMS__SUBMIT__REPORT__in__RP__ERROR_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__ERROR__SGSN__MS_sMS__SUBMIT__REPORT_default_coding;
extern UNIVERSAL_CHARSTRING TPDU__RP__ERROR__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING RP__ERROR__User__DataTLV__SGSN__MS_rP__TPDU_default_coding;
extern const TTCN_RAWdescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t RP__ERROR__User__DataTLV__SGSN__MS_descr_;
extern UNIVERSAL_CHARSTRING RP__ERROR__User__DataTLV__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING RP__ERROR__SGSN__MS_rP__User__Data_default_coding;
extern UNIVERSAL_CHARSTRING RP__ERROR__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING RPDU__SGSN__MS_rP__ERROR__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING RPDU__SGSN__MS_rP__SMMA_default_coding;
extern UNIVERSAL_CHARSTRING RPDU__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING CP__User__DataLV__SGSN__MS_cP__RPDU_default_coding;
extern const TTCN_RAWdescriptor_t CP__User__DataLV__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t CP__User__DataLV__SGSN__MS_descr_;
extern UNIVERSAL_CHARSTRING CP__User__DataLV__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING CP__DATA__SGSN__MS_cP__User__Data_default_coding;
extern const TTCN_RAWdescriptor_t CP__DATA__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t CP__DATA__SGSN__MS_descr_;
extern UNIVERSAL_CHARSTRING CP__DATA__SGSN__MS_default_coding;
extern UNIVERSAL_CHARSTRING L3__SMS__SGSN__MS_cP__DATA_default_coding;
extern UNIVERSAL_CHARSTRING L3__SMS__SGSN__MS_cP__ACK_default_coding;
extern UNIVERSAL_CHARSTRING L3__SMS__SGSN__MS_cP__ERROR_default_coding;
extern UNIVERSAL_CHARSTRING L3__SMS__SGSN__MS_default_coding;
extern const BITSTRING bs_3,
bs_10,
bs_13,
bs_14,
bs_15,
bs_5,
bs_0,
bs_11,
bs_7,
bs_4,
bs_1,
bs_12,
bs_6,
bs_8,
bs_2,
bs_9;
extern const unsigned char module_checksum[];
extern TTCN_Module module_object;
extern const RuntimeVersionChecker ver_checker;

} /* end of namespace */

#endif
